gTTS 无法接收语音

问题描述

我正在做一个虚拟助手项目,使用 speech_recognition,但是,由于某种原因,代码无法接收语音。 预期的输出应该是这样的:

user: Titan
program: Waiting for command
user: open youtube
program: opening Youtube

但目前它是这样的:

user: Titan
program: Waiting for command
user: open youtube
*program resets to listening for wake word*

我不太确定是听功能、听功能还是响应功能有问题:

收听功能

    def hear(self,recognizer,microphone,response):
    try:
        with microphone as source:
            print("Waiting for command.")
            recognizer.adjust_for_ambient_noise(source)
            recognizer.dynamic_energy_threshold = 3000
            # May reduce the time out in the future
            audio = recognizer.listen(source,timeout=5.0)
            command = recognizer.recognize_google(audio)
            s.remember(command)
            return command.lower()
    except sr.WaitTimeoutError:
        pass
    except sr.UnkNownValueError:
        pass
    except sr.RequestError:
        print("Network error.")

监听功能

    def listen(self,microphone):
    while True:
        try:
            with microphone as source:
                print("Listening.")
                recognizer.adjust_for_ambient_noise(source)
                recognizer.dynamic_energy_threshold = 3000
                audio = recognizer.listen(source,timeout=5.0)
                response = recognizer.recognize_google(audio)

                if response == WAKE:

                    if LED:
                        listening_byte = "L"  # L matches the Arduino sketch code for the blue color
                        ser.write(listening_byte.encode("ascii"))  # encodes and sends the serial byte
                    s.speak("How can I help you?")
                    return response.lower()

                else:
                    pass
        except sr.WaitTimeoutError:
            pass
        except sr.UnkNownValueError:
            pass
        except sr.RequestError:
            print("Network error.")

响应函数

    def open_things(self,command):
    # Will need to expand on "open" commands
    if command == "open youtube":
        s.speak("opening YouTube.")
        webbrowser.open("https://www.youtube.com")
        pass

    else:
        s.speak("I don't kNow how to open that yet.")
        pass

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...