当前位置: 首页 > 工具软件 > wukong-robot > 使用案例 >

树莓派3B+官方系统手动安装wukong-robot

方野
2023-12-01

环境

树莓派3B+
ReSpeaker 4-Mics Pi HAT
3.5mm耳机
wukong-robot: link

安装

具体参考官方手动安装教程

问题记录

一、使用3.5mm耳机听不到声音

该问题wukong-robot社区有解决方案,但是并没有解决我遇到的问题,根据经验赞同他们提的思路:alsa 和 pulseaudio 冲突。
首先判断声卡及音响是否正常:

// 查看音频输入设备
pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: ArrayUAC10 [ReSpeaker 4 Mic Array (UAC1.0)], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
// 查看音响输出设备
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: ArrayUAC10 [ReSpeaker 4 Mic Array (UAC1.0)], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

确认设备识别没问题,在相关文件配置中,麦克风设备表示为‘hw:1,0’,3.5mm耳机表示为‘hw:0,0’,使用下面指令测试麦克风和耳机可以正常工作

// 实时播放麦克风采集的音频
arecord -D plughw:1,0 -f cd |aplay -D plughw:0,0 -f cd

但是偏偏每次执行sudo python3 wukong.py时,麦克风可以使用但是听不到声音(此时未更换唤醒词,且在web配置界面我把唤醒灵敏度调到最大,这样可以从终端log打印上看到基本上随便说句话都能触发唤醒)。
于是尝试顺着alsa 和 pulseaudio冲突去搜索解决问题, 在这篇文章中找到了答案:
第一步:修改analog-output.conf.common

//1、终端执行
sudo nano /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
//2、找到以下代码段
[Element PCM]
switch = mute
volume = merge
override-map.1 = all 
override-map.2 = all-left,all-right
//3、改成下面这样
[Element PCM]
switch = mute
volume = ignore
volume-limit = 0.01
override-map.1 = all 
override-map.2 = all-left,all-right

第二步:修改default.pa

// 1、终端执行
sudo nano /etc/pulse/default.pa
 
//2、找到包含这两句的
load-module module-alsa-sink
load-module module-udev-detect
//3、修改成下面这样(被注释掉的话要打开)
load-module module-alsa-sink control=PCM
load-module module-udev-detect ignore_dB=1

第三步:重启pulseaudio

// 终端依次执行
pulseaudio -k
pulseaudio --start

至此该问题成功解决,附上结果过程中尝试过的其他办法:
链接1
链接2
链接3
pulseaudio模块wiki文档

 类似资料: