用树莓派实现会说话的汤姆猫

栏目: 软件资讯 · 发布时间: 8年前

内容简介:会说话的汤姆猫很多人都玩过,对着它说话,它就会用猫的音调重复你说的话。这篇文章就是介绍如何使用树莓派来实现这个功能。树莓派3B+ReSpeaker 2-Mics Pi HAT(USB的麦克风应该也可以)

会说话的汤姆猫很多人都玩过,对着它说话,它就会用猫的音调重复你说的话。这篇文章就是介绍如何使用树莓派来实现这个功能。

测试设备:

树莓派3B+

ReSpeaker 2-Mics Pi HAT(USB的麦克风应该也可以)

耳机/音箱(需要带插头的)

1、ReSpeaker硬件安装

ReSpeaker是直接扣在树莓派上的,将树莓派的针脚全部插入到ReSpeaker中。

用树莓派实现会说话的汤姆猫

2、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驱动安装问题

如果安装成功请跳过这一步。

我这里第一次安装没有成功,报了一个错误:

Error! echo
Your kernel headers for kernel 4.14.50-v7+ cannot be found at
/lib/modules/4.14.50-v7+/build or /lib/modules/4.14.50-v7+/source.

大概意思是说找不到 linux 内核的头文件,这个去目录下找确实没有,可能是由于官方镜像升级内核时遗漏了些东西,最终按照这篇文章解决了: https://github.com/respeaker/seeed-voicecard/issues/83

大概步骤是:

(1)升级系统内核(如果没安装rpi-update,则需要先安装):

sudo rpi-update

安装成功后重启。

(2)更新linux headers(如果没安装rpi-source,则需要 先安装 ):

sudo rpi-source --skip-gcc

(3)删除老版本的linux headers:

删除/lib/modules/文件夹下的老版本,比如我这里安装的最新版本是: 4.14.54-v7+,把非4.14.54开头的文件夹删掉就行了。

(4)重新安装驱动:

sudo ./install.sh

安装成功后重启,再执行aplay -l和aarecord -l确认是否安装成功。

4、测试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

虽然aplay和arecord可以实现播放和录音的功能,但是如果要实时检测声音的话需要用PyAudio(可能也有别的库,这里选一个常用的)。

因为我这里用了python3,所以需要python3版本的PyAudio:

sudo apt-get install portaudio19-dev python-all-dev python3-all-dev
pip3 install pyaudio

6、安装SoundTouch

这个程序可以对音频进行一些处理,我们这里用来做变声。

在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

现在说句话试试,你应该能够听到汤姆猫美妙的回声了(记得连上耳机或音箱哦)。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

首席产品官2 从白领到金领

首席产品官2 从白领到金领

车马 / 机械工业出版社 / 79元

《首席产品官》共2册,旨在为产品新人成长为产品行家,产品白领成长为产品金领,最后成长为首席产品官(CPO)提供产品认知、能力体系、成长方法三个维度的全方位指导。 作者在互联网领域从业近20年,是中国早期的互联网产品经理,曾是周鸿祎旗下“3721”的产品经理,担任CPO和CEO多年。作者将自己多年来的产品经验体系化,锤炼出了“产品人的能力杠铃模型”(简称“杠铃模型”),简洁、直观、兼容性好、实......一起来看看 《首席产品官2 从白领到金领》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具