Python,语音识别停留在 'Listening...'
Python, Speech Recognition stuck at '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()
我没有使用这个库;但我认为 r.listen(source)
是一个阻塞函数(方法)。阻塞方法是一种阻止代码继续执行直到完成 (returned) 的方法。您的应用正在等待 r.listen(source)
完成。
你应该在它前面加上print("Recognizing...")
。此外,当我阅读 here 时,r.listen(source)
将在检测到静音(可能在语音之后)时 return 结果(完成)。所以你的代码应该在检测到静音后继续执行。
我刚刚查看了您在评论中发布的link。
有这个代码:
with mic as source:
audio = r.listen(source)
如果此代码不起作用,原因之一可能是麦克风拾取了过多的环境噪音。
解决方案可能是
with mic as source:
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
解决方案是您必须在 listen()
方法中设置一些参数。
例如:
audio=r.listen(source,timeout=8,phrase_time_limit=8)
代码停留在监听(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()
我没有使用这个库;但我认为 r.listen(source)
是一个阻塞函数(方法)。阻塞方法是一种阻止代码继续执行直到完成 (returned) 的方法。您的应用正在等待 r.listen(source)
完成。
你应该在它前面加上print("Recognizing...")
。此外,当我阅读 here 时,r.listen(source)
将在检测到静音(可能在语音之后)时 return 结果(完成)。所以你的代码应该在检测到静音后继续执行。
我刚刚查看了您在评论中发布的link。
有这个代码:
with mic as source:
audio = r.listen(source)
如果此代码不起作用,原因之一可能是麦克风拾取了过多的环境噪音。
解决方案可能是
with mic as source:
r.adjust_for_ambient_noise(source)
audio = r.listen(source)
解决方案是您必须在 listen()
方法中设置一些参数。
例如:
audio=r.listen(source,timeout=8,phrase_time_limit=8)