薛勝堯
(河海大學(xué) 能源與電氣學(xué)院,江蘇 南京 211000)
語音端點檢測的目的是從包含語音的一段信號中確定出語音的起點及結(jié)束點,它是語音信號處理中的一個基礎(chǔ)步驟。有效的端點檢測能有效輔助語音識別、語音降噪等語音處理操作,提高語音信號質(zhì)量。語音端點檢測的成敗,將直接影響著后續(xù)工作的正確率乃至整個語音識別系統(tǒng)的成敗。所以語音端點檢測的研究一直是學(xué)者們研究的熱點之一。
端點檢測的常用方法有:能量閾值、基音檢測、頻譜分析、倒譜分析及LPC預(yù)測[1]等。其中基于能量和過零率的雙門限判決法最為常用。在許多語音信號處理任務(wù)中需要判斷,一段輸入信號中哪些是語音段,哪些是無聲段,哪些是噪聲。在一些語音識別或低速語音編解碼器應(yīng)用中,對于已經(jīng)判別為語音段的部分,還需進一步判斷清音和濁音。這些問題可以稱為有聲或無聲判決,以及更細致的無聲(S)、清音(U)、濁音(V)判決[2]。能夠?qū)崿F(xiàn)這些判決的依據(jù)在于,不同性質(zhì)語音的各種短時參數(shù)具有不同的概率密度函數(shù),以及相鄰的若干幀語音具有一致的語音特性,不會在無聲,清音和濁音之間隨意跳變。文章比較了利用短時能量和短時平均過零率進行端點檢測的傳統(tǒng)方法和改進后大方法,并在Matlab中編程仿真得出了預(yù)期結(jié)果。
語音信號的能量隨時間變化而變化的重要參數(shù),一般清音部分的能量比濁音部分的能量小。信號的短時能量分析給出了反應(yīng)這些幅度變化的一個合適的描述方法。對于信號x(n),第n幀語音信號的短時能量定義如下:
式中,h(n)=ω(n)2,ω(n)表示選取的窗函數(shù),En表示在信號的第n幀語音信號的短時能量,L為幀長??梢钥闯?,短時能量可以看作語音信號的平方經(jīng)過一個線性濾波器的輸出[3],該線性濾波器的單位沖擊響應(yīng)為h(n),如圖1所示。
圖1 語音信號的短時平均能量實現(xiàn)框圖Fig.1 Short-time average energy of the speech signal realization diagram
沖激響應(yīng)h(n)的選擇,或者說窗函數(shù)的選擇決定了短時能量表示方法的特點。為反應(yīng)窗函數(shù)選擇對短時能量的影響,假設(shè)式中 的h(n)非常長,且為恒定幅度,那么En隨時間的變化將很小,這樣的窗就等效為很窄的低通濾波器。h(n)對x(n)2的平滑作用較顯著,無法反映語音的時變特性。反之,若 h(n)序列長度N過小,那么等效窗不能提供足夠的平滑,以至于語音振幅瞬時變化的許多細節(jié)仍被保留,從而看不出振幅包絡(luò)的變化規(guī)律。通常N的選擇與語音的基音周期相聯(lián)系,一般要求窗長為幾個基音周期的數(shù)量級。
短時能量主要用于區(qū)分清音和濁音,因為濁音比清音的能量大得多;其次可以用短時能量對有聲段和無聲段進行判定,對聲母和韻母分界,以及對連字分界等。在語音識別系統(tǒng)中,短時能量一般也作為特征中的一維參數(shù)來表示語音信號能量的大小和超音段信息[4]。
圖2為語句“一、二、三、四、五”的語言波形圖及其短時能量譜。
圖2 語句“一、二、三、四、五”的語言波形圖及其短時能量譜Fig.2 Statement"one,two,three,four,five"the speech waveform diagram and its short-term energy spectrum
短時平均過零率是語音信號時域分析中的一種特征參數(shù)。它是指每幀內(nèi)信號通過零值的次數(shù)。對于連續(xù)語音信號,可以考察其時域波形通過時間軸的情況。對于離散信號,短時平均過零率實際就是信號采樣點符號變化的次數(shù)。短時平均過零率仍可以在一定程度上反映其頻譜性質(zhì),可以通過短時平均過零率獲得譜特性的一種粗略估計。第n幀語音的短時平均過零率的公式為:
其中sgn為符號函數(shù),幀長為L。
圖3給出了短時平均過零率的計算過程。
圖3 短時平均過零率的計算過程Fig.3 Calculation time average zero-crossing rate
圖4 給出了語音“一、二、三、四、五"的短時過零率圖。
圖4 短時過零率Fig.4 Short-term zero rate
通過分析語音信號發(fā)現(xiàn),發(fā)濁音時,盡管聲道有若干共振峰,但由于聲門波引起譜的高頻跌落,所以其語言能量約集中在3 kHz以下;而發(fā)清音時,多數(shù)能量出現(xiàn)在較高頻率上。從頻率的角度來說,當(dāng)頻率較高時,其過零率應(yīng)當(dāng)較高,相反頻率較低時,其過零率較低。在語音發(fā)音中,短時過零率便可以辨別出濁音信號和清音信號。
由于人說話時是清濁音想結(jié)合的,因此利用短時過零率還可以從背景噪聲中找出語音信號,可用于判斷寂靜無話段與有話段的去點和終點位置。在背景噪聲較小時,用平均能量識別較為有效;而在背景噪聲較大時,用短時平均過零率識別較為有效[5]。當(dāng)混入不同類型的噪聲信號時,往往不能光憑借短時能量判斷出語音的端點。將短時過零率和短時能量結(jié)合起來應(yīng)用的雙門限法能較好的判斷出語音端點的所在。
雙門限法最初是基于短時平均能量和短時平均過零率而提出的,其原理是漢語的韻母中有元音,能量較大,所以可以從短時平均能量找出韻母,而聲母是輔音,它們的頻率較高,相應(yīng)的短時平均過零率較大,所以用這兩個特點找出聲母和韻母,等于找出完整的漢語音節(jié),雙門限是使用二級判決來實現(xiàn)的。首先為短時能量和過零率分別確定兩個門限,一個是較低的門限數(shù)值,對信號的變化比較敏感,很容易超過;另一個是比較高的門限,數(shù)值較大。低門限被超過未必是語音的開始,有可能是很短的噪聲引起的,高門限被超過并且接下來的自定義時間段內(nèi)的語音超過低門限,意味著信號開始[6]。
此時整個端點檢測可分為四段:靜音段、過渡段、語音段、結(jié)束。實驗時使用一個變量Statue表示當(dāng)前狀態(tài)。在處于靜音段時,如果能量或過零率超過低門限,就開始標(biāo)記起始點,進入過渡段。過渡段當(dāng)兩個參數(shù)值都回落到低門限以下,就將當(dāng)前狀態(tài)恢復(fù)到靜音狀態(tài)。而如果過渡段中兩個參數(shù)中的任一個超過高門限,即被認(rèn)為進入語音段。處于語音段時,如果兩參數(shù)降低到門限以下,而且總的計時長度小于最短時間門限,則認(rèn)為是一段噪音,否則就繼續(xù)掃描以后的語音數(shù)據(jù),當(dāng)其兩個參數(shù)都降至門限以下而總計時長大于最短時間門限則標(biāo)記語音結(jié)束端點,注明此處為一段語音,并從新進入靜音段[6-7]。
從上面的分析可以知道,在背景噪聲較小時,短時過零率在有音段時的幅值較大。但是如果我們適當(dāng)?shù)寞B加噪聲后,情況就會變得不一樣了。如果我們疊加一個較大的高斯白噪聲,得到一個信噪比較低的語音段,并作短時過零率分析,我們將會得到一個完全不同的結(jié)果。如圖5是一段語音“一、二、三、四、五”加噪后的波形圖和短時過零率圖,在疊加高斯白噪聲后,它的信噪比為0 db。
圖5 加噪后的語音波形圖和短時過零率Fig.5 Voice waveforms and short-term zero rate after adding noise
現(xiàn)在附加上原來純語音階段的短時過零率和波形圖,如圖6所示。
圖6 純語音的短時過零率和波形圖Fig.6 Pure voice’s short-term zero rate and waveform
從圖中分析可知,短時過零率已不再是在語音的聲母和韻母處有較大的過零率,在靜音區(qū)有較小的過零率;而現(xiàn)在的情況正好相反,在無話段的噪聲處有較大的過零率,比聲母、韻母都要大。這實際上很好理解,在高斯白噪聲聲中,同樣存在著豐富的高頻成分,它的過零率顯然是高的,要比韻母高很多,所以會在韻母的部分造成一個凹形的區(qū)域。而噪聲的過零率與聲母相比有時會大于聲母的,有時會小于它,這和噪聲的短時特性有關(guān)。但一般而言,對于處理低信噪比的語音短時,短時過零率都處于以上情況中。所以當(dāng)我們尋找有音段時,不再尋找過零率大于某一閾值,而是小于某一閾值。并且我們在這里對于短時過零率設(shè)置閾值時,我們只設(shè)置一個閾值。因為短時過零率不像短時能量,其有音段的值和過度段的值相差不大,設(shè)置多個閾值,對于判定并不能起到很好的作用,反而降低計算速度。
在低信噪比時的,由于噪聲的能量較大,能量曲線和短時過零率曲線的起伏較大,故閾值的設(shè)置不能太低。所以當(dāng)我們說話吐字太清時,能量較低,會出現(xiàn)漏判的情況。為了解決這個問題,引入中值濾波器對于能量曲線和短時過零率曲線進行平滑處理。在這里采用一個滑動窗口,其采樣點數(shù)一般在5個點,然后選出其中值。中值平滑的優(yōu)點就在于既可以有效地取出少量的野點,又不會破壞數(shù)據(jù)在兩個平滑段之間的階躍性變化。如圖7,8就像我們展示了,中值濾波前后的短時能量和短時過零率圖譜。
圖7 中值濾波前后的短時能量圖譜Fig.7 Short-term energy spectra before and after median filtering
圖8 中值濾波前后的短時過零率圖譜Fig.8 Short-term zero rate patterns before and after median filtering
為了更符合人說話時的語言特性,引入語音段結(jié)束最小長度。這是為了考慮人發(fā)音是單詞之間的靜音區(qū)會有一個最小長度表示發(fā)音間的停頓,就是在小于閾值時滿足一個最小長度才判斷該語音結(jié)束,實際上相當(dāng)于延長了語音尾音的長度。這樣做可以減少對于靜音區(qū)的誤判斷,減輕計算量。
總的來說,對于語音的判決我們設(shè)定3個門限。T1和T2代表能量閾值,T3代表過零率閾值。首先對于背景噪聲算出它的能量統(tǒng)計特性,定出能量高低門限、短時過零率門限,利用能量門限來確定語音信號的初始起止點,然后根據(jù)過零率精確得出起止點。在本文的實驗中,對于前十幀的信號進行短時平均能量和過零率的計算,然后根據(jù)算得的值設(shè)定門限。根據(jù)能量門限算得一初始起點N1,其能量值超過T1。逐次比較以后每幀的平均幅度是否超過T2和低于T3,直到不滿足則判斷終止,記為N2。然后判斷從N1到N2是否滿足最小語音段長度,若滿足則在N2的基礎(chǔ)上加上n個采樣點以表示語音結(jié)束最小長度。再從N2+n點處開始重新判斷。若N1到N2的長度不滿足,則原N1不作為初始起點,改記下一個平均幅度超過了低能量門限的幀為N1,依此類推。在找到第一個平均幅度超過高能量的幀時停止比較。
圖9 傳統(tǒng)型方法Fig.9 Traditional method
圖10 改進型方法Fig.10 Improved method
此處對于一段語音“一、二、三、四、五”進行分析,并對其加入高斯白噪聲使其信噪比達到0db,其采樣頻率為8 kHz,其分幀長度為200個采樣點,幀間重疊80。這里我們用傳統(tǒng)的采樣方法和改進行的方法進行對比。分別如圖9、圖10所示。在圖9、10中,統(tǒng)一以實黑縱線表示語音段的開始,以虛黑縱線表示語音段的結(jié)束。
從圖中可以看出,傳統(tǒng)形的方法出現(xiàn)了嚴(yán)重的錯判和漏判情況。這種方法只能判斷出一、三、五這3個讀音的端點,其判斷的準(zhǔn)確率只有60%。在改進型的方法中一二三四五這5個讀音的端點均得到了很好的判斷,準(zhǔn)確率達到了100%。本研究結(jié)果解決了在低信噪比情況下傳統(tǒng)雙門限法無法準(zhǔn)確判斷語音端點的問題,在此改進型方法下,語音端點判斷的準(zhǔn)確率大幅提高。
[1]趙力.語音信號處理[M].北京:機械工業(yè)出版社,2010.
[2]韓紀(jì)慶,張磊,鄭鐵然.語音信號處理[M].北京:清華大學(xué)出版社,2004.
[3]Gerven S,Xie Fei.A comparative study of speech detection methods[C]//EUROSPEECH,Greece,1997:1015-1020.
[4]夏敏磊,語音端點檢測技術(shù)研究[D].杭州:浙江大學(xué),2005.
[5]陸東鈺,周萍.基于雙門限算法的語音端點檢測和聲韻母分離研究[J],桂林電子科技大學(xué)學(xué)報,2011,32(6):480-484.LU Dong-yu,ZHOU Ping.Dual threshold endpoint detection algorithm vowel harmony separation [J].Guilin University of Electronic Technology,2011,32(6):480-484.
[6]路青起,白燕燕,基于雙門限兩級判決的語音端點檢測方法[J].電子科技,2012,25(1):13-19.LU Qing-qi,BAI Yan-yan.Voice endpoint detection method based on double threshold levels judgment[J].Electronic Technology,2012,25(1):13-19.
[7]鄧艷容,景新辛,楊海燕,等.語音端點檢測研究[J].計算機系統(tǒng)應(yīng)用,2012,21(6):240-243.DENG Yan-rong,JIANG Xin-xin,YANG Hai-yan,et al.Voice detection[J].Computer Systems&Applications,2012,21(6):240-243.