受益匪浅
在用sphinx库进行语音识别的时候除了默认的美语外,如何添加其他语种,比如中文?
从如下链接进去,由于是国外的网站,可能一次登录不进去,需要多登录几次,或者关掉杀毒软件再多试几次
但是我的电脑打开github还是很慢可以看下这个帖子https://blog.csdn.net/pnjtvxcp/article/details/107759720(按照这个帖子操作以后登录github网站的速度就快一些了)
https://github.com/Uberi/speech_recognition/blob/master/reference/pocketsphinx.rst
点击Mandarin Chinese可以进行中文语言包的下载,但是其网址是https://drive.google.com/open?id=0Bw_EqP-hnaFNSWdqdm5maWZtTGc
所以打不开。
Google Drive是Google推出的一款云存储服务
也可就是这个中文语言数据文件是在google云上的。
然后我们从下面的链接下载试一下
https://sourceforge.net/projects/cmusphinx/uploadfile/pgc/Acoustic%20and%20Language%20Models/
下载license
干了会别的,然后突然就下载完成了
这个文件不知道怎么用
因为文件下载速度比较慢,我把这个也上传到百度云里供大家下载
license的链接:https://pan.baidu.com/s/1naKuO7yBo3ZjfBwvMyo6Pw
提取码:e2ff
cmusphinx-zh-cn-5.2.tar.gz的
链接:https://pan.baidu.com/s/1JnxgqJ2KfdcSpRScRZqd5g
提取码:x09y
然后我们解压一下,发现里面有这些文件。
我们和库自带的美国英语文件夹比较一下
比较之后发现好像不太一样,先试试吧
我们在这个路径下建立一个文件夹zh_CN
D:\ProgramData\Anaconda3\Lib\site-packages\speech_recognition\pocketsphinx-data
然后将几个相关的中文模型文件放进来
果然提示错误如下
text1=r.recognize_sphinx(audio_data1, language='zh_CN')
...: print(text1)
Traceback (most recent call last):
File ", line 12, in
text1=r.recognize_sphinx(audio_data1, language='zh_CN')
File "D:\ProgramData\Anaconda3\lib\site-packages\speech_recognition\__init__.py", line 748, in recognize_sphinx
raise RequestError("missing PocketSphinx language model parameters directory: \"{}\"".format(acoustic_parameters_directory))
RequestError: missing PocketSphinx language model parameters directory: "D:\ProgramData\Anaconda3\Lib\site-packages\speech_recognition\pocketsphinx-data\zh_CN\acoustic-model"
我们打开两个名字不一样的文件夹看下
庆幸的是两个文件夹里面的内容类似,我们需要进行加工处理整合一下,我们可以把那个下载得到的关于中文的README文件粘贴到这里,但是
那个senddump却没有找到。
1.先改文件夹的名字。
2.把READMI文件移动过来
然后再次执行
Traceback (most recent call last):
File "<ipython-input-14-24ef78013699>", line 12, in <module>
text1=r.recognize_sphinx(audio_data1, language='zh_CN')
File "D:\ProgramData\Anaconda3\lib\site-packages\speech_recognition\__init__.py", line 750, in recognize_sphinx
raise RequestError("missing PocketSphinx language model file: \"{}\"".format(language_model_file))
RequestError: missing PocketSphinx language model file: "D:\ProgramData\Anaconda3\Lib\site-packages\speech_recognition\pocketsphinx-data\zh_CN\language-model.lm.bin"
然后将zh_cn.lm.bin改名字为language-model.lm.bin,将zh_cn.dic改为pronounciation-dictionary.dict
把前面下载得到的license文件也粘贴过来将后缀改为.txt变成如下样子
然后再执行代码就可以顺利执行了
import speech_recognition
r=speech_recognition.Recognizer()
with speech_recognition.AudioFile("C:\\Users\\Administrator\\Desktop\\hellohello.wav") as source:
audio_data1=r.record(source)
#pip install pocketsphinx -i https://pypi.tuna.tsinghua.edu.cn/simple
#为使用 sphinx ,要想成功使用下面的命令需要先安装pocketsphinx库
text1=r.recognize_sphinx(audio_data1, language='zh_CN')
print(text1)
但是感觉识别的很不准