gpt4 book ai didi

c++ - WebRTC AGC(自动增益控制)

转载 作者:IT老高 更新时间:2023-10-28 12:14:34 43 4
gpt4 key购买 nike

我正在测试 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);

然后对于每个 10 毫秒的样本 block ,我执行以下操作:

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

其中 micLevelIn 设置为 0。

谁能告诉我我做错了什么?

我预计满量程正弦音会衰减到目标 DBFS 级别;低电平正弦音(即 -30dBFS)将被放大以匹配目标 DBFS 电平。但这不是我看到的。

最佳答案

这是用于 Webrtc_AGC 的操作序列:

  1. 创建 AGC:WebRtcAgc_Create
  2. 初始化 AGC:WebRtcAgc_Init
  3. 设置配置:WebRtcAgc_set_config
  4. 初始化capture_level = 0
  5. 对于 kAgcModeAdaptiveDigital,调用 VirtualMic:WebRtcAgc_VirtualMic
  6. 使用 capture_level 处理缓冲区:WebRtcAgc_Process
  7. 获取 WebRtcAgc_Process 返回的 out 捕获级别并将其设置为 capture_level
  8. 音频缓冲区
  9. 重复 5 到 7
  10. 销毁 AGC:WebRtcAgc_Free

查看 webrtc/modules/audio_processing/gain_control_impl.cc 以供引用。

关于c++ - WebRTC AGC(自动增益控制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22706446/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com