Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ WebRtc应用中的独立AGC(自动增益控制)_C++_Audio_Controls_Webrtc - Fatal编程技术网

C++ WebRtc应用中的独立AGC(自动增益控制)

C++ WebRtc应用中的独立AGC(自动增益控制),c++,audio,controls,webrtc,C++,Audio,Controls,Webrtc,我正在尝试使用WebRtc库创建一个独立的AGC。(输入-wav文件,输出-调整增益的wav文件)。但是现在我在这个问题上遇到了一些问题 我试图使用gain\u control.h文件中声明的函数。当我使用WebRtcAgc_过程(..)时,我获得了适用于整个信号的恒定增益,但不是依赖于输入信号幅度的非线性增益 也许我应该使用其他功能来达到我的目的?如何通过WebRTC库实现AGC?AGC的主要目的是提供建议的系统话筒音量,用户可通过操作系统进行设置。如果您想应用纯数字增益,可以在两种模式中的一

我正在尝试使用WebRtc库创建一个独立的AGC。(输入-wav文件,输出-调整增益的wav文件)。但是现在我在这个问题上遇到了一些问题

我试图使用
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);