Ich versuche, eine reade_recognition Funktion im Hintergrund laufen kontinuierlich und die checkingAudio Funktion zu sehen, was Text gesprochen wurde und Maßnahmen entsprechend zu ergreifen, habe ich versucht, die 2 Funktionen zu laufen parallel, aber die Recon-Funktion wird immer und immer wieder aufgerufen, ich habe noch nie mit Threading gearbeitet und ein Tutorial auf Youtube verfolgt, um meine Funktionen zu fädeln, ich habe verstanden, dass ich einen sehr dämlichen Fehler gemacht habe, also frage ich die Person, die antwortet die Frage, ein wenig ausgearbeitet in ihrer Antwort und meinem Fehler. Vielen Dank.type error function fehlendes Argument 'self'
bearbeiten
Also löschte ich eine While-Schleife in meinem Mithören, die diesen Fehler verursacht wurde das gesamte Programm überflüssig zu machen, aber jetzt habe ich Typeerror bin immer: checkingAudio() fehlt 1 erforderlich Positions Argument: ‚Selbst‘ die ich as explained here erfordert, dass ich eine Klasse instanziieren, aber ich habe das und den gleichen Fehler immer noch.
class listen(threading.Thread):
def __init__(self):
self.playmusicobject = playmusic()
self.r = sr.Recognizer()
self.listening()
def listening(self):
self.objectspeak = speak()
self.apiobject = googleAPI()
print("say something")
time.sleep(2.0)
with sr.Microphone() as source:
# self.objectspeak.speaking("say something")
self.audio = self.r.listen(source)
def checkingAudio(self):
time.sleep(0.5)
try:
a = str(self.r.recognize_google(self.audio))
a = str(self.r.recognize_google(self.audio))
print(a)
if a in greetings:
self.objectspeak.speaking("I am good how are you?")
if a in music:
print("playing music")
self.playmusicobject.play()
if a in stop:
print("stopping")
self.playmusicobject.b()
if a in api:
self.apiobject.distance()
else:
print("error")
except sr.UnknownValueError:
print("Google Speech Recognition could not understand audio")
except sr.RequestError as e:
print("Could not request results from Google Speech Recognition service; {0}".format(e))
class speak:
THIS IS A PYTTS class
class googleAPI:
GOOGLE DISTANCE API function calculates distance between 2 places
class playmusic:
def play(self):
self.objectspeak = speak()
playsound.playsound('C:\\Users\legion\Downloads\Music\merimeri.mp3')
def b(self):
self.objectspeak.speaking("music stopped")
while 1:
a = listen
t1 = threading.Thread(target=listen())
t2 = threading.Thread(target= a.checkingAudio())
t1.join()
t2.join()
Als Antwort auf Ihre bearbeiten, du hast instanziiert nicht 'Listen'. Du hast Parens vergessen; du wolltest 'a = listen()'. Aber natürlich, jetzt machst du die Arbeit, die du beabsichtigst, außerhalb eines Threads zu fädeln, und trotzdem versäumst du es in den Threads zu arbeiten (weil du Parens hast, die du nicht willst, wenn du ihr Ziel definierst). Lies meine Antwort, es deckt alles ab. – ShadowRanger