用树莓派实现会说话的汤姆猫
会说话的汤姆猫很多人都玩过,对着它说话,它就会用猫的音调重复你说的话。这篇文章就是介绍如何使用树莓派来实现这个功能。
测试设备:
树莓派3B+
ReSpeaker 2-Mics Pi HAT(USB的麦克风应该也可以)
耳机/音箱(需要带插头的)
1、ReSpeaker硬件安装
通过SSH连接到树莓派后,首先更新包源,然后安装git,下一步会使用git下载代码:
sudo apt-get update sudo apt-get upgrade sudo apt-get install git
从github获取麦克风驱动源代码:
git clone https://github.com/respeaker/seeed-voicecard.git
进入源代码目录,安装驱动:
cd seeed-voicecard sudo ./install.sh reboot
安装成功后需要重启,然后分别执行aplay -l和arecord -l列出所有的声音播放设备和声音录制设备:
pi@raspberrypi:~ $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] Subdevices: 7/7 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: seeed2micvoicec [seeed-2mic-voicecard], device 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 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0
如果都看到了card 1: seeed2micvoicec,则说明安装成功。
3、ReSpeaker驱动安装问题
执行录音和播放命令:
arecord -f cd -Dhw:1 | aplay -Dhw:1
将扬声器的插头插入ReSpeaker的播放器接口。
现在说话,耳机中应该能够听到重复的声音。
ReSpeaker上还支持APA102 LED,可以根据接收到的声音有闪灯的效果。
这里用到了pip,这是python的一个包安装工具,需要先安装:
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip -V #查看pip版本
然后安装运行:
sudo pip install spidev git clone https://github.com/respeaker/mic_hat.git cd mic_hat python pixels.py
现在说话的时候等应该会闪。
5、安装PyAudio
这个程序可以对音频进行一些处理,我们这里用来做变声。
在Windows上可以直接下载:https://www.surina.net/soundtouch/download.html
在树莓派上需要源代码编译安装这个程序:
sudo wget https://gitlab.com/soundtouch/soundtouch/-/archive/soundtouch-2.0.0/soundtouch-soundtouch-2.0.0.tar.gz sudo tar -xvf soundtouch-soundtouch-2.0.0.tar.gz cd soundtouch-soundtouch-2.0.0 sudo apt-get install automake autoconf libtool build-essential ./bootstrap ./configure make make install
安装之后会在/usr/local/lib中生成类库文件,但是这个目录下的文件不能自动发现,建议将这个目录增加到/etc/ld.so.conf中:
include ld.so.conf.d/*.conf /usr/local/lib #增加的行
然后运行 ldconfig 加载配置。
7、运行汤姆猫程序
这是一个用python3写的程序,先安装几个依赖库:
sudo pip3 install numpy
然后在/home/pi下创建一个目录tomcat:
cd /home/pi mkdir tomcat cd tomcat
然后创建 tomcat.py,这个是会说话的汤姆猫的主程序。其中大概的流程是:
持续监控麦克风声音,如果达到某个阈值就开始录制声音,如果声音低于某个阈值就结束录音,然后保存声音,然后变声,然后播放;播放完毕后,继续监控麦克风声音。
现在上传这个文件到tomcat目录中就可以运行了。
chmod +x ./tomcat.py ./tomcat.py
现在说句话试试,你应该能够听到汤姆猫美妙的回声了(记得连上耳机或音箱哦)。
出处:https://www.cnblogs.com/bossma/p/raspberrypi-implement-a-talking-tom-cat.html