基于Raspberry Pi的ReSpeaker 4-Mic阵列是一款适用于AI和语音应用的Raspberry Pi的四通道麦克风扩展板,如图3-1所示。这意味着你可以借助它构建一个集成Amazon Alexa语音服务、Google助手等功能更强大、更灵活的语音产品。
图3-1
区别于ReSpeaker 2-Mics Pi HAT,该版是基于AC108开发的,是一款高度集成四通道ADC,具有用于高清晰度语音捕获、I2S/TDM输出、拾取3米半径声音的语音设备。此外,这款4-Mics版本提供了超酷LED环,其中包含12个APA102可编程LED。就像Amazon Echo或Google assist一样,使用4个麦克风和LED环,Raspberry Pi具有VAD(语音活动检测)、DOA(到达方向)、KWS(关键字搜索),并通过LED环显示方向灯功能。
基于Raspberry Pi的ReSpeaker 4-Mic阵列由以下硬件构成(见图3-2):
· MIC:4个模拟麦克风。
· LED:12个APA102可编程RGB LED,连接到SPI接口。
· Raspberry Pi 40针头:支持Raspberry Pi Zero、Raspberry Pi 1 B +、Raspberry Pi 2 B和Raspberry Pi 3 B。
· AC108:具有I2S / TDM输出转换功能的高度集成的四通道ADC。
· I2C:Grove I2C端口,连接到I2C-1。
· GPIO12:Grove数字端口,连接到GPIO12和GPIO13。
图3-2
以下所有实验均要求树莓派刷入完整版的Raspbian操作系统,也就是官网上Raspbian Stretch with desktop and recommended software的版本。
下面介绍系统配置与驱动安装的具体步骤。
步骤01 把ReSpeaker 4-Mics Pi HAT插入Raspberry Pi。
把ReSpeaker 4-Mics Pi HAT插入Raspberry Pi,确保插入Raspberry Pi的时候针脚对齐,如图3-3所示。
图3-3
注意
不要在上电的时候,热插拔ReSpeaker 4-Mics Pi HAT。
步骤02 烧录系统、登录、换源。
因为当前的Pi内核不支持wm8960编解码器,所以需要手动构建。确保你正在Pi上运行Raspbian操作系统(debian 9)。你可以用etcher进行系统烧录。输入如图3-4所示的指令可查看树莓派操作系统版本。
图3-4
树莓派系统(下载网站https://www.raspberrypi.org/downloads/raspbian/Raspbian系统)有两种:一种是含有桌面的,一种是没有桌面的。在这里可以选择没有桌面的RASPBIAN STRETCH LITE,因为不需要显示器,而且LITE体积也比较小。
Etcher是一款开源的磁盘烧录程序,可以用来制作U盘启动器。树莓派其实就是把SD卡做成一个引导盘,并启动SD卡中的Linux服务器。Etcher可以在其官网(https://etcher.io/)下载。
烧录方法
把SD卡插入读卡器并插在电脑的USB口上,电脑会识别出一个新的磁盘。运行Etcher,依次选择前边下载的RASPBIAN STRETCH LITE和SD卡对应的盘符。
可以用VNC或者PUTTY连接树莓派,但之前请配置好WiFi。使用PUTTY连接树莓派的教程为https://www.cnblogs.com/mq0036/p/8488598.html。
在安装驱动之前,请根据以下流程切换源:
pi@raspberrypi ~ $ sudo nano /etc/apt/sources.list
用#注释掉原文件内容,输入以下内容进行替换:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free
运行效果如图3-5所示。
图3-5
注意
输入后要按Ctrl+O组合键保存。
步骤03 驱动下载并安装。
运行下面的命令:
sudo apt-get update git clone https://github.com/respeaker/seeed-voicecard.git cd seeed-voicecard #下载声卡驱动 sudo ./install.sh #安装声卡驱动 reboot #重启
运行效果如图3-6所示。
图3-6
图3-6(续)
步骤04 检查声卡名称是否与源代码seeed-voicecard相匹配。
在终端输入“arecord –L”并对应设置,如图3-7所示。
图3-7
如果要更改alsa设置,可以使用sudo alsactl --file=ac108_asound.state store保存现有设置。当你需要再次使用这些设置时,可将它复制到sudo cp~/seeed-voicecard/ac108_asound.state/var/lib/alsa/asound.state。
(1)arecord录音
①查看录音设备:
arecord –l
②录音。根据上面的信息,如果要用TDM_Capture录音,可以输入如下命令:
arecord -Dhw:0,1 -d 10 -f cd -r 44100 -c 2 -t wav test.wav
其中,D指定录音设备;0,1是card 0 device 1的意思,也就是TDM_Capture;-d指定录音的时长,单位是s;-f指定录音格式,通过上面的信息知道只支持cd、cdr、dat格式;-r指定了采样率,单位是Hz;–c,指定channel的个数;-t指定生成的文件格式。
(2)aplay播放
①查看播放音频设备:
aplay –l
②播放指定音频文件:
aplay test.wav
arecord | aplay
可以用arecord录制,然后用aplay播放(不要忘记插耳机或者喇叭):也可以通过Audacity软件测试。打开Audacity后,选择AC108和2通道作为输入、bcm2835 alsa: - (hw:0,0)作为输出来测试:
Audacity运行界面如图3-8所示。
图3-8
AlsaMixer是用于配置声音和调整音量、高级Linux声音体系结构(ALSA)的图形混音器程序,如图3-9所示。
在终端输入指令“pi@raspberrypi:~ $alsamixer”启动AlsaMixer后,请用F6快捷键选择seeed-4mic的声卡设备。
左、右箭头键用于选择通道或设备,上、下箭头键用于控制当前所选设备的音量。退出程序使用Alt + Q或按Esc键。
图3-9
使用Python进行开发,这里需要隔离SDK与系统Python包的关系。
终端命令及反馈如图3-10所示。
图3-10
每个板载APA102 LED都有一个额外的驱动芯片。驱动芯片设置LED的颜色,然后保持该颜色,直到接收到新的命令。
请在执行之前打开SPI,具体步骤如下:
步骤01 输入“sudo raspi-config”。
步骤02 选择Interfacing Options。
步骤03 选择SPI。
步骤04 选择Yes。
步骤05 选择OK。
步骤06 选择Finish。
配置完毕后,可以执行下列命令行来运行led示例:
终端命令及反馈如图3-11所示。
图3-11
此时,在虚拟环境下运行“python pixels.py”,你可以看到LED像Google Assistant灯光一样闪烁,如图3-12所示。
图3-12