如何在为音频会议混合音频时自动增益控制 (AGC)

Posted

技术标签:

【中文标题】如何在为音频会议混合音频时自动增益控制 (AGC)【英文标题】:How to Auto Gain Control (AGC) while mixing audio for audio conference 【发布时间】:2021-12-27 18:00:45 【问题描述】:

我正在以 16 位小端、16khz 和帧持续时间为 60 毫秒捕获音频。

现在在为音频会议进行混音时,我可以将每个参与者的样本(音频短数组)除以参与者数量,然后全部相加(以避免剪辑)。但由于语音级别不同,产生的声音低且不流畅。如何在此处应用自动增益控制以首先将参与者的音频带到目标水平,然后在混合后应用计算出的自适应增益,使声音变得流畅且不会被削波?

【问题讨论】:

【参考方案1】:

需要将信号转换为 PCM 值(例如,带符号的 floats,范围从 -1 到 1 或带符号的 shorts)。作为 PCM,您可以使用某种 RMS(均方根)算法来确定信号的功率电平。然后可以将 PCM 值乘以音量因子以获得所需的音量。然后需要将 PCM 转换回字节流。这只是一个基本的路线图,但希望可以为您指明大方向。 IDK 如果有可用于处理此问题的库。这个问题已经出现了多次,所以似乎有可能。

【讨论】:

以上是关于如何在为音频会议混合音频时自动增益控制 (AGC)的主要内容,如果未能解决你的问题,请参考以下文章

详解 WebRTC 高音质低延时的背后—AGC 自动增益控制

如何在 HTC EVO(超音速)上禁用 AGC?

reSipWebRTC

WebRTC音频采样算法

我现在做视频会议系统,当主会场开启麦克说话时,各分会场音响就发出杂音,怎么消除这杂音?帮帮我..

AliAGC 自动增益控制算法:解决复杂场景下的音量问题