柏 順,顏夕宏,張生平,陳建飛,張 勝
(1.南京郵電大學(xué)電子與光學(xué)工程學(xué)院,江蘇 南京 210023)(2.南京梧桐微電子科技有限公司,江蘇 南京 210023)
語音端點檢測(voice activity detection,VAD)是指在一段語音信號中區(qū)分出話音段和無話音段,并標出起點和終點,其本質(zhì)上是尋求能夠區(qū)分話音段和噪音段的特征參數(shù)來對其進行準確劃分[1]. VAD是語音信號處理領(lǐng)域中至關(guān)重要的一環(huán),其性能優(yōu)劣直接影響語音系統(tǒng)的處理性能. 在低信噪比環(huán)境下,噪音會對語音特征參數(shù)的提取結(jié)果造成極大干擾,從而導(dǎo)致檢測準確率大幅下降[2-4]. 優(yōu)秀的VAD算法可以降低處理時間、適應(yīng)各種復(fù)雜的噪聲環(huán)境,因此對之進行深入研究具有較高的實用價值.
語音端點檢測的方法有兩類:一是針對語音的特征參數(shù)來討論的,如能零比[5]、譜熵[6]、頻帶方差[7]、自相關(guān)函數(shù)的主次峰值比等,其中短時能量對噪音的敏感度較高,因此常被作為輔助參數(shù)使用[8-9];二是基于模型基礎(chǔ),主要方法有支持向量機[10]和神經(jīng)網(wǎng)絡(luò)[11]等. 然而,雖然已有大量VAD算法被提出,但在低信噪比環(huán)境中VAD準確率仍然較低.
有學(xué)者[12]指出MFCC的第一分量的絕對值占據(jù)了很高的比重,且具有語音追蹤的能力,文章中將其提取并結(jié)合譜熵進行端點檢測,得到了較高的VAD準確率(約提高了20%). 本文發(fā)現(xiàn)MFCC的前3個分量均具有語音追蹤能力,為了提高特征參數(shù)在端點檢測中的敏感度,提出將MFCC敏感度較大的3個分量的絕對值進行累加,再與短時能量進行相比,得到的結(jié)果作為端點檢測的特征參數(shù)(梅爾能量比,記為MFRE),最后利用模糊C均值聚類算法和雙門限法進行端點檢測[13]. 本文從TIMIT語音庫選取語音并使用NOISE_92噪聲庫中不同類型噪聲進行加噪處理,之后對帶噪語音進行端點檢測. 仿真結(jié)果表明,本算法在5 dB、0 dB、和-5 dB的噪聲環(huán)境下,較傳統(tǒng)的MFCC倒譜距離、能零比、譜熵等算法有較高的識別準確率.
梅爾頻率倒譜系數(shù)的分析是基于人的聽覺機理,即依據(jù)人的聽覺實驗結(jié)果來分析語音的頻譜,期望能獲得好的語音特性[14]. 以Mel為單位的感知頻率Fmel與實際頻率f的具體關(guān)系表示如下
Fmel=1 125log(1+f/700).
(1)
語音信號s(n)經(jīng)過加窗函數(shù)ω(n)分幀處理后得到y(tǒng)i(n),其中i表示分幀后的第i幀.則yi(n)滿足:
yi(n)=ω(n)*x((i-1)*inc+n), 1≤n≤L, 1≤i≤fn,
(2)
式中,ω(n)為窗函數(shù),一般為矩形窗或漢明窗,L為幀長,inc為幀移長度,fn為分幀后的總幀數(shù).
(1)對每一幀信號進行FFT變換,從時域數(shù)據(jù)轉(zhuǎn)變?yōu)轭l域數(shù)據(jù):
X(i,k)=FFT[yi(n)].
(3)
(2)對每一幀F(xiàn)FT后的數(shù)據(jù)計算譜線的能量:
E(i,k)=[X(i,k)]2.
(4)
式中,i表示第i幀,k表示頻域中的第k條譜線.
(3)將第i幀語音信號的能量譜E(i,k)通過Mel濾波器并求和,得到的能量S(i,m):
(5)
在頻域中相當于把每幀的能量譜E(i,k)與Mel濾波器的頻域響應(yīng)Hm(k)相乘并相加,m是指第m個Mel濾波器.
(4)把Mel濾波器的能量取對數(shù)后進行離散余弦變換,即可得每一幀的MFCC倒譜系數(shù):
(6)
式中,n是離散余弦變換(DOC)后的譜線.
MFCC(i,n)是一個i*m維矩陣,i是語音信號幀數(shù),m是濾波器個數(shù).文獻[12]將第一個濾波器的MFCC系數(shù)定義為MFCC的第一分量,現(xiàn)用MFCC1(i)表示,MFCC1(i)實際上是一個i*1維數(shù)組,并對語音有跟蹤能力,圖1給出了信噪比為0 dB環(huán)境下MFCC的前四分量與語音段(直線開始,虛線結(jié)束)的波形.
圖1 MFCC前4分量與語音段比對圖Fig.1 Comparison between the first four components of MFCC and speech segments
從圖1可以用肉眼看到不僅第一分量具有語音追蹤能力,第二、三分量的波形走勢和語音起點、話音段、終點模糊對應(yīng),但是第四分量的波形開始紊亂不具備這一特性應(yīng)舍棄.由于第一分量的幅值均為負數(shù),第二、三分量的幅值絕大多數(shù)為負數(shù),可將第二、三的波形向下平移至其幅值的最大值為零,保證所有的MFCC均為負值. 然后,將每一幀所對應(yīng)的三個濾波器MFCC系數(shù)取絕對值后再相加,記為MFCCa(i):
MFCCa(i)=|MFCC1(i)|+|MFCC2(i)|+|MFCC3(i)|.
(7)
此時,MFCCa(i)是一個i*1 維數(shù)組,i是幀數(shù).
由于語音信號的能量隨時間而變化,清音和濁音之間的能量差別相當顯著.因此對短時能量進行分析,可以描述語音的這種特征變化情況.計算第i幀語音信號的短時能量公式為:
(8)
短時能量在話音段的數(shù)值較高,在噪音段的數(shù)值較低,依據(jù)短時能量可以在高信噪比下區(qū)分話音段和噪音段以及在低信噪比作為輔助參數(shù)結(jié)合其他特征參數(shù)進行端點檢測.
雖然MFCCa(i)可以很好地區(qū)分有話段和噪音段,對話音段的敏感程度較高,但是在低信噪比環(huán)境下效果大打折扣,無法單獨作為語音特征參數(shù)進行端點檢測.針對這一問題,本文將MFCCa(i)與短時能量結(jié)合,提出梅爾能量比進行端點檢測.MFCCa(i)的幅值在話音段低于噪音段;而能量的幅值在話音段高于噪音段,可將MFCCa(i)與能量逐幀相比得到梅爾能量比:
MFRE(i)=MFCCa(i)/E(i).
(9)
理論上梅爾能量比的值在話音段的值小于噪音段.仿真結(jié)果如圖2(例句為一段男聲“藍天,白云,碧綠的大?!?信噪比5 dB).
圖2 信噪比5 dB環(huán)境下梅爾能量比與語音對應(yīng)關(guān)系圖Fig.2 MFRE and speech correspondence graph in SNR 5 dB
可以看出梅爾能量比更加突出了話音段和噪音段的差異,且在噪音段的波形平穩(wěn)整齊,可以作為端點檢測的特征參數(shù).
上文中提出了使用梅爾能量比進行端點檢測具有一定的優(yōu)越性和可行性.但是使用雙門限法還需要進行閾值的確定.模糊C均值聚類(fuzzy C-means clustering,FCMC)算法在眾多模糊聚類算法中是應(yīng)用最廣泛且成功的[15],可用該算法可將帶噪語音的特征參數(shù)分為兩類,并根據(jù)聚類中心的數(shù)值center進一步確定閾值并對其進行端點檢測,雙門限法的高低閾值TH與TL可由下公式求得:
(10)
式中,α與β為經(jīng)驗參數(shù);實驗數(shù)據(jù)表明,隨著信噪比的增加聚類中心center1與center2的數(shù)值差距成倍的增加,因此,可以根據(jù)兩個聚類中心的差距調(diào)整α與β的數(shù)值,進而達到自適應(yīng)調(diào)整高低閾值的目的.
在端點檢測的過程中會出現(xiàn)將話音幀誤檢成噪音幀的情況和噪音幀錯檢成話音幀的情況[16].本文在計算準確率的時候同時考慮了這兩種情況,計算步驟如下:
(1)設(shè)語音信號共有X幀.(2)共有P幀話音幀誤檢成噪音幀,共有Q幀噪音幀錯檢成話音幀.(3)準確率S=1-(P/X+Q/X).
從TIMIT語音庫選取50條語音信號并從NOISE_92噪聲庫選取不同類型的噪音對其加噪,最后對帶噪語音進行端點檢測. 測試語音的平均時長為3 s,話音段約為8段. 梅爾能量比(MFRE)的檢測結(jié)果的準確率與傳統(tǒng)的MFCC倒譜距離檢測方法、能零比(EZR)、譜熵(SE)進行比對,結(jié)果如表1所示.
表1 端點檢測準確率比較Table 1 Comparison of VAD
從仿真結(jié)果可以看出,使用梅爾能量比在不同類型的噪音下進行的端點檢測都表現(xiàn)出優(yōu)越的性能. 傳統(tǒng)的MFCC倒譜距離檢測方法會在信噪比為-5 dB失效,而梅爾能量比仍然保持較高的準確率,且高于對照位30%左右. 說明本算法在低信噪比環(huán)境下能較好地實現(xiàn)語音端點檢測,具有良好的抗噪性和魯棒性.
本文分析了MFCC倒譜距離前3分量具有語音跟蹤的特性,結(jié)合短時能量提出了以梅爾能量比作為語音特征參數(shù)的端點檢測算法. 實驗結(jié)果表明,本方法在瀑布、下雨、機艙運轉(zhuǎn)等復(fù)雜噪聲環(huán)境中,和在低信噪比情況下,其VAD準確率較傳統(tǒng)MFCC倒譜距離等方法均有較大的提升.
在實驗中發(fā)現(xiàn),會出現(xiàn)對比較明顯的話音幀漏檢和有規(guī)律的噪音幀誤檢的情況. 這是因為不同的噪音環(huán)境,導(dǎo)致高低閾值并不是一直處于最佳值. 后期可以針對這一問題進行進一步討論.