跳到主要内容

快速开始

软硬件配置

将 RDK 音频套件的拨码开关设置如下(101X),该状态设置模式为 I2S,I2S 通道数为 1,I2S 参考电平为 3V3。

拨码开关 101X

保证系统镜像版本 = RDK OS 3.5.0,将以下补丁包下载到 RDK X5 板卡中。

在板端输入 sudo dpkg -i hobot-* 安装它们。

安装 hobot 补丁包

输入 srpi-config,依次点击 3 Interface Options > I5 Audio > Audio Driver HAT V2,按下回车,然后选择 <Finish>,根据指引选择重启,或者自行输入命令 sudo reboot 使所有配置生效。

srpi-config 配置 Audio Driver HAT V2

如果按照前文说明正确安装了 RDK 音频套件,重启完成后,输入 cat /proc/asound/cards 查看 ALSA 检测到的所有声卡信息,其中 duplexaudio 是 RDK X5 板端自带的声卡,duplexaudioi2s1 则是 RDK 音频套件的声卡,配置有效。

RDK X5 ALSA 声卡信息

输入 ls -l /dev/snd 可以查看录音与播放节点,其中 pcmC0D0p 表示 PCM 通道 0 设备 0 的播放节点,pcmC0D1c 表示 PCM 通道 0 设备 1 的录音节点,以此类推,这两个节点就是 RDK X5 上 RDK 音频套件的对应节点。

RDK X5 /dev/snd 节点

功能体验

本处以 RDK X5 + RDK 音频套件为例,展示如何使用 arecord 工具录制多通道音频、使用 aplay 工具播放多声道音频、全双工录制播放。

录制多通道音频

保证录音节点存在,可以使用 arecord 命令录制音频,简单描述 arecord 命令录音用法:

arecord [选项] [输出文件路径]
-D 通路:CARD,DEVICE 通路可选 hw(直通硬件) plughw(自动格式转换) default(默认值)
-d 录制时长
-f 采样格式 可选 S16_LE S24_LE S32_LE 等
-r 采样率 常用 8000/16000/22050/44100/48000/96000 等
-c 通道数量

这里我们不做格式转换,假设 ls -l /dev/snd 查看到的声卡通道号为 0,录音设备号为 1,使用 S16_LE 格式,采样率 16000,录制 8 通道音频 10 秒:

arecord -D hw:0,1 -d 10 -r 16000 -f S16_LE -c 8 record.wav
arecord 8 通道录音

这里需要注意,不论使用 4-Mic 或 6-Mic 阵列,都需要录制 8 通道音频,在 8 通道中,前 4/6 通道为麦克风阵列对应的拾音器,第 7、8 通道是双声道功放的回采数据,4 通道录制时,第 5、6 通道为空,仅包含白噪声。

播放双声道音频

保证播放节点存在,可以使用 aplay 查看播放音频,简单描述 aplay 命令播放用法:

aplay [选项] [输入文件路径]
-D 通路:CARD,DEVICE 通路可选 hw(直通硬件) plughw(自动格式转换) default(默认值)
-d 播放时长(秒)
-f 采样格式 可选 S16_LE S24_LE S32_LE 等
-r 采样率 常用 8000/16000/22050/44100/48000/96000 等
-c 通道数量

假设 ls -l /dev/snd 查看到的声卡通道号为 0,播放设备号为 0,播放音频文件:

aplay -D hw:0,0 record.wav

RDK 音频套件的功放为双声道,播放多通道音频时,aplay 工具只播放前 2 条通道。

如果声音过小,可以使用以下命令调整 RDK 音频套件的 DAC 功放音量,建议设置为 75% 测试。

amixer -c 0 sset DAC 10%+    # 调大
amixer -c 0 sset DAC 10%- # 调小
amixer -c 0 sget DAC # 查看当前值
amixer -c 0 sset DAC 80% # 设置百分比

全双工录制播放

RDK 音频套件的录音与播放节点均为独立通道,支持全双工录制播放。

启动 2 个终端,在第一个终端中播放较长的音频:

aplay -D hw:0,0 demo.wav

将扬声器靠近麦克风阵列,在第二个终端中输入以下命令,录制 5 秒音频:

arecord -D hw:0,1 -d 5 -r 16000 -f S16_LE -c 8 record.wav

在录制到的音频中可以听到播放的音频内容,验证全双工录播有效。

除此之外,也可以编写程序,在两个线程或两个程序中同时使用录音和播放设备,同样可以进行全双工录制与播放。

需要注意的是,拨码开关 2 设为 off 时,使用 1 路 I2S 进行全双工录播,目前 RDK X5 和 RDK S100/S100P 仅支持该模式,对于 RDK S600,可以将拨码开关 2 设为 on,以使用 2 路独立 I2S 分别进行录制与播放。

I2S 通道数为 1 时,播放与录制的采样率和采样格式必须一致,因为录制与播放数据通道使用相同的位时钟。

下一步指引

至此,RDK 音频套件基本功能已体验完成。

接下来:

  • 结构安装说明 中详细说明了 RDK 音频套件的结构参数与安装注意事项,建议结构开发者阅读;
  • 硬件接口说明 中详细介绍了 RDK 音频套件各接口的硬件描述,建议硬件开发者阅读;
  • 使用本产品结合 RDK 开发板进行音频应用开发,见 USB 音频设备使用指南
  • 基于 RDK 音频套件使用音频前处理、DOA、VAD、语音唤醒、自定义命令词、ASR、TTS 等算法,见 智能语音盒子