跳到主要内容

3.2.2 RDK X3 Module音频板使用指南

RDK X3 Module目前提供对Audio Driver HATWM8960 Audio HAT两款音频转接板的支持,用于满足不同语音场景的功能需求,下面将对两种音频板的使用方法进行详细介绍。

提示

如果安装驱动后提示Miniboot版本不是最新,请进入1 System Options -> S7 Update Miniboot 更新miniboot

Audio Driver HAT REV2

产品简介

Audio Driver HAT REV2是由微雪电子生产的一款音频转接板,采用ES7210+ES8156双Codec方案,可实现环形4MIC录音、双通道音频播放、音频信号回采功能,转接板外观如下图:

image-audio-driver-hat

关于音频转接板的详细介绍,请参考Audio Driver HAT

安装方法

  1. 按照下图方式,将转接板接入RDK X3 Module的40pin header
    image-audio-driver-hat-setup
    并将拨码开关全部拨到off

  2. 使用srpi-config配置音频板
    进入3 Interface Options->I5 Audio
    选择Audio Driver HAT V2image-audio-driver-hat-config00

  3. 运行命令sync && reboot重启开发板,如/dev/snd下出现如下设备节点,说明转接板安装成功

    root@ubuntu:/userdata# ls /dev/snd
    by-path controlC0 pcmC0D0p pcmC0D1c timer

卸载方法

  1. 使用srpi-config配置音频板
    进入3 Interface Options->I5 Audio
    选择UNSET,即可卸载音频驱动和相关配置

音频节点

该音频板在RDK X3上的的播放节点为pcmC0D1p,录制节点为pcmC0D0c

录音播放测试

测试使用tinyalsa库的工具集:使用tinycap进行录制,使用tinyplay进行播放

tinycap使用说明:

tinycap
Usage: tinycap {file.wav | --} [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p period_size] [-n n_periods] [-t time_in_seconds]

Use -- for filename to send raw PCM to stdout

tinyplay使用说明:

tinyplay
usage: tinyplay file.wav [options]
options:
-D | --card <card number> The device to receive the audio
-d | --device <device number> The card to receive the audio
-p | --period-size <size> The size of the PCM's period
-n | --period-count <count> The number of PCM periods
-i | --file-type <file-type > The type of file to read (raw or wav)
-c | --channels <count> The amount of channels per frame
-r | --rate <rate> The amount of frames per second
-b | --bits <bit-count> The number of bits in one sample
-M | --mmap Use memory mapped IO to play audio

如果想了解更多关于tinyalsa库的信息,请查阅它们的仓库地址

  • 2通道麦克风录音:
tinycap ./2chn_test.wav -D 0 -d 0 -c 2 -b 16 -r 48000 -p 512 -n 4 -t 5
  • 4通道麦克风录音:
tinycap ./4chn_test.wav -D 0 -d 0 -c 4 -b 16 -r 48000 -p 512 -n 4 -t 5
  • 双通道音频播放:
tinyplay ./2chn_test.wav -D 0 -d 1

音频回采测试

该音频板的播放回采信号,使用了录音通道7&8,因此需要使用8通道录音命令进行采集。

  • 启动8通道麦克风录音
tinycap ./8chn_test.wav -D 0 -d 0 -c 8 -b 16 -r 48000 -p 512 -n 4 -t 5
  • 启动双通道音频播放
tinyplay ./2chn_test.wav -D 0 -d 1

录制完成后,可使用音频软件查看2chn_test.wav文件中通道7&8的频谱信息。

注意事项

RDK X3 Module不支持老款Audio Driver HAT REV1音频板,请用户升级到REV2版本使用。

WM8960 Audio HAT

产品简介

WM8960 Audio HAT是由微雪电子生产的一款音频转接板,采用WM8960 Codec方案,可实现双通道麦克风录音、音频播放功能,转接板外观如下图:

image-audio-wm8960

关于音频转接板的详细介绍,请参考WM8960音频转接板

安装方法

  1. 按照下图方式,将转接板接入RDK X3的40pin header
    image-wm8960-audio-hat-setup

  2. 使用srpi-config配置音频板
    进入3 Interface Options->I5 Audio
    选择WM8960 Audio HATimage-audio-driver-hat-config00

  3. 运行命令sync && reboot重启开发板,如/dev/snd下出现如下设备节点,说明转接板安装成功

    root@ubuntu:~# ls /dev/snd/
    by-path controlC0 pcmC0D0c pcmC0D0p pcmC0D1c pcmC0D1p timer

卸载方法

  1. 使用srpi-config配置音频板
    进入3 Interface Options->I5 Audio
    选择UNSET,即可卸载音频驱动和相关配置

音频节点

该音频板在RDK X3上的的播放节点为pcmC0D0p,录制节点为pcmC0D1c

录音播放测试

测试使用tinyalsa库的工具集:使用tinycap进行录制,使用tinyplay进行播放

tinycap使用说明:

tinycap
Usage: tinycap {file.wav | --} [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p period_size] [-n n_periods] [-t time_in_seconds]

Use -- for filename to send raw PCM to stdout

tinyplay使用说明:

tinyplay
usage: tinyplay file.wav [options]
options:
-D | --card <card number> The device to receive the audio
-d | --device <device number> The card to receive the audio
-p | --period-size <size> The size of the PCM's period
-n | --period-count <count> The number of PCM periods
-i | --file-type <file-type > The type of file to read (raw or wav)
-c | --channels <count> The amount of channels per frame
-r | --rate <rate> The amount of frames per second
-b | --bits <bit-count> The number of bits in one sample
-M | --mmap Use memory mapped IO to play audio

如果想了解更多关于tinyalsa库的信息,请查阅它们的仓库地址

  • 2通道麦克风录音:
tinycap ./2chn_test.wav -D 0 -d 1 -c 2 -b 16 -r 48000 -p 512 -n 4 -t 5
  • 双通道音频播放:
tinyplay ./2chn_test.wav -D 0 -d 0

音频子板和USB声卡共存

如果您有USB声卡,并且想它和上述的音频子板共存,请参考下列的教程进行操作:

  1. 根据上面教程,确保音频子板可用

  2. 接入USB声卡,驱动加载完成后观察/dev/snd下面的新增节点,此处以WM8960 + USB全双工声卡为例:

    root@ubuntu:~# ls /dev/snd/
by-path controlC0 pcmC0D0c pcmC0D0p pcmC0D1c pcmC0D1p pcmC1D0c pcmC1D0p timer

其中pcmC1D0c pcmC1D0p为USB声卡节点,全双工共用一个节点

  1. 修改/etc/pulse/default.pa,在load-module module-alsa-source下面添加对应的节点信息:
...

.ifexists module-udev-detect.so
load-module module-alsa-sink device=hw:0,1 mmap=false tsched=0 fragments=2 fragment_size=960 rate=48000 channels=2 rewind_safeguard=960
load-module module-alsa-source device=hw:0,0 mmap=false tsched=0 fragments=2 fragment_size=960 rate=48000 channels=2
load-module alsa device=hw:1,0 #对应上面的节点
load-module module-alsa-source device=hw:1,0 #对应上面的节点
.else

...
  1. 保存配置,并重启开发板