WebRtc自帶音頻降噪模塊怯疤,效果良好食呻。
webrtc的NS在業(yè)內還是赫赫有名的友雳,通過實際對比測試稿湿,我們發(fā)現(xiàn)webrtc的降噪的確是性能和穩(wěn)定性
都要高于同類開源算法。
webrtc的ns原理是這樣的:把啟動前50幀的數(shù)據拿來構建噪聲模型沥阱,把啟動前200幀的信號強度用來計
算歸一化的頻譜差值計算。根據這兩個模型使用概率目的函數(shù)來計算出每幀的信噪比并區(qū)分出噪聲和聲音伊群,
然后根據計算出的信噪比在頻域使用維納濾波器對噪聲信號進行噪聲消除考杉,最后在根據降噪前后的能量比
和信號噪聲似然比對降噪后的數(shù)據進行修復和調整后輸出。
webrtc的NS使用分析:webrtc的降噪支持三種采樣率舰始,8k崇棠,16k和32k,其它的采樣率的降噪可以通過
瞎采樣來完成丸卷。降噪模式有四種:分別是枕稀,0,1,2,3 四種模式的降噪量依次增加,筆者親自測過谜嫉,一般是2比較
好萎坷,對聲音損失小,降噪效果又不錯沐兰。還有個比較重要的參數(shù)就是噪聲估計模型宏定義哆档,如下所示,推薦在
系統(tǒng)計算能力夠的情況下使用第三種住闯,效果最好瓜浸。
#define PROCESS_FLOW_0 // Use the traditional method.
#define PROCESS_FLOW_1 // Use traditional with DD estimate of prior SNR.
#define PROCESS_FLOW_2 // Use the new method of speech/noise classification.
使用方法和代碼調用:
初始化:申請內存澳淑,設置采樣率和降噪模式。
WebRtcNs_Create(&pNS_inst);
WebRtcNs_Init(pNS_inst,nSample);
WebRtcNs_set_policy(pNS_inst,nMode);
處理主函數(shù):針對降噪的幀進行處理插佛,默認是10ms的幀長度杠巡。
int WebRtcNs_Process(NsHandle* NS_inst, short* spframe, short* spframe_H,
short* outframe, short* outframe_H)
、----------------------------
經本人測試webrtc僅支持 采樣率8000雇寇,16000氢拥; 其它采樣率處理出來是噪聲。