【AGC/DRC 资料】Webrtc中的agc-VirtualMic-自用备忘

https://blog.csdn.net/ssdzdk/article/details/52848161?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EsearchFromBaidu%7Edefault-1.pc_relevant_baidujshouduan&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EsearchFromBaidu%7Edefault-1.pc_relevant_baidujshouduan

VirtualMic(在只能控制数字增益时作为虚拟模拟增益)

1.根据能量和过零率判断是否为低能量信号(能量和过零率都比较低判断为低能量信号,其实相当于一个简单的VAD判决,令处理的信号是语音而不是噪音)

2.获取麦克风等级

3.检查麦克风增益与参考值是否一致

4.不一致则重新确定增益

5.设定初始增益,根据加上增益后的信号大小对增益进行调节

6.将加上增益后的信号输入Agc_AddMic,若micVol过大,Agc_AddMic将增加一个数字增益继续补偿。

ProcessAnalog函数调用

kAgcModeAdaptiveAnalog一定进入WebRtcAgc_ProcessAnalog流程;kAgcModeAdaptiveDigital在信号大能量(lowLevelSignal==0)的时候进入WebRtcAgc_ProcessAnalog流程,而kAgcModeFixedDigital不会调用该流程

WebRtcAgc_ProcessAnalog函数的作用是把输入的信号根据能量的大小饱和标志(WebRtcAgc_StaturationCtrl),零状态(WebRtcAgc_ZeroCtrl),以及近端语音活度(WebRtcAgc_SpeakerInactiveCtrl)的结果,来初步控制语音的大小。
————————————————
版权声明:本文为CSDN博主「灯等等凳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ssdzdk/article/details/54691463

原文地址:https://www.cnblogs.com/keepthinking-go/p/15070834.html