连麦直播中,最破坏体验的不是画面卡顿,而是连麦方听到自己的回声。声音从主播设备外放出来,被麦克风重新拾取,经由网络传回连麦方的扬声器:这个回声环路不切断,连麦就等于不能用。AEC(回声消除)、ANS(降噪)、AGC(自动增益控制)三项技术共同决定了连麦的音频质量,但很多开发者在集成时只关注了功能开关,忽略了不同硬件场景下的参数差异。本文从这三项技术的落地角度,给出每个环节的配置思路和注意事项。

AEC 回声消除:连麦的底线功能
回声消除的原理并不复杂:系统拿到远端参考信号(连麦方的音频),与本地麦克风采集的信号做自适应滤波比对,把参考信号相关的成分从采集信号中减去。但在真实设备上,这个减法能不能做干净,取决于三件事:扬声器和麦克风的声学隔离程度、回声路径的延迟稳定性、以及参考信号与采集信号之间的时间对齐精度。
不同硬件场景下,AEC 的表现差异非常大。
手机外放模式是最棘手的场景。扬声器和麦克风距离只有几厘米,外放音量稍大就会让麦克风拾取到高强度回声信号,而且外放扬声器本身会引入非线性失真,自适应滤波器需要额外处理谐波成分。这种情况下,AEC 的线性处理部分容易饱和,需要启用非线性处理(NLP)做二次抑制,但 NLP 介入过深会导致连麦方声音被切段,出现”丢字”现象。
耳机模式是最轻松的场景,扬声器在耳道内,回声路径几乎被物理隔离,AEC 只需要做基本的线性滤波就能达到可用效果。
蓝牙耳机介于两者之间:蓝牙编解码(SBC、AAC)会引入 100-200ms 的额外延迟,回声路径的延迟不再稳定,AEC 算法需要用更长的滤波器尾长来覆盖这段不确定延迟,同时对参考信号做抖动缓冲对齐。
对于多设备并存的连麦场景,逐个设备调试 AEC 参数是成本极高的做法。以即构的ZEGO Express SDK 为例,它针对外放、耳机、蓝牙三种场景做了内置的 AEC 参数适配,开发者在初始化时选择对应的场景模式,SDK 会自动切换线性滤波器长度、NLP 深度和双讲检测灵敏度,不需要人工逐设备调整。
ANS 降噪:不是越安静越好
降噪的目标是去除环境噪音,但降噪本身是对语音质量有损伤的操作。算法越激进,语音中的高频细节丢失越多,听起来就越不自然——所谓”降噪味”。连麦场景的特殊性在于:主播和连麦方处于不同的物理环境,如果主播侧降噪开得太强,连麦方听到的声音会发闷、齿音丢失;如果连麦方侧降噪不够,主播这边会听到对方的键盘声、空调声或交通噪音。
这里需要区分两种降噪策略。稳态降噪针对持续稳定的背景噪音(空调声、风扇声),这类噪音频谱固定,算法容易做减法,对语音损伤小。瞬态降噪针对突发噪音(键盘敲击、关门声、餐具碰撞),这类噪音在时域上尖锐且短暂,降噪算法很难在不切到语音的前提下完全去除。ZEGO Express SDK 在场景化降噪中做了稳态和瞬态的分离处理,比如对键盘敲击声做专门的瞬态抑制模块,在不影响语音连续性的前提下做针对性过滤。
降噪强度的选择应该与使用场景匹配:单人直播环境(安静房间)建议用轻度降噪或关闭降噪,保留语音自然度;户外或公共场所才需要开启中度以上的降噪。不要所有场景统一一个降噪档位。
AGC 自动增益控制:音量平衡不能靠吼
连麦场景中,说话音量的差异是常态。主播对着麦克风正常说话可能是 -12dB,连麦方离麦克风远一些就只有 -24dB,或者反过来连麦方声音过大导致破音。AGC 的作用就是把这种动态范围压缩到目标区间内,让双方听到的音量相对一致。
AGC 有两个关键参数:目标电平和增益变化速率。目标电平决定了输出音量期望达到的 RMS 值,推荐设置在 -16dBFS 到 -12dBFS 之间。偏低会导致音量不足,偏高会逼近削波阈值留不下余量。增益变化速率决定了 AGC 对音量变化的响应速度:速率太快会产生”呼吸效应”(背景噪音被一起抬升又压下),速率太慢则在说话人切换或说话距离变化时不能及时跟上。
连麦场景下,建议将增益变化速率设置为中等偏低(attack time 50-100ms,release time 200-400ms),让 AGC 既能响应音量突变又不会在语句间隙频繁调整。
音频路径参数配置参考
以下是一组适用于大多数连麦场景的音频参数配置基准值。这些值不是固定公式,实际取值受设备声学特性、使用环境和上行业务的影响,应作为初始配置参考。
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 采样率 | 48000 Hz | 连麦场景统一使用 48kHz,避免重采样引入额外延迟 |
| AEC 尾长 | 200-300ms(外放)/ 100ms(耳机)/ 400ms(蓝牙) | 外放需覆盖混响时间,蓝牙需覆盖编解码延迟 |
| AEC NLP 深度 | 中(外放)/ 低(耳机)/ 中高(蓝牙) | 耳机模式无需过强 NLP,蓝牙需补偿参考信号不确定性 |
| ANS 强度 | 轻度(安静环境)/ 中度(户外) | 开启瞬态降噪模块处理突发噪音 |
| AGC 目标电平 | -14dBFS | 给峰值保留 14dB 余量,避免削波 |
| AGC Attack/Release | 80ms / 300ms | 平衡响应速度和稳定性 |
需要特别提醒的一点:不要在连麦端额外叠加本地音频处理插件。很多直播客户端会叠加混响、变声或均衡器,这些效果器会破坏参考信号和麦克风采集信号之间的相关性,直接导致 AEC 无法收敛。所有的音频后处理应该放在 AEC 之后、编码之前的链路上。
连麦音频处理没有一键通用的配置,但有一条明确的底线:AEC 不过关,其他都是零。优先解决回声环路的切断,再调降噪和增益,这是投入产出比最高的路线。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/info/68869.html