最小化回声和噪声
回声和噪声问题在 VoIP 系统中很常见。语音来自远端扬声器,并带有时间延迟地回传,造成感知问题。回声消除可减少通信过程中来自远端扬声器的回声。噪声抑制可减少来自麦克风通道的噪声。SMECNS 回声消除和噪声抑制(ECNS)算法提供平稳和非平稳噪声抑制以及回声消除。 声学回声是指由于设备扬声器与麦克风之间的声学路径(声学耦合)而产生的回声。这对免提和电话会议应用非常重要。 下图展示了声学回声路径,以及声学回声如何在扬声器和麦克风之间产生。噪声和声学回声
- 回声消除器 – 一种自适应滤波器,可自行调整系数以消除回声。每个回声都有一条回声路径,并由脉冲响应表征。回声消除器会适应网络回声路径,从而消除回声。
- 噪声抑制 – 单麦克风回声消除和噪声抑制器(SMECNS)有助于在嘈杂环境中使用设备时抑制周围的平稳噪声。
为录音启用 SMECNS
录音时,SMECNS 通过抑制麦克风捕获的背景噪声来保持录音路径中的语音质量。 对于单麦克风录音,只能进行平稳噪声抑制。平稳噪声是指频率不随时间变化的噪声,例如道路噪声或白噪声。 下图展示了如何使用增益、SMECNS 和后处理模块去除外部噪声和回声,以输出清晰的语音。用于录音的 SMECNS 软件模块
- 使用
wpctl status命令列出可用节点。 - 运行
wpctl set-default,将源节点设置为手持设备麦克风。 - 运行
pw-record开始录音。以下示例以详细模式运行,并将录音保存到/opt/test.wav。
模拟 VoIP
要使用 PipeWire 模拟 VoIP:请务必将 PCM 文件(
<FileName>.wav)推送到 /opt/ 文件夹。启用单流多设备播放
配置平台,使单个音频流同时在多个输出设备(例如内置扬声器和有线耳机)上渲染。在此模式下,音频会被复制,同一解码后的音频流会同时路由到多个活动的输出设备,确保所有选定端点的同步播放。-
列出可用的音频节点。

wpctl status 输出,显示可用的 PAL sink 和 source 节点
-
设置默认节点。
- 对于低延迟(Low Latency),选择带有
pal sink combined speaker and headset ll的节点。 - 对于深缓冲(Deep buffer),选择带有
pal sink combined speaker and headset db的节点。
- 对于低延迟(Low Latency),选择带有
-
开始播放。
启用多流多设备播放
配置平台,使多个独立音频流同时在不同的输出设备(例如内置扬声器和有线耳机)上渲染。在此模式下,每个音频流均独立管理和路由,允许不同的流同时传送到各自的输出设备而互不干扰。这可实现诸如并行媒体播放以及跨多个端点的通知路由等用例。-
列出可用的音频节点。
-
选择您希望多个流播放到的音频节点,并使用
--target命令行选项指定这些节点名称。 -
开始低延迟播放。
使用 PipeWire 进行动态设备切换
在音频处于活动状态时,使用wpctl 触发动态设备切换。
-
列出所有可用的音频节点。
-
在默认设备(例如扬声器)上开始播放。
-
在播放处于活动状态时,通过设置新的默认 sink 切换到其他输出设备(例如耳机)。
WirePlumber 会重新路由该流,PAL 会无缝执行设备切换。
启用 DP 和 HDMI 音频
本节适用于 QCS6490(Kodiak)和 IQ-9075(Lemans)平台(config1)。设置 QCS6490(rb3-gen2-core-kit)
-
将拓扑二进制文件复制到固件路径。
-
复制 HiFi 配置文件。
-
复制 HDMI 格式配置文件。
-
重启设备。启动时,确保 DP 已连接(typeC 转 HDMI 母头 + HDMI 转 HDMI 线缆)。
设置 IQ-9075(iq-9075-evk)
-
将拓扑二进制文件复制到固件路径。
-
复制 HiFi 配置文件。
-
重启设备。启动时,确保 DP 已连接(eDP 转 DP 线缆)。

