树莓派智能语音助手之ASR – SpeechRecognition+PocketSphinx

想要让树莓派成为智能语音助手,除了会“说”,也要会“听”。接下来,就要让它实现ASR(语音识别)功能了。

本来想用sherpa-onnx来实现离线语音识别的,可惜,我的树莓派系统太老了,折腾了半天发现很多东西不兼容,于是只能放弃了这个方案。最后选择了SpeechRecognition+PocketSphinx来实现。

1安装SpeechRecognition

pip install SpeechRecognition

安装成功后在终端输入:

python

>>import speech_recognition as sr

>>sr.__version__

回车后显示了版本号则表示安装成功。

2 安装PocketSphinx

recognize_sphinx()语音识别器可以脱机工作,但是必须安装pocketsphinx库.

pip install pocketsphinx

3 下载中文模型

pocketsphinx需要安装中文语言、声学模型。

下载地址:

https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/Mandarin/

把cmusphinx-zh-cn-5.2.tar.gz下载解压后,要将文件夹更名为zh-CN,里面的zh_cn.cd_cont_5000文件夹重命名为acoustic-model;zh_cn.lm.bin命名为language-model.lm.bin;zh_cn.dic要改为pronounciation-dictionary.dict(注意,dic改成了dict)。完成这些改名后,把这个文件夹移动到python目录下的\site-packages/speech_recognition/pocketsphinx-data/。

mv zh-CN /usr/local/lib/python3.9/site-packages/speech_recognition/pocketsphinx-data/

4 功能测试

touch asr.py

sudo nano asr.py

创建一个asr的py文件,内容如下:

import speech_recognition as sr

def asr(rate=16000):
   r = sr.Recognizer()

   with sr.Microphone(sample_rate=rate) as source:
      print("说些什么…… ")
      audio = r.listen(source)

   try:
     c=r.recognize_sphinx(audio, language='zh-CN')
    #c=r.recognize_sphinx(audio, language='en-US')
     print("识别结果: " + c)
   except sr.UnknownValueError:
      print("无法识别音频")
   except sr.RequestError as e:
      print("Sphinx error; {0}".format(e))

asr()

注意,如果要让录音定时,audio=的代码就要改成:

audio=r.record(source,duration=5)  #设置5秒录音

存档后,执行python3 asr.py,结果如下:

我说的是“今天是个好天气”,识别的结果变成了“好贴心”……

最后,谈谈实测的感受。中文识别率好像不是特别高,而且识别的时间也有点长(也可能是我的系统太老了),先凑合用吧……

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天飓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值