C++ WebRTC AGC(自动增益控制)问题和解决思路

网友:

正在测试 WebRTC AGC,信号未经修改就通过了。以下是我如何创建和初始化 AGC:

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_levelWebRtcAgc_Process
  7. 获取返回的输出捕获级别WebRtcAgc_Process并将其设置为capture_level
  8. 重复 5 到 7audio buffers
  9. 摧毁AGC:WebRtcAgc_Free

检查 webrtc/modules/audio_processing/gain_control_impl.cc 以供参考。

版权声明:本文内容转自互联网,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908#qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年2月18日 下午7:46
下一篇 2023年2月20日 下午4:36

相关推荐

发表回复

登录后才能评论