resolucion registrados listado habilitados conservadores ascensores agc c++ signal-processing webrtc

c++ - registrados - listado de conservadores de ascensores habilitados



WebRTC AGC(control automático de ganancia) (2)

Aquí está la secuencia de operaciones que se utilizará para Webrtc_AGC:

  1. Crear AGC: WebRtcAgc_Create
  2. Inicializar AGC: WebRtcAgc_Init
  3. Establecer config: WebRtcAgc_set_config
  4. Inicializar capture_level = 0
  5. Para kAgcModeAdaptiveDigital , invoque WebRtcAgc_VirtualMic : WebRtcAgc_VirtualMic
  6. Búfer de proceso con nivel de capture_level : WebRtcAgc_Process
  7. Obtenga el nivel de captura de salida devuelto por WebRtcAgc_Process y WebRtcAgc_Process en capture_level
  8. Repita del 5 al 7 para los audio buffers
  9. Destruye el AGC: WebRtcAgc_Free

Consulte webrtc / modules / audio_processing / gain_control_impl.cc para referencia.

Estoy probando el WebRTC AGC pero debo estar haciendo algo mal porque la señal simplemente pasa sin modificaciones.

Así es como creo e inicializo el 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);

Y luego, para cada bloque de muestra de 10 ms, hago lo siguiente:

WebRtcAgc_Process(agc, micData, NULL, 80, micData, NULL, micLevelIn, &micLevelOut, 0, &saturationWarning);

Donde micLevelIn se establece en 0.

¿Alguien puede decirme qué estoy haciendo mal?

Esperaba que un tono sinusoidal a escala completa se atenuara al nivel de DBFS objetivo; y un tono sinusoidal de bajo nivel (es decir, -30dBFS) se amplificaría para que coincida con el nivel objetivo de DBFS. Pero eso no es lo que estoy viendo.


Prueba esto:

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);