Как я могу сделать пассивный голосовой слушатель тогда, если ,, триггер ,, строка появляется, это должно стать активным слушателем - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь создать голосового помощника, основанного на голосе распознавания Google, но каждый раз, когда я буду говорить: «Эй, Х!», Я ожидаю дождаться команды для меня, вместо этого, если он не слышал,Эй, Х, ничего не произойдет.

Я пробовал с распознаванием речи ,, listen_in_background ,, функцией и другими функциями true, но это дает мне ошибку.

print("Being to listen")
def callback(r, audio):
    try:
        print("You said " + r.recognize_google(audio))  # received audio data, now need to recognize it
        AudioTrigger = r.recognize_google(audio)
        if AudioTrigger == trigger:
            WaitingForCommand()
        else:
            print("error wait for commadn")
    except LookupError:
        print("Oops! Didn't catch that")

audio = r.listen_in_background(sr.Microphone(), callback)
while True:
    time.sleep(0.1)
def WaitingForCommand():
    with sr.Microphone() as source:
        engine.say("How can i help you?")
        engine.runAndWait()
        CommandAudio = r.listen(source)
        AudioText = r.recognize_google(CommandAudio)
        if AudioText in ['local weather', 'current weather', 'weather in My City']:
            WeatherApiResponse()
        else:
            print("You said: {}".format(AudioText))

Весь код: https://hastebin.com/ifuxuzines.py

После того, как я запустил код, напечатайте («Быть ​​слушать») его первым в консоли.Если я что-то скажу, распознавание речи поймает то, что я скажу, но если я использую ,, триггер ,, строку, он будет ждать другой команды. Вместо выполнения одного слова в структуре AudioText или чего-либо еще, что не в структуре, этовыдает ошибку

Список с ошибками: https://pastebin.com/TCjppyGV

...