python使用speech_recognition进行语音识别及响应超时的解决办法

最近想要做一个语音识别系统,在网上发现可以使用谷歌的speech_recognition做语音识别,但是问题多多。

安装speech_recognition

安装大家肯定都清楚,直接用pip安装即可

pip install SpeechRecognition

进行语音识别

简单的语音识别

引入模块

最好把speech_recognition缩写成sr,这样可以少些很多代码。

# 引入
import speech_recognition as sr
初始化麦克风
#设置麦克风
r = sr.Recognizer()
mic = sr.Microphone()
录音并识别
#进行录音
print('录音中...')
with mic as source:
    r.adjust_for_ambient_noise(source)
    audio = r.listen(source)
#进行识别
print('录音结束,识别中...')
test = r.recognize_google(audio, language='cmn-Hans-CN')#这样设置language可以支持中文
print(test)#最后将识别的文字打印出来
处理报错
没有模块PyAudio

作者一上来就撞到了一个问题:
AttributeError: Could not find PyAudio; check installation


解决方法

也就是说,speech_recognition的依赖包还有PyAudio,所以还要下载PyAudio:

pip install PyAudio
连接超时

紧接着,第二个报错来了
speech_recognition.RequestError: recognition connection failed: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
在处理这个错误的时候,网上有很多不一样的说法,有的说需要下载翻墙工具,有的说要设置全局代理。但其实解决方法并没有想象中的复杂


解决方法

你需要打开你安装这个包的位置,比如在pycharm虚拟环境中,需要找到这个目录:
项目所在路径\venv\Lib\site-packages\speech_recognition
在普通python环境中,你需要找到这个目录:
pyhon所在路径\Lib\site-packages\speech_recognition
在这个目录下,有一个__init__.py,打开这个文件,找到recognize_google()函数,这个函数中有一个url的变量,吧这个变量后面的网址"http://www.google.com/speech-api/v2/recognize?{}"改成"http://www.google.cn/speech-api/v2/recognize?{}"也就是把com改成cn这样就可以正常访问了,程序可以正常运行了。

推荐文章

  • 17
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值