[英]SpeechRecogniton module is too slow in python
我试图为我的深度学习聊天机器人使用语音识别来获取用户的输入。 其实我的语音识别功能代码是这样的:
def get_audio():
r = sr.Recognizer()
with sr.Microphone() as source:
r.pause_threshold = 1
r.adjust_for_ambient_noise(source, duration=1)
audio = r.listen(source)
said = ""
try:
print("Listening...")
said = r.recognize_google(audio)
print("You said: " + said)
except Exception as e:
print("Exception: " + str(e))
return said.lower()
好吧,没有错误,这是最大的错误! 我的互联网连接没有问题,因为我可以同时流式传输高质量的视频,这甚至不是视频,它是一个字符串,那么可能是什么问题? 我必须等待近 15 分钟才能收到短信。
嗯,我还尝试了一个离线 API: recognize_sphinix()
方法。 您需要构建pocketsphinix 的二进制安装文件(whl)。 哦,我忘了说,您还需要在您的机器中构建pyaudio才能使用speech_recognition。 我已经完成了所有这些工作,即使这个离线 API 也存在同样的问题......早上来说, recognize.sphinix()
识别了我所说的 2-3 倍,但现在,它甚至没有响应!
注意:我用任务管理器监控我的电脑,只运行语音识别功能,而 Python 只占用了 9MB 的内存和 0.3% 的 CPU 使用率。 所以计算能力有限是没有问题的。
任何人都可以解决这个问题吗? 如果你解决了这个头痛问题,你会让我开心的。 提前致谢!
持续时间参数现已弃用。 参考StackOverflow 问题。
而是使用phrase_time_limit
或timeout
。
这是使用phrase_time_limit
时间限制的代码块:
import speech_recognition as sr
def myCommand():
r = sr.Recognizer()
with sr.Microphone() as source:
audio = r.listen(source, phrase_time_limit = 5)
try:
command = r.recognize_google(audio).lower()
print("you said: " + command)
except sr.UnknownValueError:
print("Sorry, Cant understand, Please say again")
command = myCommand()
return command
这工作得很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.