Python speech_recognition missing PocketSphinx language data directory zh-cn

1,112 阅读2分钟
  •        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"
  • 检查步骤
  1. 核对路径信息,确认该路径存在
"D:\Develop\Anaconda3\envs\pyqtenv\Lib\site-packages\speech_recognition\pocketsphinx-data\zh_CN"
  1. 确认language的值与文件夹名称相同
r.recognize_sphinx(audio, language='zh_CN')
"D:\Develop\Anaconda3\envs\pyqtenv\Lib\site-packages\speech_recognition\pocketsphinx-data\zh_CN"
  1. 确认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
  1. 前三步完成后,我的程序就可以正常运行了。

学习资源

学习推荐


Python具有开源、跨平台、解释型、交互式等特性,值得学习。
Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
代码的书写要遵守规范,这样有助于沟通和理解。
每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。