用raspberry pi自制Amazon Echo

硬件设备

我的设备基本都是在seeed上买的,因为seeed wiki提供设备的详细文档。

推荐大家配置之前先看看这些文档,熟悉熟悉设备

Raspberry Pi 4B

Seeed ReSpeaker 2-Mics Pi HAT

Step 1: 连接 设备

把 ReSpeaker 2-Mics Pi HAT 和 Raspberry Pi上的pins对齐,用点力按到一起,直到中间的金属针看不到,如下图
用raspberry pi自制Amazon Echo
把speaker插到ReSpeaker 2-Mics Pi HAT上speaker的那个接口上
用raspberry pi自制Amazon Echo

Step 2: 在Raspberry Pi上设置ReSpeaker 2-Mics Pi HAT的声卡驱动

官方给的启动命令是

git clone --depth=1 https://github.com/respeaker/seeed-voicecard
cd seeed-voicecard
sudo ./install.sh
reboot

我运行时发现系统版本太高安装不了驱动

查看./install.sh文件发现了这么一段代码,

usage: sudo ./install [ --compat-kernel | --keep-kernel ] [ -h | --help ]
             default action is update kernel & headers to latest version.
             --compat-kernel uses an older kernel but ensures that the driver can work.
             --keep-kernel   don't change/update the system kernel, maybe install
                             coressponding kernel headers.
             --help          show this help message

因此在后面加上--compat-kernel参数

sudo ./install.sh --compat-kernel
reboot

大功告成

查看声卡设备信息

#显示播放设备
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
  Subdevices: 8/8
  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
  Subdevice #7: subdevice #7
card 1: 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 1: 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

#测试ReSpeaker 2-Mics Pi HAT的收音功能
# card:0是Raspberry Pi的音频口
arecord -f cd -Dhw:0 | aplay -Dhw:0

# card:1是ReSpeaker 2-Mics Pi HAT的音频口
arecord -f cd -Dhw:1 | aplay -Dhw:1

#设置声音,f6选择声卡,左右键选择声道,上下键调节音量
pi@raspberrypi:~ $ alsamixer

用raspberry pi自制Amazon Echo

Step 3: 在Raspberry Pi上下载amazon voice service

3.1 按照以下三步在amazon voice service(AVS)注册一个产品

具体操作见页面。官网有详细指导,操作非常简单。

  1. Create an Amazon developer account. 创建一个amazon developer 账号
  2. Register an AVS built-in device. 注册一个AVS内置设备
  3. Set up your security profile.设置安全文件

3.2 在Raspberry Pi上设置AVS的SDK

具体操作见页面,介绍得很详细,基本就复制,黏贴到Raspberry Pi的命令行即可。缺点是我花了二十多分钟等待sample app建好。

到了Set up the microphone这一步。在.asoundrc文件添加的内容,可以修改一下,把收音和播放的声卡改成自己想要的。

pcm.!default {
   type asym
    playback.pcm {
      type plug
      slave.pcm "hw:1,0" #播放用的声卡
    }
    capture.pcm {
      type plug
      slave.pcm "hw:1,0" #收音时用的声卡
    }
 }

授权完成后,通过下面的命令启动avs服务

cd /home/pi/sdk-folder/sdk-build
 PA_ALSA_PLUGHW=1 ./SampleApp/src/SampleApp ./Integration/AlexaClientSDKConfig.json ../third-party/alexa-rpi/models

看到这个

用raspberry pi自制Amazon Echo

然后呼唤"Alexa"
这个Alexa只说英文

参考

https://www.hackster.io/idreams/build-your-own-amazon-echo-using-a-rpi-and-respeaker-hat-7f44a0

https://www.hackster.io/CHENJUNJ/smart-clock-with-alexa-interaction-9a79ed

上一篇:Amazon Rekognition 人脸识别


下一篇:AWS IOT解决方案分析