蔡誠(chéng),章小兵,呂昊
(安徽工業(yè)大學(xué)電氣與信息工程學(xué)院,安徽馬鞍山,243002)
端點(diǎn)檢測(cè)是語音信號(hào)處理的重要組成部分。端點(diǎn)檢測(cè)可以從一段含噪或純凈語音中檢測(cè)出語音的開始和結(jié)束對(duì)應(yīng)的端點(diǎn)。在語音信號(hào)處理的過程中,如果輸入信噪比很高,可以用短時(shí)能量區(qū)分語音段和噪聲段,但在低信噪比環(huán)境下,僅用短時(shí)能量進(jìn)行端點(diǎn)檢測(cè)的效果會(huì)非常差,所以研究出具備高準(zhǔn)確率且魯棒性好的端點(diǎn)檢測(cè)算法十分重要,本文首先利用改進(jìn)的多窗譜減法對(duì)語音信號(hào)進(jìn)行降噪,然后對(duì)短時(shí)能量取對(duì)數(shù),然后用對(duì)數(shù)能量除以自相關(guān)函數(shù)主副峰值和過零率的乘積。結(jié)果表明,在低信噪比環(huán)境下,將對(duì)數(shù)能量和短時(shí)過零率,自相關(guān)函數(shù)主副峰值結(jié)合,該方法可以實(shí)現(xiàn)更精確的語音端點(diǎn)檢測(cè)。
1982年,Thomson在傳統(tǒng)周期圖方法的基礎(chǔ)上提出了一種多窗譜估計(jì)算法。他的算法是在多個(gè)正交數(shù)據(jù)窗上重復(fù)使用同一數(shù)據(jù)序列,得到與數(shù)據(jù)相對(duì)應(yīng)的直譜,然后對(duì)直譜值進(jìn)行平均,得到誤差和估計(jì)方差較小的譜估計(jì)。
多窗譜的定義為:
其中L是數(shù)據(jù)窗口的數(shù)量;S^mt是第k個(gè)數(shù)據(jù)窗口的頻譜:
MATLAB中有調(diào)用函數(shù)pmtm,該調(diào)用函數(shù)可以計(jì)算多窗譜的功率譜估計(jì)密度和增加削減因子,然后將多窗譜之間相減,從而降低噪聲影響,得到語音信號(hào)的增強(qiáng)。
譜減流程如下:
(1)設(shè)帶有噪聲的語音信號(hào)為X(n),在通過預(yù)處理過后,可以得到語音信號(hào)Xi(m)。
(2)將語音信號(hào)Xi(m)進(jìn)行傅里葉變換,得到了振幅譜|Xi(k)|和相位譜θI(k),并對(duì)2M+1相鄰幀進(jìn)行了平滑處理,得到平均幅度譜|Xi(k)|公式的X(n)是數(shù)據(jù)序列;n是序列的長(zhǎng)度;Ak(n)是第k個(gè)數(shù)據(jù)窗口。
式子(3)將其中的第i幀作為中心,并各取中心前后M幀,一共取了2M+1幀,并將2M+1幀取平均值,一般情況下,M的值為1,并在以下幀數(shù)后,每過3幀取一次平均。
(3)將多窗譜的估計(jì)運(yùn)算施加到語音信號(hào)Xi(m)上,然后運(yùn)用MATLAB中具有的PMTM函數(shù)去進(jìn)行多窗譜功率譜密度計(jì)算:
(4)對(duì)多窗譜功率譜密度進(jìn)行估計(jì)后并重復(fù)相當(dāng)于步驟2的操作,推算出平滑功率譜密度:
從上面式子我們可以看出來,以第i幀作為中心,并在前后各取M幀,一共取了2M+1幀,并將該2M+1幀取均值,一般情況下,M的值為1,即每2幀進(jìn)行一次平均。
(5)假設(shè)有NIS幀前導(dǎo)無語音噪聲段,結(jié)合下面給出的式子,我們可以計(jì)算出噪聲平均功率譜密度值,該表達(dá)式為:
(6)譜減關(guān)系計(jì)算增益因子。
式中,α為過減因子;β為增益補(bǔ)償因子,為了有效去除純音中含雜的污染噪聲,我們要選擇適宜的α值,α值過大了會(huì)造成語音失真,過小了效果不明顯。
(7)由式子(3)的|i(k)|和式子(7)的g(k,i)就可以計(jì)算出譜減幅度譜|Si(k)|值。
最后,將|Si(k)|與θi(k)結(jié)合到一起,然后進(jìn)行離散傅里葉反變換(IDFT),將語音信號(hào)從頻域轉(zhuǎn)換到時(shí)域,通過上述運(yùn)算后,可以得到增強(qiáng)的語音信號(hào)Si(m)。
為了在語音信號(hào)中獲得更準(zhǔn)確的信號(hào),要先對(duì)語音信號(hào)進(jìn)行多窗譜降噪處理,這樣可使低信噪比環(huán)境下端點(diǎn)檢測(cè)更加穩(wěn)定和準(zhǔn)確。
短時(shí)能量可以用來區(qū)分語音和噪音。在噪聲環(huán)境中,語音能量加上噪聲能量可以代表這一段能量的總和。在高信噪比情況下,語音的短時(shí)能量比噪音的短時(shí)能量大,通過計(jì)算這一段語音段的短時(shí)能量,可以區(qū)分語音和噪聲。在高信噪比和不含噪音時(shí),短時(shí)能量區(qū)分語音和噪音有著很好的效果,但是在低信噪比環(huán)境下,短時(shí)能量檢測(cè)的效果會(huì)大大下降,短時(shí)能量為一幀語音信號(hào)能量的大小,短時(shí)能量定義:
假設(shè)語音波形的時(shí)域信號(hào)為x(n),加窗函數(shù)ω(n)得到的第i幀語音信號(hào)為Yi(n),則Yi(n)滿足以下要求建議:
計(jì)算短時(shí)第i幀語音信號(hào)Yi(n)的能量公式可導(dǎo)出如下公式:
由此得每一幀的對(duì)數(shù)能量:
其中C是常數(shù),通常大于1。C的引入可以減小En的某個(gè)值與前后值的差異,選擇合適的常數(shù)C有助于區(qū)分噪聲段和語音段,對(duì)數(shù)可以緩解伴隨對(duì)數(shù)能量的劇烈變化幅度,語音信號(hào)的短時(shí)平均能量在噪聲段非常穩(wěn)定甚至接近0,但在語音段具有較高的幅值。此外,對(duì)數(shù)能量可以緩和短時(shí)平均能量的急劇變化,并在一定程度上提高平滑語音段的幅度。
短時(shí)平均過零率是語音信號(hào)波形在一幀語音中通過水平軸(零電頻率)的次數(shù)。連續(xù)語音信號(hào)的時(shí)域波形用過零點(diǎn)的方式穿過橫軸。離散信號(hào)相鄰采樣值的符號(hào)不同就判定為過零.所以短時(shí)平均過零率可以用單位時(shí)間內(nèi)樣本值改變符號(hào)的次數(shù)來表示,短時(shí)平均過零率的作用是區(qū)分清音和濁音。清音有著較高的過零率,而濁音過零率則較低.
短時(shí)平均過零率:
符號(hào)函數(shù)sgn[x]:
直流分量會(huì)對(duì)短時(shí)平均過零率造成一定的影響,所以在計(jì)算短時(shí)平均過零率前,需要先消除直流分量。
噪聲幀和有話幀的自相關(guān)函數(shù)是不同的,圖1和圖2給出了噪聲幀和有話幀短時(shí)自相關(guān)函數(shù)的曲線圖,其中最大峰值都做了歸一化處理.定義主峰和第一個(gè)副峰的比值:
圖1 噪聲信號(hào)自相關(guān)函數(shù)
圖2 帶噪語音信號(hào)自相關(guān)函數(shù)
式中,R(0)為主峰值;Rm為第一個(gè)副峰值
從圖1,圖2中可以看到在噪聲幀中最大的副峰值在0.1左右,主峰歸1,所以噪聲幀的Ca值為10左右;而在有話幀中第一個(gè)副峰值在0.5左右,主峰歸1,所以它的Ca值為2左右.從中可以看到,噪聲幀和有話幀之間主副峰的比值有很大的差距,所以可以利用這個(gè)特性來提取端點(diǎn).
上述逐一對(duì)短時(shí)能量,短時(shí)過零率,以及自相關(guān)函數(shù)主副峰比值做了分析,通過仿真實(shí)驗(yàn)得到的結(jié)果和查閱文獻(xiàn)資料發(fā)現(xiàn),在無噪音環(huán)境下或高信噪比的情況下,較為純凈的語音通過這三種特征參數(shù)單獨(dú)來進(jìn)行端點(diǎn)檢測(cè)可以表現(xiàn)出非常良好的準(zhǔn)確性,但是在低信噪比的情況下端點(diǎn)檢測(cè)的準(zhǔn)確率則會(huì)大大下降.為了使端點(diǎn)檢測(cè)在低信噪比環(huán)境下更加準(zhǔn)確,本文將短時(shí)過零率,短時(shí)能量,自相關(guān)函數(shù)主副峰值這三種語音端點(diǎn)檢測(cè)特征參數(shù)檢測(cè)算法來組合成一種新的端點(diǎn)檢測(cè)算法,短時(shí)能自零比通過用對(duì)數(shù)能量除以短時(shí)過零率和自相關(guān)函數(shù)主副峰的積,從以上圖中可以看出,在語音的有話區(qū)間能量是向上凸起的,而過零率則和自相關(guān)函數(shù)主副峰則相反,在有話區(qū)間向下凹陷.所以將對(duì)數(shù)能量除以過零率和自相關(guān)函數(shù)主副峰值的積,則可以更突出有話區(qū)間的數(shù)值,噪聲區(qū)間的數(shù)值變得更小,拉開了有話區(qū)間和噪聲區(qū)間的數(shù)值差距,更容易檢測(cè)出語音的端點(diǎn)。其定義如下:
式中,Ei,Zi和Ci分別代表第i幀對(duì)數(shù)能量,短時(shí)過零率和自相關(guān)函數(shù)主副峰比值,Eo,Zo和Co表示前十幀的對(duì)數(shù)能量均值,短時(shí)過零率和自相關(guān)函數(shù)主副峰比值,b為一個(gè)較小的常數(shù),防止(ZI-Zo)(Ci-Co)為0時(shí)出現(xiàn)溢出的情況。經(jīng)過多次實(shí)驗(yàn)a取值為2.8。
能自零特征值提取的流程圖如下:
短時(shí)能自零結(jié)合在一起的新型語音端點(diǎn)檢測(cè)法,能夠更好的發(fā)揮增大噪音和純凈語音差異的效果,可以更好的區(qū)分有話段和噪音段,在低信噪比的環(huán)境下具有良好的端點(diǎn)檢測(cè)準(zhǔn)確性和穩(wěn)定性。
圖3 能自零比特征值提取流程圖
實(shí)驗(yàn)中所用的語音樣本是純凈不含噪語音,采樣頻率為8kHz,采樣精度為16bit,實(shí)驗(yàn)通過改進(jìn)的多窗譜降噪,通過添加噪聲庫中的白噪音,生成5db,0db和-5db三中不同信噪比情況下的matlab仿真波形圖。圖4-圖9為傳統(tǒng)端點(diǎn)檢測(cè)法與本文的端點(diǎn)檢測(cè)的效果對(duì)比。
圖4 SNR=5db白噪聲能自零比的端點(diǎn)檢測(cè)
圖5 SNR=5db白噪聲能零比的端點(diǎn)檢測(cè)
圖6 SNR=0db白噪聲能自零比的端點(diǎn)檢測(cè)
圖7 SNR=0db白噪聲能零比的端點(diǎn)檢測(cè)
圖8 SNR=-5db白噪聲能自零比的端點(diǎn)檢測(cè)
圖9 SNR=-5db白噪聲能零比的端點(diǎn)檢測(cè)
與圖4、圖6、圖8和圖5、圖7、圖9相比,兩種方法在信噪比較高時(shí)具有較好的精度,但在信噪比較低時(shí),能自零比端點(diǎn)檢測(cè)仍能正確檢測(cè)語音信號(hào)的端點(diǎn)位置。例如,當(dāng)信噪比為0dB時(shí),傳統(tǒng)的能零比檢測(cè)方法漏掉了判斷,而本文的端點(diǎn)檢測(cè)方法可以檢測(cè)到“大?!?,當(dāng)信噪比為-5dB時(shí),傳統(tǒng)的能零比檢測(cè)方法已經(jīng)基本失效,但本文提出的方法仍能進(jìn)行更精確的端點(diǎn)檢測(cè),說明本文方法在不同信噪比下具有較強(qiáng)的抗噪能力和較好的檢測(cè)效果。
本文提出的新的端點(diǎn)檢測(cè)算法,通過對(duì)語音信號(hào)進(jìn)行改進(jìn)的多窗譜降噪處理,然后將自相關(guān)函數(shù)主副峰比值和對(duì)數(shù)能量,過零率結(jié)合起來。通過大量的仿真實(shí)驗(yàn)之后發(fā)現(xiàn),該算法比眾多傳統(tǒng)的端點(diǎn)檢測(cè)法在低信噪比環(huán)境下檢測(cè)更為準(zhǔn)確,穩(wěn)定性更強(qiáng),魯棒性更好,且對(duì)進(jìn)一步研究低信噪比情況下的語音端點(diǎn)檢測(cè)提供了參考。