汤姆猫代码python_⽤树莓派实现会说话的汤姆猫
会说话的汤姆猫很多⼈都玩过,对着它说话,它就会⽤猫的⾳调重复你说的话。这篇⽂章就是介绍如何使⽤树莓派来实现这个功能。
测试设备:
树莓派3B+
ReSpeaker2-MicsPiHAT(USB的麦克风应该也可以)
⽿机/⾳箱(需要带插头的)
1、ReSpeaker硬件安装
ReSpeaker是直接扣在树莓派上的,将树莓派的针脚全部插⼊到ReSpeaker中。
2、ReSpeaker驱动安装
通过SSH连接到树莓派后,⾸先更新包源,然后安装git,下⼀步会使⽤git下载代码:
sudoapt-getupdate
sudoapt-getupgrade
sudoapt-getinstallgit
从github获取麦克风驱动源代码:
进⼊源代码⽬录,安装驱动:
cdeed-voicecard
sudo./
reboot
安装成功后需要重启,然后分别执⾏aplay-l和arecord-l列出所有的声⾳播放设备和声⾳录制设备:
pi@raspberrypi:~$aplay-l
****ListofPLAYBACKHardwareDevices****
card0:ALSA[bcm2835ALSA],device0:bcm2835ALSA[bcm2835ALSA]
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
card0:ALSA[bcm2835ALSA],device1:bcm2835ALSA[bcm2835IEC958/HDMI]
Subdevices:1/1
Subdevice#0:subdevice#0
card1:eed2micvoicec[eed-2mic-voicecard],device0:bcm2835-i2s-wm8960-hifiwm8960-hifi-0[]
Subdevices:1/1
Subdevice#0:subdevice#0
pi@raspberrypi:~$arecord-l
****ListofCAPTUREHardwareDevices****
card1:eed2micvoicec[eed-2mic-voicecard],device0:bcm2835-i2s-wm8960-hifiwm8960-hifi-0[]
Subdevices:1/1
Subdevice#0:subdevice#0
如果都看到了card1:eed2micvoicec,则说明安装成功。
3、ReSpeaker驱动安装问题
如果安装成功请跳过这⼀步。
我这⾥第⼀次安装没有成功,报了⼀个错误:
Error!echo
Yourkernelheadersforkernel4.14.50-v7+cannotbefoundat
/lib/modules/4.14.50-v7+/buildor/lib/modules/4.14.50-v7+/source.
⼤概步骤是:
(1)升级系统内核(如果没安装rpi-update,则需要先安装):
sudorpi-update
安装成功后重启。
(2)更新linuxheaders(如果没安装rpi-source,则需要先安装):
sudorpi-source--skip-gcc
(3)删除⽼版本的linuxheaders:
删除/lib/modules/⽂件夹下的⽼版本,⽐如我这⾥安装的最新版本是:4.14.54-v7+,把⾮4.14.54开头的⽂件夹删掉就⾏了。
(4)重新安装驱动:
sudo./
安装成功后重启,再执⾏aplay-l和aarecord-l确认是否安装成功。
4、测试ReSpeaker
执⾏录⾳和播放命令:
arecord-fcd-Dhw:1|aplay-Dhw:1
将扬声器的插头插⼊ReSpeaker的播放器接⼝。
现在说话,⽿机中应该能够听到重复的声⾳。
ReSpeaker上还⽀持APA102LED,可以根据接收到的声⾳有闪灯的效果。
这⾥⽤到了pip,这是python的⼀个包安装⼯具,需要先安装:
pip-V #查看pip版本
然后安装运⾏:
sudopipinstallspidev
cdmic_hat
现在说话的时候等应该会闪。
5、安装PyAudio
虽然aplay和arecord可以实现播放和录⾳的功能,但是如果要实时检测声⾳的话需要⽤PyAudio(可能也有别的库,这⾥选⼀个常⽤的)。
因为我这⾥⽤了python3,所以需要python3版本的PyAudio:
sudoapt-getinstallportaudio19-devpython-all-devpython3-all-dev
pip3installpyaudio
6、安装SoundTouch
这个程序可以对⾳频进⾏⼀些处理,我们这⾥⽤来做变声。
在树莓派上需要源代码编译安装这个程序:
cdsoundtouch-soundtouch-2.0.0
sudoapt-getinstallautomakeautoconflibtoolbuild-esntial
./bootstrap
./configure
make
makeinstall
安装之后会在/usr/local/lib中⽣成类库⽂件,但是这个⽬录下的⽂件不能⾃动发现,建议将这个⽬录增加到/etc/中:
.d/*.conf
/usr/local/lib#增加的⾏
然后运⾏ldconfig加载配置。
7、运⾏汤姆猫程序
这是⼀个⽤python3写的程序,先安装⼏个依赖库:
sudopip3installnumpy
然后在/home/pi下创建⼀个⽬录tomcat:
cd/home/pi
mkdirtomcat
cdtomcat
然后创建,这个是会说话的汤姆猫的主程序。其中⼤概的流程是:
持续监控麦克风声⾳,如果达到某个阈值就开始录制声⾳,如果声⾳低于某个阈值就结束录⾳,然后保存声⾳,然后变声,然后播放;播放
完毕后,继续监控麦克风声⾳。
现在上传这个⽂件到tomcat⽬录中就可以运⾏了。
chmod+x./
./
现在说句话试试,你应该能够听到汤姆猫美妙的回声了(记得连上⽿机或⾳箱哦)。
本博客所有⽂章如⽆特别注明均为原创。
本文发布于:2023-01-27 19:43:13,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/147907.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |