ermutuxia

2021-03-11   阅读量: 3280

在用sphinx库进行语音识别的时候除了默认的美语外,如何添加其他语种,比如中文?

扫码加入数据分析学习群

在用sphinx库进行语音识别的时候除了默认的美语外,如何添加其他语种,比如中文?

从如下链接进去,由于是国外的网站,可能一次登录不进去,需要多登录几次,或者关掉杀毒软件再多试几次

但是我的电脑打开github还是很慢可以看下这个帖子https://blog.csdn.net/pnjtvxcp/article/details/107759720(按照这个帖子操作以后登录github网站的速度就快一些了)

https://github.com/Uberi/speech_recognition/blob/master/reference/pocketsphinx.rst

9.png

点击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/

9.png


0.png

下载license

5.png



9.png

8.png

干了会别的,然后突然就下载完成了

0.png这个文件不知道怎么用

0.png


因为文件下载速度比较慢,我把这个也上传到百度云里供大家下载

license的链接:https://pan.baidu.com/s/1naKuO7yBo3ZjfBwvMyo6Pw

提取码:e2ff

cmusphinx-zh-cn-5.2.tar.gz的

链接:https://pan.baidu.com/s/1JnxgqJ2KfdcSpRScRZqd5g

提取码:x09y



然后我们解压一下,发现里面有这些文件。

2.png

我们和库自带的美国英语文件夹比较一下

2.png

比较之后发现好像不太一样,先试试吧

我们在这个路径下建立一个文件夹zh_CN

D:\ProgramData\Anaconda3\Lib\site-packages\speech_recognition\pocketsphinx-data


2.png

然后将几个相关的中文模型文件放进来

4.png



果然提示错误如下

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"

我们打开两个名字不一样的文件夹看下

2.png

3.png

庆幸的是两个文件夹里面的内容类似,我们需要进行加工处理整合一下,我们可以把那个下载得到的关于中文的README文件粘贴到这里,但是

那个senddump却没有找到。

1.先改文件夹的名字。

6.png

2.把READMI文件移动过来

8.png

然后再次执行

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"

3.png

然后将zh_cn.lm.bin改名字为language-model.lm.bin,将zh_cn.dic改为pronounciation-dictionary.dict

把前面下载得到的license文件也粘贴过来将后缀改为.txt变成如下样子

4.png

然后再执行代码就可以顺利执行了

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)

4.png

但是感觉识别的很不准




0.0000 1 2 关注作者 收藏

评论(2)

HXAI100849
2021-03-16

受益匪浅

0.0000 0 0 回复
ermutuxia
2021-03-16

希望大家每天都有进步

0.0000 1 0 回复

推荐课程