我正在尝试在学校项目中以python实现语音识别和响应。无法弄清楚我的代码出了什么问题:

代码:(导入speech_recognition as sr

def takeCommand():
    # It takes microphones recognition from the user and returns String output
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Listening...")
        r.pause_threshold = 0.8
        audio = r.listen(source)

    try:
        print("Recognizing...")
        query = r.recognize_google(audio,language='en-in')
        print(f"User said:{query}\n")

    except Exception as e:
        # print(e)
        print("Say that again please")
        return "None"
    return query


它在print('Listening...')语句后停止响应。

追溯(在键盘中断时):

Listening...
Traceback (most recent call last):
  File "c:/Users/Yash Khandelwal/Desktop/Python_Files/Jarvis/Jarvis_Project.py", line 51, in <module>
    takeCommand()
  File "c:/Users/Yash Khandelwal/Desktop/Python_Files/Jarvis/Jarvis_Project.py", line 36, in takeCommand
    audio = r.listen(source)
  File "C:\Users\New User\AppData\Local\Programs\Python\Python37\lib\site-packages\speech_recognition\__init__.py", line 652, in listen
    buffer = source.stream.read(source.CHUNK)
  File "C:\Users\New User\AppData\Local\Programs\Python\Python37\lib\site-packages\speech_recognition\__init__.py", line 161, in read
    return self.pyaudio_stream.read(size, exception_on_overflow=False)
  File "C:\Users\New User\AppData\Local\Programs\Python\Python37\lib\site-packages\pyaudio.py", line 608, in read
    return pa.read_stream(self._stream, num_frames, exception_on_overflow)
KeyboardInterrupt


这容易解决吗?

最佳答案

删除此行:

r.pause_threshold = 0.8


并尝试以下方法:

r.listen(source,timeout=2)


为我工作!

10-06 05:15
查看更多