树莓派+双麦克风扩展板实现snowboy热词唤醒(避坑排雷)

硬件准备:

  • 树莓派4b x1
  • 树莓派双麦克风扩展板(或者4mics 8mics都可以) x1
  • 任意一个支持树莓派的音频输出设备(3.5mm孔的 或者一些蓝牙设备)

本文最终要实现的就是对着麦克说你的唤醒词,从耳机或者音响获得’叮’的一声反馈,并在树莓派的终端看到以下输出(日期时间是你自己的):

INFO:snowboy:Keyword 1 detected at time: 2020-11-23 18:41:54

注意事项:
1.切记不要热插拔扩展板,就是不要在给树莓派上电的情况下插
2.麦克风扩展板可能需要上电才能发挥完整性能(一般来说是不用的)

组装后的树莓派如图(我多加了一层带风扇的扩展版和一个摄像头):
树莓派+双麦克风扩展板实现snowboy热词唤醒(避坑排雷)_第1张图片
准备工作:

  • 置购合适的硬件
  • 在设置里调好输出设备
  • 换清华源
  • 安装麦克风扩展板的驱动

先看这里:

阅读下面这篇文章: ReSpeaker 2-Mics Pi HAT

这篇wiki里将如何安装树莓派麦克风阵列驱动写的比较详尽了,但是这篇文章很明显是缺少更新的:
我现在写这篇文章的日期是2020.11.23 此时如果你在将树莓派换源后进行更新,你的内核版本会更新到5.4
但是这里有一个问题,就是seeed-voicecard这个项目的最新版本不太兼容这个内核版本,在执行这条指令时

sudo ./install.sh 

会报错缺少header 然后提示你使用

sudo ./install.sh  --compat-kernel

这条指令进行安装,但仍然报错。百思不得其解的时候我去看了seeed-voicecard的github项目地址去查看了一下,作者说根据用户提供的信息,最新版本的驱动总是出错;注意这个项目是有分支的,我们选择自行去下载它的历史版本,支持内核版本为4.19的版本 4.19 or less
不过现在下载的树莓派系统的内核应该都是5.4了,我们可以在安装完树莓派系统的时候检查一下内核版本

sudo uname -srm  //查看当前kernel版本

如果已经大于4.19了,那么请下载树莓派系统的历史版本
如果你的版本<=4.19 请使用这条指令安装驱动

sudo ./install.sh  --compat-kernel

安装成功后重启树莓派。

sudo reboot

测试一下输入输出设备的驱动 :
输出设备:

pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
  Subdevices: 4/4
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
card 2: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

输入设备:

pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 2: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

如果这些都成功了驱动就没什么问题了。
然后是python的版本,使用python3(树莓派系统里默认的应该是python2)

#切换python版本
sudo apt-get install python3 #下载python3
sudo rm /usr/bin/python  #删除原来python2的链接
sudo ln -s /usr/bin/python3.4 /usr/bin/python  #链接到python3
python    				#查看当前的python版本

语音模型的训练可以去snowboy的官网,非常容易
随后snow的下载安装参考这篇博客:

snowboy

PS:
以上所有从github上下载的项目都可能会很慢,建议在pc端下载zip压缩包再更改为.gz模式传到树莓派上进行解压,否则非常耽误时间且可能下载失败(解压的步骤一定要在树莓派上进行,否则无法使用,树莓派不会给权限)

最后对着麦克风说出唤醒词的时候(可能要尝试多次) 会听到’叮’的一声,并在终端输出以下内容:

INFO:snowboy:Keyword 1 detected at time: 2020-11-23 18:41:54

树莓派+双麦克风扩展板实现snowboy热词唤醒(避坑排雷)_第2张图片

你可能感兴趣的:(玩玩硬件,linux,python)