Skip to content

采集与播放链路

采集链路把空气中的声音变成数字音频,播放链路把数字音频变回声音。语音算法依赖这两条链路提供稳定、同步、低延迟的数据。

采集链路

典型麦克风采集可以理解成“把空气振动翻译成一串数字”:

阶段形象理解关键风险
声波进入声孔声音先经过外壳、网布和导声腔堵孔、漏音、频响改变
麦克风转换把声压变化变成电信号灵敏度差异、底噪、饱和
模拟或数字前端放大、滤波或输出 PDM/I2S增益不当、时钟错误
Codec/SoC 接收把信号放进系统音频通道声道顺序、采样率、同步
音频缓冲按一帧一帧交给算法丢帧、延迟、抖动

麦克风类型

类型特点使用场景
ECM驻极体麦克风,成本低,模拟输出老设备、低成本采集
MEMS 模拟麦体积小、一致性较好,模拟输出手机、耳机、IoT
MEMS 数字麦PDM 或 I2S 输出,抗模拟噪声能力更好阵列、紧凑型设备

数字麦减少了模拟走线受干扰的问题,但对时钟、布线、PDM 解码和多麦同步要求更高。

增益设计

采集增益要同时满足两件事:远距离说话不能太小,近距离大声说话不能削顶。

检查方法:

  1. 在目标距离播放或说出标准音量语音。
  2. 观察 PCM 峰值和 RMS。
  3. 用最大声压场景测试是否削顶。
  4. 用静音场景测试底噪。
  5. 记录模拟增益、数字增益和 AGC 开关状态。

录音峰值长期低于 -30 dBFS,可能导致有效位数不足;峰值经常接近 0 dBFS,可能存在饱和或削顶。

播放链路

播放链路是采集链路的反方向:系统先准备数字音频,经过混音、数模转换、功放和扬声器,最后重新变成空气里的声波。

播放链路的关键不是“有声音”,而是音量、失真、延迟和回声路径是否可控。

环节关注点
Mixer多路音频混音、音量策略、提示音优先级
DAC采样率、动态范围、底噪
功放输出功率、削顶、保护策略
扬声器频响、失真、腔体匹配
系统音量用户音量、媒体音量、通话音量是否统一管理

接口与数据格式

接口用途注意点
I2SCodec 与 SoC 之间传 PCM主从时钟、左右声道顺序、位宽
PDM数字麦常用输出时钟频率、抽取滤波、多麦同步
TDM多声道音频传输Slot 配置、通道映射
USB Audio外接声卡、会议设备采样率协商、延迟、系统兼容
Bluetooth Audio耳机和无线音频编码延迟、码率、双向通话限制

多麦阵列最容易出错的是声道顺序。算法配置中的 mic0/mic1/mic2 必须和实际空间位置一致,否则方向估计会整体偏移。

Buffer 与延迟

音频系统通常按帧处理。Buffer 太小,实时性好但容易 underrun 或 overrun;Buffer 太大,稳定但延迟上升。

延迟来源:

  • ADC/DAC 和 Codec 内部滤波。
  • DMA Buffer。
  • 操作系统音频栈。
  • 算法帧长和 look-ahead。
  • 网络传输和云端推理。
  • TTS 合成首包时间。

语音交互里,唤醒和 ASR 越靠前越需要低延迟;播放和 TTS 可以做缓存,但不能让首句反馈明显滞后。

采集播放同步

AEC 依赖播放参考信号和麦克风采集信号对齐。如果播放参考信号延迟不准,回声消除会明显下降。

需要确认:

  • 参考信号取自系统播放链路的哪个位置。
  • 参考信号是否包含实际播放的所有音频。
  • 播放参考与麦克风信号采样率是否一致。
  • 两条链路是否存在时钟漂移。
  • 蓝牙、网络播放或系统混音是否引入额外延迟。

检查思路

采集播放问题先不要直接调算法,先把链路拆开确认:

检查点判断目标
设备是否选对录音和播放是否来自目标麦克风、目标扬声器
格式是否一致采样率、位深、声道数是否和算法配置一致
音量是否合理近处大声不削顶,远处小声仍有足够幅度
声道是否正确多麦顺序是否和空间位置一致
参考是否完整AEC 能否拿到所有实际播放的声音
延迟是否稳定采集和播放之间是否存在漂移或突发抖动

常见故障

现象可能原因处理
录音全 0设备节点错、Codec 未上电、通道未打开查声卡、mixer、驱动日志
录音只有噪声时钟错误、PDM 配置错误、模拟地噪查采样率、时钟、布线
左右声道反了I2S/TDM slot 配置或声道映射错误用分路测试音确认
播放卡顿Buffer 太小、CPU 抢占、驱动 underrun增加 Buffer、查调度
AEC 效果差参考信号缺失或延迟漂移对齐参考和麦克风录音
大音量回声重扬声器非线性、功放削顶、结构漏音强限制音量、优化结构和 AEC

总结

采集与播放链路是语音系统的地基。先保证设备节点、格式、声道、增益、同步和延迟正确,再进入算法调参。任何声学算法上线前,都应保留原始多路录音和播放参考,方便复现和回放。

别急,先让缓存热一下。