我正在测试WebRTC AGC,但我必须做错事,因为信号只是通过未经修改的。
以下是我创建和初始化AGC的方法:
agcConfig.compressionGaindB = 9;
agcConfig.limiterEnable = 1;
agcConfig.targetLevelDbfs = 9; /* 9dB below full scale */
WebRtcAgc_Create(&agc);
WebRtcAgc_Init(agc, minLevel, maxLevel, kAgcModeFixedDigital, 8000);
WebRtcAgc_set_config(agc, agcConfig);
然后对于每个10ms样本块,我执行以下操作:
WebRtcAgc_Process(agc, micData, NULL, 80, micData, NULL, micLevelIn, &micLevelOut, 0, &saturationWarning);
micLevelIn
设置为0.
有人可以告诉我我做错了什么吗?
我预计全音域正弦音将衰减到目标DBFS水平;并且将放大低电平正弦音(即-30dBFS)以匹配目标DBFS电平。但那不是我所看到的。
答案 0 :(得分:2)
以下是用于Webrtc_AGC的操作序列:
WebRtcAgc_Create
WebRtcAgc_Init
WebRtcAgc_set_config
capture_level = 0
kAgcModeAdaptiveDigital
,请调用VirtualMic:WebRtcAgc_VirtualMic
capture_level
:WebRtcAgc_Process
WebRtcAgc_Process
返回的捕获级别,并将其设置为capture_level
audio buffers
WebRtcAgc_Free
检查webrtc / modules / audio_processing / gain_control_impl.cc以供参考。
答案 1 :(得分:0)
试试这个:
agcConfig.compressionGaindB = 9; agcConfig.limiterEnable = 1; agcConfig.targetLevelDbfs = 9; /* 9dB below full scale */ WebRtcAgc_Create(&agc); WebRtcAgc_Init(&agc, minLevel, maxLevel, kAgcModeFixedDigital, 8000); WebRtcAgc_set_config(&agc, &agcConfig);