Skip to main content

最小化回声和噪声

回声和噪声问题在 VoIP 系统中很常见。语音来自远端扬声器,并带有时间延迟地回传,造成感知问题。回声消除可减少通信过程中来自远端扬声器的回声。噪声抑制可减少来自麦克风通道的噪声。SMECNS 回声消除和噪声抑制(ECNS)算法提供平稳和非平稳噪声抑制以及回声消除。 声学回声是指由于设备扬声器与麦克风之间的声学路径(声学耦合)而产生的回声。这对免提和电话会议应用非常重要。 下图展示了声学回声路径,以及声学回声如何在扬声器和麦克风之间产生。
噪声和声学回声

噪声和声学回声

近端语音信号远端语音信号近端讲话者环境噪声声学回声路径声学回声近端语音远端语音 噪声和声学回声
  • 回声消除器 – 一种自适应滤波器,可自行调整系数以消除回声。每个回声都有一条回声路径,并由脉冲响应表征。回声消除器会适应网络回声路径,从而消除回声。
  • 噪声抑制 – 单麦克风回声消除和噪声抑制器(SMECNS)有助于在嘈杂环境中使用设备时抑制周围的平稳噪声。

为录音启用 SMECNS

录音时,SMECNS 通过抑制麦克风捕获的背景噪声来保持录音路径中的语音质量。 对于单麦克风录音,只能进行平稳噪声抑制。平稳噪声是指频率不随时间变化的噪声,例如道路噪声或白噪声。 下图展示了如何使用增益、SMECNS 和后处理模块去除外部噪声和回声,以输出清晰的语音。
用于录音的 SMECNS 软件模块

用于录音的 SMECNS 软件模块

用于录音的 SMECNS 软件模块 要在录音路径中启用 SMECNS:
  1. 使用 wpctl status 命令列出可用节点。
  2. 运行 wpctl set-default,将源节点设置为手持设备麦克风。
  3. 运行 pw-record 开始录音。以下示例以详细模式运行,并将录音保存到 /opt/test.wav

模拟 VoIP

要使用 PipeWire 模拟 VoIP:
请务必将 PCM 文件(<FileName>.wav)推送到 /opt/ 文件夹。

启用单流多设备播放

配置平台,使单个音频流同时在多个输出设备(例如内置扬声器和有线耳机)上渲染。在此模式下,音频会被复制,同一解码后的音频流会同时路由到多个活动的输出设备,确保所有选定端点的同步播放。
  1. 列出可用的音频节点。
wpctl status 输出,显示可用的 PAL sink 和 source 节点

wpctl status 输出,显示可用的 PAL sink 和 source 节点

  1. 设置默认节点。
    • 对于低延迟(Low Latency),选择带有 pal sink combined speaker and headset ll 的节点。
    • 对于深缓冲(Deep buffer),选择带有 pal sink combined speaker and headset db 的节点。
  2. 开始播放。

启用多流多设备播放

配置平台,使多个独立音频流同时在不同的输出设备(例如内置扬声器和有线耳机)上渲染。在此模式下,每个音频流均独立管理和路由,允许不同的流同时传送到各自的输出设备而互不干扰。这可实现诸如并行媒体播放以及跨多个端点的通知路由等用例。
  1. 列出可用的音频节点。
  2. 选择您希望多个流播放到的音频节点,并使用 --target 命令行选项指定这些节点名称。
  3. 开始低延迟播放。

使用 PipeWire 进行动态设备切换

在音频处于活动状态时,使用 wpctl 触发动态设备切换。
  1. 列出所有可用的音频节点。
  2. 在默认设备(例如扬声器)上开始播放。
  3. 在播放处于活动状态时,通过设置新的默认 sink 切换到其他输出设备(例如耳机)。
    WirePlumber 会重新路由该流,PAL 会无缝执行设备切换。

启用 DP 和 HDMI 音频

本节适用于 QCS6490(Kodiak)和 IQ-9075(Lemans)平台(config1)。

设置 QCS6490(rb3-gen2-core-kit)

  1. 将拓扑二进制文件复制到固件路径。
  2. 复制 HiFi 配置文件。
  3. 复制 HDMI 格式配置文件。
  4. 重启设备。启动时,确保 DP 已连接(typeC 转 HDMI 母头 + HDMI 转 HDMI 线缆)。
HDMI 和 DP 音频播放(QCS6490)

设置 IQ-9075(iq-9075-evk)

  1. 将拓扑二进制文件复制到固件路径。
  2. 复制 HiFi 配置文件。
  3. 重启设备。启动时,确保 DP 已连接(eDP 转 DP 线缆)。
DP 音频播放(IQ-9075)

后续步骤