Я тестирую AGC WebRTC, но я должен делать что-то неправильно, потому что сигнал просто проходит через немодифицированный.
Вот как я создаю и инициализирую АРУ:
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);
И затем для каждого блока 10 мс я делаю следующее:
WebRtcAgc_Process(agc, micData, NULL, 80, micData, NULL, micLevelIn, &micLevelOut, 0, &saturationWarning);
Где micLevelIn
установлено значение 0.
Может кто-нибудь сказать мне, что я делаю неправильно?
Я ожидал, что полномасштабный синус-тон будет ослаблен до целевого уровня DBFS; и низкий синусовый тон (т.е. -30dBFS) будет усилен для соответствия целевому уровню DBFS. Но это не то, что я вижу.