Fehlermeldung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Bio Salami
User
Beiträge: 63
Registriert: Mittwoch 28. Juli 2021, 14:10

Hi,
ich programmiere momentan einen Sprachasistenten und habe Probleme mit vorlegendem Skript:

Code: Alles auswählen

import speech_recognition as sr
import time
import pyttsx3

r= sr.Recognizer()

voice = pyttsx3.init()
voice.setProperty('rate', 130)


def record_audio():
    with sr.Microphone() as source:
        
        print("wait for order")
        audio = r.listen(source, timeout=20, phrase_time_limit=4)
        voice_data = ''

        try:
            print("send order to Server")
            voice_data = r.recognize_google(audio, language="de-DE",)
            print("order detected! " + voice_data)
        except sr.UnknownValueError:
            print("order not understood")
        #    bingo_speak("Endschuldige das habe ich nicht verstanden")
        except sr.RequestError:
            print("server not accessible")
            bingo_speak("Meine Server sind gerade nicht erreichbar")
        return voice_data


def bingo_speak(text):
    print("say: " + text)
    voice.say(text)
    voice.runAndWait()

def respond(voice_data):
    
    if 'Projekt' in voice_data:
        exit()
    


time.sleep(1)

while 1:
    
    voice_data = record_audio()
    respond(voice_data)

Beim ausführen entstehen eine menge Fehlermeldungen mit denen ich nichts anfangen kann.
Meist wird angezeigt das ich einige APIs nicht importiert habe. Hilfe wäre nett
Benutzeravatar
YAPD
User
Beiträge: 120
Registriert: Dienstag 27. Juli 2021, 23:23
Wohnort: Frankfurt am Main

Hi,

könntest du genauer beschreiben, welche Fehlermeldungen du erhältst, bzw. diese posten ?

Vielen Dank !

YAPD
-----
Yet Another Python Developer
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Bio Salami,

Ich weiß zwar nicht welche Fehlermeldungen du bekommst, aber das SpeechRecognition Package scheint PyAudio zu benötigen.
Du kannst versuchen, es nach zu installieren. Bei mir hat das aber leider nicht funktioniert.
PyAudio wurde wohl nur bis Python 3.6 unterstützt.
Ist vielleicht besser, du suchst dir ein anderes Sprachpaket.
Benutzeravatar
YAPD
User
Beiträge: 120
Registriert: Dienstag 27. Juli 2021, 23:23
Wohnort: Frankfurt am Main

Genau das angesprochene Problem hatte ich auch bei der Ausführung deines Codes !
Es kreidet auch die C++ Version an. Keine Ahnung, ob du das Problem auch hattest.

Viele Grüße
YAPD
-----
Yet Another Python Developer
Benutzeravatar
YAPD
User
Beiträge: 120
Registriert: Dienstag 27. Juli 2021, 23:23
Wohnort: Frankfurt am Main

Hey BioSalami,

Also das mit der Unterstützung bis 3.6 scheint nicht richtig zu sein.
Folgende 2 Schritte und PyAudio wurde installiert :-) :

Code: Alles auswählen

pip install pipwin
pipwin install pyaudio
Ausgabe :

wait for order
send order to Server
order not understood
wait for order
send order to Server
order not understood
wait for order
send order to Server
order not understood
...

Hab gerade kein Mikro angeschlossen :)

VG
YAPD
-----
Yet Another Python Developer
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Vielleicht hat Google etwas an der API geändert. Klappt es eventuell mit einem anderen Backend?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@YAPD,
Also das mit der Unterstützung bis 3.6 scheint nicht richtig zu sein.
Ähhh, naja. Also es ist schonmal gut dass es geklappt hat. Und das sollte auch so funktionieren, denke ich.
Ich hatte auch nach der Seite
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio
gesucht, aber ehrlich gesagt nicht mehr gefunden.

Das letzte offizielle Release von pyAudio ist aber tatsächlich von 2017. Es mag auch sein dass es noch Seiten gibt, die inoffiziell Binaries für solche ausgelaufenen Pakete zur Verfügung stellen.
Es ist aber dann leider oft so dass es keinerlei Support mehr gibt und dass die Community sich schon neuen, moderneren Paketen zugewandt hat.
Benutzeravatar
Bio Salami
User
Beiträge: 63
Registriert: Mittwoch 28. Juli 2021, 14:10

Danke dass ihr alle so schnell Geantwortet habt. Mit den APIs habe ich keine Probleme und in einem Anderen Skript habe ich sie auch schon mehrfach genutzt. Meine Fehlermeldungen sehen so aus:

Code: Alles auswählen

PS C:\Users\Laurin\Documents\Sprachasistent\Skripte 2> py keyword.py
Traceback (most recent call last):
  File "C:\Users\Laurin\Documents\Sprachasistent\Skripte 2\keyword.py", line 1, in <module>
    import speech_recognition as sr
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\site-packages\speech_recognition\__init__.py", line 8, in <module>    import subprocess
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 49, in <module>
    import signal
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\signal.py", line 3, in <module>
    from functools import wraps as _wraps
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\functools.py", line 18, in <module>
    from collections import namedtuple
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\collections\__init__.py", line 36, in <module>
    from keyword import iskeyword as _iskeyword
  File "C:\Users\Laurin\Documents\Sprachasistent\Skripte 2\keyword.py", line 3, in <module>
    import pyttsx3
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\site-packages\pyttsx3\__init__.py", line 1, in <module>
    from .engine import Engine
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\site-packages\pyttsx3\engine.py", line 1, in <module>
    from . import driver
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\site-packages\pyttsx3\driver.py", line 2, in <module>
    import traceback
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\traceback.py", line 5, in <module>
    import linecache
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\linecache.py", line 11, in <module>
    import tokenize
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\tokenize.py", line 32, in <module>
    import re
  File "C:\Users\Laurin\AppData\Local\Programs\Python\Python39\lib\re.py", line 315, in <module>
    @functools.lru_cache(_MAXCACHE)
AttributeError: partially initialized module 'functools' has no attribute 'lru_cache' (most likely due to a circular import)
PS C:\Users\Laurin\Documents\Sprachasistent\Skripte 2>
Benutzeravatar
YAPD
User
Beiträge: 120
Registriert: Dienstag 27. Juli 2021, 23:23
Wohnort: Frankfurt am Main

Hey Biosalami,

hast du die 2 von mir angesprochenen Befehle ausgeführt ?

Code: Alles auswählen

pip install pipwin
pipwin install pyaudio
Bei mir wurde anschließend das Programm korrekt ausgeführt, ohne
Fehlermeldungen. Sollte sich der Code wirklich auf das beschränken,
was du gepostet hast, muss der Fehler woanders liegen.

VG
YAPD
-----
Yet Another Python Developer
Benutzeravatar
__blackjack__
User
Beiträge: 13006
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Bio Salami: Nenne Dein Modul mal nicht `keyword`, weil dass dann das `keyword`-Modul aus der Standardbibliothek verdeckt, was aber irgendwo indirekt von den Importen in Deinem Modul verwendet wird, und zu der gezeigten Ausnahme führt.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
Bio Salami
User
Beiträge: 63
Registriert: Mittwoch 28. Juli 2021, 14:10

__blackjack__ Danek das hat mir geholfen. Jetzt funktioniert alles!
Antworten