代码卡在侦听(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)