- Python : 3.8.13
- OS : Windows 21H1
- Conda : 4.12.0
- PyCharm : 2022.1 (Community Edition)
代码及报错
import speech_recognition as sr
audio_file = 'test.wav'
r = sr.Recognizer()
# 打开语音文件
with sr.AudioFile(audio_file) as source:
audio = r.record(source)
print('文本内容: ', r.recognize_sphinx(audio, language='zh_CN')) # 汉语
D:\Develop\Anaconda3\envs\pyqtenv\python.exe C:/Users/admin/Desktop/pythonProject/main.py
Traceback (most recent call last):
File "C:/Users/admin/Desktop/pythonProject/main.py", line 10, in <module>
print('文本内容: ', r.recognize_sphinx(audio, language='zh_CN')) # 汉语
File "D:\Develop\Anaconda3\envs\pyqtenv\lib\site-packages\speech_recognition\__init__.py", line 741, in recognize_sphinx
raise RequestError("missing PocketSphinx language data directory: \"{}\"".format(language_directory))
speech_recognition.RequestError: missing PocketSphinx language data directory: "D:\Develop\Anaconda3\envs\pyqtenv\Lib\site-packages\speech_recognition\pocketsphinx-data\zh_CN"
Process finished with exit code 1
解决方法
- 报错的核心内容
speech_recognition.RequestError: missing PocketSphinx language data directory: "D:\Develop\Anaconda3\envs\pyqtenv\Lib\site-packages\speech_recognition\pocketsphinx-data\zh_CN"
- 检查步骤
- 核对路径信息,确认该路径存在
"D:\Develop\Anaconda3\envs\pyqtenv\Lib\site-packages\speech_recognition\pocketsphinx-data\zh_CN"
- 确认language的值与文件夹名称相同
r.recognize_sphinx(audio, language='zh_CN')
"D:\Develop\Anaconda3\envs\pyqtenv\Lib\site-packages\speech_recognition\pocketsphinx-data\zh_CN"
- 确认zh_CN文件夹中的内容齐全(我用的是大佬提供的中文模型包)
D:\Develop\Anaconda3\envs\pyqtenv\Lib\site-packages\speech_recognition\pocketsphinx-data>tree /F
卷 新加卷 的文件夹 PATH 列表
卷序列号为 944F-CFF3
D:.
├─en-US
│ │ language-model.lm.bin
│ │ LICENSE.txt
│ │ pronounciation-dictionary.dict
│ │
│ └─acoustic-model
│ feat.params
│ mdef
│ means
│ noisedict
│ README
│ sendump
│ transition_matrices
│ variances
│
└─zh_CN
│ language-model.lm.bin
│ pronounciation-dictionary.dict
│ zh_broadcastnews_16k_ptm256_8000.tar.bz2
│ zh_broadcastnews_64000_utf8.DMP
│
└─acoustic-model
feat.params
mdef
means
mixture_weights
noisedict
sendump
transition_matrices
variances
- 前三步完成后,我的程序就可以正常运行了。
学习资源
学习推荐
Python具有开源、跨平台、解释型、交互式等特性,值得学习。
Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
代码的书写要遵守规范,这样有助于沟通和理解。
每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。