前言:此项目用于本人单片机课程的期末大作业,一度历经挫折,最终终于实现了在树莓派4B环境下应用snowboy进行语音唤醒,大家有想在树莓派上部署语音唤醒的可以参考此篇文章。(致谢:感谢刘学长的指导以及吴同学、蒋同学、袁同学等人提供的精神鼓励!)
目录
前期准备
硬件准备:
树莓派4B,TF卡,USB声卡,麦克风(有线耳机也可以)
软件准备:
自己的pc有VNC viewer
配置树莓派4B环境,使其能够连接上VNC如图,并更换源(我的环境是python2=2.7,python3=3.7)
第一步、导入snowboy项目到树莓派
由于国内访问github不稳定,有vpn的同学可以打开vpn访问以下网址:
https://github.com/Kitt-AI/snowboy
进入页面后点击code,然后download zip,将项目下载到自己电脑
然后点击vnc的transfer files,出现如下弹窗后点击send files,将刚刚下载的项目导入到树莓派(这样传输文件会直接传输到树莓派的桌面)
传输完毕后桌面会出现一个snowboy-master.zip的文件
第二步、编译项目
1.在vnc中快捷键ctrl+alt+t新建一个终端,输入指令对项目进行解压
cd Desktop/
unzip snowboy-master.zip
2.安装依赖
sudo apt install python3 python3-pip libatlas-base-dev portaudio19-dev swig
pip3 install pyaudio
3.进入SnowBoy编译目录并进行编译
cd snowboy-master/swig/Python3
make
将编译好的库文件移动到样例文件下
cp snowboydetect.py _snowboydetect.so ../../examples/Python3/
进入样例文件夹
cd ../../examples/Python3/
修改snowboydecoder.py
nano snowboydecoder.py
将from . import snowboydetect 改为import snowboydetect.py
ctrl+o 进行写入
entre 进行确定
ctrl+x 回到命令行
(每次用nano编辑完成都使用这几句指令进行保存退出,后面将不再提示)
第三步、配置树莓派声卡
确保usb声卡连接上树莓派
查看usb声卡编号
cat /proc/asound/cards
记住usb声卡的编号,我的声卡是card 2
在home目录下新建.asoundrc
cd /home
sudo nano .asoundrc
写入以下内容(card后面的数字是自己usb声卡的编号)
defaults.ctl.card 2
defaults.pcm.card 2
保存并退出
打开配置文件alsa.conf
,修改声卡的序号
sudo nano /usr/share/alsa/alsa.conf
将原内容修改为以下内容
defaults.ctl.card 2
defaults.pcm.card 2
保存并退出
第四步、运行样例
进入样例文件夹
cd /home/pi/Desktop/snowboy-master/examples/Python3/
启动jack
jack_control start
运行程序
python3 demo.py resources/models/snowboy.umdl
出现以下结果说明环境配置成功
对mic说snowboy 查看是否有反馈,没有也没关系可能是mic的不同导致的
第五步、训练自己的唤醒词
在树莓派中进入以下网站,训练自己的唤醒词
将下载的模型(我的模型是help1.pmdl)
copy到/home/pi/Desktop/snowboy-master/examples/Python3/resources/models
运行程序(注意要先关闭浏览器)
python3 demo.py resources/models/help1.pmdl
正常来说就可以成功检测啦!!
(如果有树莓派初始环境配置教程的需要,可以在评论区留言)
参考文章:
1.snowboy环境配置
[Raspi][SnowBoy][教程]树莓派SnowBoy搭建教程_踏雪Vernon的博客-CSDN博客
2.树莓派换源
树莓派完整详细的换源教程_树莓派 换源教程_树莓派爱好者基地的博客-CSDN博客
3.程序运行过程中的问题解决
树莓派4B编译安装snowboy_lrfpop的博客-CSDN博客
4.设置默认声卡