C++ WebRtc应用中的独立AGC(自动增益控制)
我正在尝试使用WebRtc库创建一个独立的AGC。(输入-wav文件,输出-调整增益的wav文件)。但是现在我在这个问题上遇到了一些问题 我试图使用C++ WebRtc应用中的独立AGC(自动增益控制),c++,audio,controls,webrtc,C++,Audio,Controls,Webrtc,我正在尝试使用WebRtc库创建一个独立的AGC。(输入-wav文件,输出-调整增益的wav文件)。但是现在我在这个问题上遇到了一些问题 我试图使用gain\u control.h文件中声明的函数。当我使用WebRtcAgc_过程(..)时,我获得了适用于整个信号的恒定增益,但不是依赖于输入信号幅度的非线性增益 也许我应该使用其他功能来达到我的目的?如何通过WebRTC库实现AGC?AGC的主要目的是提供建议的系统话筒音量,用户可通过操作系统进行设置。如果您想应用纯数字增益,可以在两种模式中的一
gain\u control.h
文件中声明的函数。当我使用WebRtcAgc_过程(..)时,我获得了适用于整个信号的恒定增益,但不是依赖于输入信号幅度的非线性增益
也许我应该使用其他功能来达到我的目的?如何通过WebRTC库实现AGC?AGC的主要目的是提供建议的系统话筒音量,用户可通过操作系统进行设置。如果您想应用纯数字增益,可以在两种模式中的一种模式下进行配置(从
模块/audio\u processing/include/audio\u processing.h
,但增益控制.h
具有类似模式):
您可以通过WebRtcAgc_Init()
进行设置,但除非您需要避免开销,否则我建议您只使用AudioProcessing类 参见
增益调整仅在0135*的有效期内进行
演讲输入语音长度可以是10ms或0136*20ms,并且
输出的长度相同
快速概述webrtcage\u流程
int WebRtcAgc_Process(void* agcInst,
const WebRtc_Word16* inNear,
const WebRtc_Word16* inNear_H,
WebRtc_Word16 samples,
WebRtc_Word16* out,
WebRtc_Word16* out_H,
WebRtc_Word32 inMicLevel,
WebRtc_Word32* outMicLevel,
WebRtc_Word16 echo,
WebRtc_UWord8* saturationWarning);
int WebRtcAgc_Process(void* agcInst,
const WebRtc_Word16* inNear,
const WebRtc_Word16* inNear_H,
WebRtc_Word16 samples,
WebRtc_Word16* out,
WebRtc_Word16* out_H,
WebRtc_Word32 inMicLevel,
WebRtc_Word32* outMicLevel,
WebRtc_Word16 echo,
WebRtc_UWord8* saturationWarning);