gpt4 book ai didi

c++ - WebRtc 应用程序中的独立 AGC(自动增益控制)

转载 作者:行者123 更新时间:2023-11-30 03:00:12 31 4
gpt4 key购买 nike

我正在尝试使用 WebRtc 库创建一个独立的 AGC。 (输入 - wav 文件,输出 - 调整增益的 wav 文件)。但是此时我对这个问题有些疑惑。

我正在尝试使用在 gain_control.h 文件中声明的函数。当我使用 WebRtcAgc_Process(....) 时,我获得了恒定增益,它适用于整个信号,但不是取决于输入信号幅度的非线性增益。

也许我应该为我的目的使用其他功能?如何通过 WebRTC 库实现 AGC?

最佳答案

AGC 的主要目的是提供推荐的系统麦克风音量,用户应通过操作系统设置该音量。如果您想应用纯数字增益,可以将其配置为两种模式之一(来自 modules/audio_processing/include/audio_processing.h,但 gain_control.h有类似的模式):

// Adaptive mode intended for situations in which an analog volume control
// is unavailable. It operates in a similar fashion to the adaptive analog
// mode, but with scaling instead applied in the digital domain. As with
// the analog mode, it additionally uses a digital compression stage.
kAdaptiveDigital,

// Fixed mode which enables only the digital compression stage also used by
// the two adaptive modes.
//
// It is distinguished from the adaptive modes by considering only a
// short time-window of the input signal. It applies a fixed gain through
// most of the input level range, and compresses (gradually reduces gain
// with increasing level) the input signal at higher levels. This mode is
// preferred on embedded devices where the capture signal level is
// predictable, so that a known gain can be applied.
kFixedDigital

您可以通过 WebRtcAgc_Init() 设置这些,但除非您需要避免开销,否则我建议只使用 AudioProcessing 类。

关于c++ - WebRtc 应用程序中的独立 AGC(自动增益控制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334937/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com