Python用SpeechRecognition做语音转文字报Recognizer无recognize属性错误
错误原因
speech_recognition库的Recognizer类不存在名为recognize的方法,你调用了未定义的类属性才触发了该报错。该库所有语音识别能力都需要绑定具体的识别引擎,没有通用的recognize接口。
解决方法
根据你的使用场景选择对应的识别方法即可,常用的两种方案如下:
方案1:在线谷歌识别(推荐,准确率高,需要联网)
替换你代码里的识别调用语句,用recognize_google方法,如果是中文音频需要额外指定语言参数:
!pip install pipwin !pipwin install pyaudio # Audio to Text !pip install pyttsx3 !pip install SpeechRecognition import pyttsx3 import speech_recognition as sr r = sr.Recognizer() with sr.AudioFile('20211102_114210.wav') as source: audio = r.record(source) # 识别中文用language='zh-CN',识别英文可以不传该参数 output = r.recognize_google(audio, language='zh-CN') print('OUTPUT: ' + output)
方案2:离线CMU Sphinx识别(无需联网,准确率低)
需要先安装pocketsphinx依赖,再调用recognize_sphinx方法,如果需要识别中文还要额外配置中文语言包:
!pip install pocketsphinx # 其余依赖安装、导入代码和上文一致 with sr.AudioFile('20211102_114210.wav') as source: audio = r.record(source) output = r.recognize_sphinx(audio) print('OUTPUT: ' + output)
内容的提问来源于stack exchange,提问作者Zakia Khanom Tisha
相关产品推荐
相关产品推荐

