Skip to main content

最大限度地减少回声和噪声

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

噪声与声学回声

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

为录音启用 SMECNS

录音时,SMECNS 通过抑制麦克风采集到的背景噪声来保持录音路径中的语音质量。 对于单麦克风录音,仅支持平稳噪声抑制。平稳噪声是指频率不随时间变化的噪声,例如道路噪声或白噪声。 下图显示了如何使用增益、SMECNS 和后处理模块来去除外部噪声和回声,从而输出清晰的语音。
SMECNS software block for recording

用于录音的 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 output showing available PAL sink and source nodes

wpctl status 输出显示了可用的 PAL 接收端和源节点

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

启用多流多设备播放

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

使用 PipeWire 进行动态设备切换

使用 wpctl 在音频活动时触发动态设备切换。
  1. 列出所有可用的音频节点。
  2. 在默认设备(例如扬声器)上开始播放。
  3. 在播放期间,通过设置新的默认接收端切换到不同的输出设备(例如耳机)。
    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)

后续步骤