【发布时间】:2018-06-21 01:26:11
【问题描述】:
作为项目的一部分,我正在 python 上运行语音识别代码。我面临着一个非常奇怪的问题 当我将语音识别代码放入如下函数时:
def loop():
r=sr.Recognizer()
with sr.Microphone(device_index=2) as source:
print("say something")
audio = r.listen(source)
try:
print("you said "+r.recognize_google(audio))
except sr.UnknownValueError:
print("Could not understand")
except sr.RequestError as e:
print("errpr: {0}".format(e))
它给了我以下错误:
以 sr.Microphone(device_index=2) 作为来源:文件“/usr/local/lib/python3.5/dist-packages/speech_recognition/init.py”, 第 141 行,在 输入 input=True, #stream 是一个输入流 File "/usr/local/lib/python3.5/dist-packages/pyaudio.py", line 750, in open 流 = 流(self,*args,**kwargs)文件“/usr/local/lib/python3.5/dist-packages/pyaudio.py”,第 441 行,在 初始化 self._stream = pa.open(**arguments) OSError: [Errno -9998] 通道数无效
但是,如果我在函数外部运行相同的代码行,而不是在 def loop(): 内部运行,它会正常运行
我该怎么办? 我的python版本是3.5.4
【问题讨论】:
-
删除 device_index 使它对我有用
with sr.Microphone() as source: -
它可以正常工作,但卡在
r.listen(audio)我找不到有效的解决方案 -
你必须在“说点什么”提示下说点什么,否则会卡住
标签: python python-3.x speech-recognition