本人需要一个开源免费的语音库,目的是用来给机器人发指令,也就是说只需要只个简单的词。
在windows10、ubuntu18.04下需要成功实现了中文识别。
windows下可以采用:大佬的方法
ubuntu下,依然是这位大佬的延伸,其中en-US文件在
~/.local/lib/python3.6/site-packages/speech_recognition/pocketsphinx-data
中,而不是在~/.local/lib/python3.6/site-packages/pocketsphinx/model
中,这个一定要注意,本人就改错了。
别外如果上述大佬的文件链接失效了,本人提供如下:
(本人没有百度网盘会员,下载微有痛苦,特以天翼云盘的方式给出)
https://cloud.189.cn/web/share?code=NNr2E3NzaeEb(访问码:8gnk)
首先把包给安了,既然说了要离线的,还有免费的,所以下面的都是开源的,尽管拿去用。
pip install SpeechRecognition
(win)
或pip3 install SpeechRecognition
(ubuntu)(下面就不说了,ubuntu下我用的是python3.6)
接着同样把sphinx、PyAudio给安了,然后将提示的包全安了,嫌速度慢可以参考:如下:
(注意ubuntu下最好用sudo apt-get install pocketsphinx)(pip3会报错,当然也可以解决pip3报错问题:https://blog.csdn.net/weixin_44895651/article/details/104445102)
win下链接:https://blog.csdn.net/wxkhturfun/article/details/100387273
linux下:
关于pyaudio:https://blog.csdn.net/LCCFlccf/article/details/108313149
(备注:上述图片截图于https://www.fujieace.com/python/pypi.html)
然后就是偷梁换柱了
找到这个路径(没安上面的包当然找不到)
D:\Python\Python37\Lib\site-packages\speech_recognition\pocketsphinx-data
当然,自己的路径自己找,用pip安装的话是在“speech_recognition\pocketsphinx-data”包里了,ubuntu下也一样,在这个路径下你会发现一个名为en-US的文件夹,没错,要是不动这个文件夹,你可以识别英文,比如执行以下代码:
# -*- coding: utf-8 -*-
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
print('say something')
# print("")
audio = r.listen(source)
try:
print("Sphinx thinks you said " + r.recognize_sphinx(audio))
print("ok")
except sr.UnknownValueError:
print("Sphinx could not understand audio")
except sr.RequestError as e:
print("Sphinx error; {0}".format(e))
但是我要是想改成中文呢?这里可以用我的中文包拿去(2020年4月初下的),直接用下面的包替换原来的en-US即可(当然做人要留条后路,万一以后要识别英文呢,还是备份原来的吧)
天翼云盘链接:(百度网盘本人没有会员,等有会员再改吧)
https://cloud.189.cn/t/yArAbyIVZb6r
同样运行上面的代码,大概率事件是可以识别中文了。