我是靠谱客的博主 喜悦汉堡,最近开发中收集的这篇文章主要介绍Webrtc AGC 算法原理介绍(六)(转),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

零、前言

本系列介绍Webrtc的agc算法。webrtc的agc算法对各种情况作了较为详尽的考虑,而且使用了的定点数的方法来实现,因此内容比较多。尽量在这几篇文章中描述清楚。

一、WebRtcAgc_ProcessDigital

ProcessDigital是AGC的核心函数,无论什么模式都要调用到。现在来解释一下。
该函数8khz的时候处理80个点的数据,16k处理160个点的数据,32k处理低频160个点的数据。每个处理都是10ms。
WebRtcAgc_ProcessDigital流程图1
1、首先计算了近端信号的VAD参数。并且当远端信号超过10帧(100ms)后,使用远端的VAD参数修正近端VAD,具体方法是:
L=34Lnear14LfarL=34Lnear−14Lfar

Cslow={C2slow+decay,evn[k]<Cslow500(evn[k]Cslow)+Cslow,evn[k]CslowCslow={Cslow2+decay,evn[k]<Cslow500(evn[k]−Cslow)+Cslow,evn[k]≥Cslow在[0.304,1]。
当gate最小的时候为0(语音),gain_adj取到最大,此时不使用gainTable[0]的值作为参考;
当gate最大的时候为2500(噪声),gain_adj取到最小,此时g[k+1]要取到相对于gainTable[0]的值的70%;
当gate处于最大最小值之间,g[k+1]在gainTable[0]和g[k+1]确定的这条直线上移动。
接着再根据信号的大小对gain做一些限制,保证信号不要发生剪切。
WebRtcAgc_ProcessDigital流程图3
6、使用gain
这部分比较简单,对每一块使用不同的gain,其中每个点的gain都在两个gain[k]和gain[k+1]中差值获得。
最后对处理后的信号进行幅度限制。

最后

以上就是喜悦汉堡为你收集整理的Webrtc AGC 算法原理介绍(六)(转)的全部内容,希望文章能够帮你解决Webrtc AGC 算法原理介绍(六)(转)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部