關於webrtc的VAD(voice activity dectctor)算法說明

                                   關於webrtc的VAD(voice activity dectctor)算法說明web

        webrtc 的vad使用GMM(Gaussian Mixture Model)對語音和噪聲建模,經過相應的機率來判斷語音和噪聲。這種算法算法

的優勢是它是無監督的,不須要嚴格的訓練。GMM的噪聲和語音模型以下:spa

       p(xk|z,rk)={1/sqrt(2*pi*sita^2)} * exp{ - (xk-uz) ^2/(2 * sita ^2 )} it

       XK是選取的特徵量,webrtcVAD中具體是指子帶能量,rk是包括均值uz和方差sita的參數集合。z=0,表明噪聲;z=1,表明語音。webrtc

webrtc中的vadC代碼的詳細步驟以下:test

      1.設定模式 :方法

                 依據hangover、單獨判決和全局判決門限將VAD檢測模式分爲如下4類activity

                 0-quality mode  集合

                 1- Low bitrate mode  vi

                 2-Aggressive mode 

                 3- Very aggressive mode

          

      2.webrtc的VAD只支持幀長10ms,20ms和30ms,爲此事先要加以判斷,不符合條件的返回-1。

 

      3.webrtc 的VAD核心計算只支持8KHz採樣率,因此當輸入信號採樣率爲32KHz  或者16KHz 時都要先下采樣到8KHz 

 

       4.在8Khz採樣率上分爲兩個步驟

 

              4.1 計算子帶能量

                        子帶分爲80~250Hz,250~500Hz,500~1000Hz,1000~2000Hz,2000~3000Hz,3000~4000Hz

                須要分別計算上述子帶的能量feature_vector。

 

              4.2 經過高斯混合模型分別計算語音和非語音的機率,使用假設檢驗的方法肯定信號的類型。

                          首先經過高斯模型計算假設檢驗中的H0和H1(C代碼是用h0_test和h1_test表示),經過門限判決vadflag;

                         而後更新機率計算所須要的語音均值(speech_means)、噪聲的均值(noise_means)、語音方差(speech_stds)

                和噪聲方差(noise_stds)。

相關文章
相關標籤/搜索