Python,语音识别停留在'Listening...'



代码卡在侦听(audio=r.listen(source)行(上,并且没有超出它。没有错误消息或其他任何内容。

我的代码:

import speech_recognition as sr
def takeCommand():
'''
It takes user's voice as input
'''
r=sr.Recognizer()
with sr.Microphone() as source:
print("Listening...")
r.pause_threshold = 1
audio=r.listen(source)
try:
print("Recognizing...")
query = r.recognize_google(audio, language="en-in")
print(f"Recognized Command: {query}")
except Exception as e:
print(e)
print("I didn't recognize what you said please repeat")
return "None"
return query

takeCommand()

我刚刚检查了您在评论中发布的链接。

有这样的代码:

with mic as source:
audio = r.listen(source)

如果此代码不起作用,一个原因可能是麦克风拾取了太多的环境噪音。

解决方案可能是

with mic as source:
r.adjust_for_ambient_noise(source)
audio = r.listen(source)

我没有使用这个库;但我认为r.listen(source)是一个阻塞函数(方法(。阻塞方法是一种阻止代码继续执行直到完成(返回(的方法。您的应用正在等待r.listen(source)完成。

你应该把print("Recognizing...")放在它面前。同样,正如我在这里阅读的那样,r.listen(source)在检测到静音(可能在声音之后(时将返回结果(完成(。因此,您的代码应在检测到静音后继续执行。

解决方案是您必须在listen()方法中设置一些参数。

例如:

audio=r.listen(source,timeout=8,phrase_time_limit=8)

最新更新