⚠️ 重要提示:本教程适用于 ARCS-MINI 2.1 及以上版本,请确保您的设备已更新到最新版本。
Audacity 是一款免费、开源的音频录制和编辑软件,用于实时查看音频波形。
windows x64 版本安装包: audacity-win-3.7.7-64bit.exe
其他系统版本可在官网下载,官方下载地址:https://www.audacityteam.org/download/

在 Audacity 中进行以下设置:
选择音频主机:在工具栏中选择 Windows WASAPI(这是关键,其他接口可能无法正常工作)
选择录音设备:
配置录音参数:

ARCS-MINI 输出 4 个音频通道,每个通道对应不同的音频流:
| 通道 | 名称 | 说明 |
|---|---|---|
| 通道 1 | 麦克风输入 | 原始麦克风采集的音频信号 |
| 通道 2 | 硬回采 (Hardware AEC) | 硬件回采的扬声器输出信号 |
| 通道 3 | 软回采 (Software AEC) | 软件回采的扬声器输出信号 |
| 通道 4 | 算法输出 | 经过降噪、AEC 等算法处理后的最终音频 |

使用 ADB 连接设备后,通过 shell 命令调整增益:
adb shell gain <command> [value]
| 命令 | 说明 | 增益范围 (dB) |
|---|---|---|
set_mic |
设置麦克风模拟增益 | -12 到 36 dB,步进 2 dB |
set_mic_d |
设置麦克风数字增益 | -83 到 42 dB,步进 1 dB |
set_aec |
设置回采麦克风模拟增益 | -12 到 36 dB,步进 2 dB |
set_aec_d |
设置回采麦克风数字增益 | -83 到 42 dB,步进 1 dB |
set_spk |
设置扬声器模拟增益 | -24 到 6 dB,步进 2 dB |
set_spk_d |
设置扬声器数字增益 | -113 到 30 dB,步进 1 dB |
print |
打印当前所有增益设置 | - |
help |
显示帮助信息 | - |
# 设置麦克风模拟增益为 20 dB
adb shell gain set_mic 20
# 设置扬声器数字增益为 -10 dB
adb shell gain set_spk_d -10
# 查看当前所有增益设置
adb shell gain print
⚠️ 在调试增益前,必须将设备音量设置为 100%!
对小聆说:"把音量调到最大" 或 "音量调到一百"
adb shell kv set int user.volume 100
原因:系统音量会影响扬声器输出幅度,必须在最大音量下调试增益才能获得准确结果。
扬声器增益 → 回采增益 → 麦克风增益
扬声器增益控制设备播放声音的幅度,影响用户的听觉体验和回采信号质量。
步骤 1:初始设置
# 先设置为中等增益
adb shell gain set_spk 0 # 模拟增益 0 dB
adb shell gain set_spk_d 0 # 数字增益 0 dB
步骤 2:播放测试音频
让设备播放一段测试音频(如音乐或语音),同时观察 Audacity 的 通道 2(硬回采) 和 通道 3(软回采)。
步骤 3:观察波形
正常扬声器回采波形示例

削波波形示例(需要降低增益)

步骤 4:微调增益
| 现象 | 解决方法 |
|---|---|
| 波形削波严重 | 降低模拟增益(set_spk),每次降低 2-4 dB |
| 波形幅度过小 | 提高模拟增益(set_spk),每次提高 2 dB |
| 削波但模拟增益已很低 | 降低数字增益(set_spk_d),每次降低 5-10 dB |
| 需要精细调整 | 使用数字增益进行微调,步进 1 dB |
回采增益控制从扬声器到 AEC 算法的信号幅度,是避免"自说自话"的关键。
步骤 1:初始设置
adb shell gain set_aec 0 # 模拟增益 0 dB
adb shell gain set_aec_d 0 # 数字增益 0 dB
步骤 2:设置扬声器增益
确保扬声器增益已按 4.2 节调整完成。
步骤 3:观察回采波形
在设备播放音频时,观察 通道 2(硬回采) 和 通道 3(软回采) 的波形。
步骤 4:验证麦克风输入
在设备播放音频的同时,对着麦克风说话,观察 通道 1(麦克风) 和 通道 4(算法输出):
正常 AEC 效果(通道 4 播放时无信号)

AEC 失效示例(通道 4 有明显信号,需要调整回采增益)

步骤 5:调整回采增益
| 现象 | 解决方法 |
|---|---|
| 通道 4 在播放时有信号 | 提高回采增益(set_aec),让 AEC 算法获得更强的参考信号 |
| 回采波形削波 | 降低回采增益(set_aec 或 set_aec_d) |
| AEC 效果不佳 | 尝试提高数字增益(set_aec_d)进行微调 |
麦克风增益控制输入语音的幅度,影响语音识别的效果。
步骤 1:初始设置
adb shell gain set_mic 0 # 模拟增益 0 dB
adb shell gain set_mic_d 0 # 数字增益 0 dB
步骤 2:在安静环境测试
用正常音量(约 60-70 dB SPL,正常说话音量)对着麦克风说话,观察 通道 1(麦克风) 波形。
步骤 3:观察波形
正常麦克风输入波形示例

麦克风增益过高(削波)

截图预留位置:麦克风增益过低(信号微弱)

步骤 4:调整增益
| 现象 | 解决方法 |
|---|---|
| 波形削波 | 降低增益(set_mic),每次降低 2-4 dB |
| 波形幅度过小 | 提高增益(set_mic),每次提高 2 dB |
| 需要精细调整 | 使用数字增益(set_mic_d),步进 1 dB |
| 环境噪声较大 | 适当提高增益,但注意不要削波 |
步骤 5:验证算法输出
说话时观察 通道 4(算法输出):
算法处理后波形对比(通道 1 vs 通道 4)

削波表现为波形顶部或底部被"削平",呈现矩形特征。
削波波形示意图

危害:
解决方法:
现象:设备播放音频时,语音识别系统误将播放内容识别为语音命令。
波形特征:设备播放时,通道 4 有明显的输出信号。
原因:
解决方法:
set_aec 和 set_aec_d)问题:波形出现削波,音频失真。
解决方案:
adb shell gain print问题:播放音量或录音音量过小。
解决方案:
adb shell kv get int user.volumeadb shell gain set_spk <value>adb shell gain set_spk_d <value>问题:设备播放音频时触发语音识别。
解决方案:
adb shell gain set_aec 15 和 adb shell gain set_aec_d 5问题:录音噪声过大,影响语音识别。
解决方案:
问题:调整增益后没有变化。
解决方案:
adb shell gain printadb devices# 1. 设置设备音量为 100%
adb shell kv set int user.volume 100
# 2. 查看当前增益设置
adb shell gain print
# 3. 配置扬声器增益(适中音量)
adb shell gain set_spk 0
adb shell gain set_spk_d -5
# 4. 配置回采增益(标准 AEC)
adb shell gain set_aec 10
adb shell gain set_aec_d 5
# 5. 配置麦克风增益(标准输入)
adb shell gain set_mic 20
adb shell gain set_mic_d 0
# 6. 开始 Audacity 录音,播放测试音频并说话测试
# 7. 根据波形微调增益
# 例如:如果麦克风削波
adb shell gain set_mic 18
# 8. 保存最终配置
adb shell gain print > gain_config.txt
| 快捷键 | 功能 |
|---|---|
| Space | 播放/暂停 |
| R | 开始录音 |
| Shift + R | 定时录音 |
| Ctrl + Z | 撤销 |
| Ctrl + Shift + E | 导出音频 |
| Ctrl + Shift + L | 导出多通道音频 |
| 术语 | 说明 |
|---|---|
| 增益 (Gain) | 信号放大的倍数,用 dB 表示 |
| 模拟增益 | 在 ADC 转换前的模拟信号放大 |
| 数字增益 | 在 ADC 转换后的数字信号放大 |
| 削波 (Clipping) | 信号幅度超过最大值被截断,造成失真 |
| AEC (Acoustic Echo Cancellation) | 声学回声消除,抑制扬声器声音被麦克风拾取 |
| 信噪比 (SNR) | 有效信号与噪声的比值,越高越好 |
| 硬回采 | 通过硬件电路采集的扬声器输出信号 |
| 软回采 | 通过软件路径采集的扬声器输出信号 |
| dB (分贝) | 对数单位,用于表示信号幅度 |
| WASAPI | Windows Audio Session API,Windows 音频接口 |
通过 ADB 命令调整的增益值在设备重启后会恢复为默认值。如果您希望设备上电后自动使用调试好的增益配置,需要将增益值写入项目配置文件并重新编译固件。
增益配置文件位于项目根目录:
apps/arcs-mini/prj.conf
在配置文件中找到以下配置项(通常在文件末尾):
CONFIG_AUDIO_DEFAULT_MIC_GAIN_A_DB=36
CONFIG_AUDIO_DEFAULT_MIC_GAIN_D_DB=0
CONFIG_AUDIO_DEFAULT_REF_GAIN_A_DB=22
CONFIG_AUDIO_DEFAULT_REF_GAIN_D_DB=0
CONFIG_AUDIO_DEFAULT_SPK_GAIN_A_DB=0
CONFIG_AUDIO_DEFAULT_SPK_GAIN_D_DB=-19
配置项对应关系:
| 配置项 | 说明 | 对应 ADB 命令 |
|---|---|---|
CONFIG_AUDIO_DEFAULT_MIC_GAIN_A_DB |
麦克风模拟增益默认值 | gain set_mic |
CONFIG_AUDIO_DEFAULT_MIC_GAIN_D_DB |
麦克风数字增益默认值 | gain set_mic_d |
CONFIG_AUDIO_DEFAULT_REF_GAIN_A_DB |
回采模拟增益默认值 | gain set_aec |
CONFIG_AUDIO_DEFAULT_REF_GAIN_D_DB |
回采数字增益默认值 | gain set_aec_d |
CONFIG_AUDIO_DEFAULT_SPK_GAIN_A_DB |
扬声器模拟增益默认值 | gain set_spk |
CONFIG_AUDIO_DEFAULT_SPK_GAIN_D_DB |
扬声器数字增益默认值 | gain set_spk_d |
按照本教程第 4 节的方法,使用 ADB 命令调整并测试,找到最佳增益值。
adb shell gain print
输出示例:
Microphone: analog=20 dB, digital=0 dB
AEC Ref: analog=10 dB, digital=5 dB
Speaker: analog=0 dB, digital=-5 dB
打开 apps/arcs-mini/prj.conf 文件,找到增益配置项,修改为调试得到的最佳值:
# 根据测试结果修改以下配置
CONFIG_AUDIO_DEFAULT_MIC_GAIN_A_DB=20
CONFIG_AUDIO_DEFAULT_MIC_GAIN_D_DB=0
CONFIG_AUDIO_DEFAULT_REF_GAIN_A_DB=10
CONFIG_AUDIO_DEFAULT_REF_GAIN_D_DB=5
CONFIG_AUDIO_DEFAULT_SPK_GAIN_A_DB=0
CONFIG_AUDIO_DEFAULT_SPK_GAIN_D_DB=-5
./build.sh -S apps/arcs-mini
./res/arcs-mini/adb_download.sh
烧录完成后,设备上电,验证增益配置是否生效:
# 连接设备
adb devices
# 查看增益设置
adb shell gain print
输出应显示您配置的默认值。
| 方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| ADB 命令 | 开发调试、临时测试 | 快速、可反复调整 | 重启后失效 |
| 配置文件 | 批量生产、稳定版本 | 永久生效、无需手动设置 | 需要重新编译烧录 |
建议工作流程:
prj.conf