国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Webrtc AGC 算法原理介紹(六)

2019-11-09 18:55:27
字體:
來源:轉載
供稿:網友

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=34Lnear?14Lfar 2、接著使用似然比L計算出衰減decay。 Ddecay=??????65,ifL>10,ifL<0?65L,else 如果是adaptive(無論,Analog或者Digital)中,對聲音小的情況,對decay修正。這個參數在計算慢包絡的時候使用。?? WebRtcAgc_ProcessDigital流程圖2 3、計算每1ms的最大能量作為包絡env。 4、通過快、慢包絡和增益表計算出增益數組gain 這個部分,首先計算了快慢包絡。 Cfast={?1000Cfast+Cfast,evn[k]<Cfastevn[k],evn[k]≥Cfast

Cslow={C2slow+decay,evn[k]<Cslow500(evn[k]?Cslow)+Cslow,evn[k]≥Cslow 然后,兩個包絡的最大值作為level=max(Cslow,Cslow) 最后,使用LOG2的分段線性函數把cur_level轉換成gain。LOG2的整數部分是cur_level前面0的個數,如果0越少,說明數值越大,最多是31個0,最少1個0(有符號數)。小數部分用線性差值的方法,找到gain[zeros],gain[zeros-1]中間的量。 g[k+1]=Gtable[zeros]+f{Gtable[zeros?1]?Gtable[zeros]} 5、計算門限gate gate意味著衰減原來的增益。gate的計算可以看成兩部分,第一部分是基于快慢包絡計算出的似然比,相當于快包絡與慢包絡能量的倍數。第二部分是近端信號的短時方差。表達式如下: g≈?log(CslowCfast)+(3.91?STDST near) 先看第一部分,這里說?log(Cfast)對應于zeros_fast,這個東西是快包絡大的時候它值小,?log(Cslow)對應于zeros,這個東西是慢包絡大的時候它值小。第一部分說明,fast與slow包絡的距離越大,也即是出現語音的可能性越大,gain越小。 第二部分是定值減去vadNearend.stdShortTerm。無疑,語音出現可能性越大,vadNearend.stdShortTerm越大,第二部分越小,gain越小。 計算完gain后,使用上次計算值對它平滑處理。 g=0.125g+0.875gold 平滑后,把門限轉換成gain_adj。 g[k+1]=(1?(0.6953+gadj))GT[0]+(0.6953+gadj)g[k+1] g[k+1]=(1?αadj)GT[0]+αadjg[k+1] gain_adj的值在0, 0.304之間,因此上公式中的αadj在[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]中差值獲得。 最后對處理后的信號進行幅度限制。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新平| 古田县| 江都市| 日照市| 德安县| 乐亭县| 杂多县| 郯城县| 福海县| 哈巴河县| 海门市| 阿拉善右旗| 安徽省| 新巴尔虎右旗| 宝清县| 贺兰县| 呈贡县| 呼和浩特市| 江达县| 洛南县| 沛县| 堆龙德庆县| 南投县| 灵台县| 龙泉市| 信丰县| 临安市| 化德县| 左云县| 陇川县| 隆昌县| 顺昌县| 东光县| 定日县| 永城市| 子长县| 贞丰县| 景宁| 阳城县| 兴安盟| 应用必备|