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)

相关推荐

  • WebRTC AGC 流程解析

    自动增益控制(Automatic gain control, AGC)是控制语音信号的增益稳定在指定水平的算法,可以避免语音忽大忽小引起的听觉不适。AGC作为音频3A算法之一,似乎…

    2023年2月20日

发表回复

登录后才能评论