路青起,白燕燕
(西安工業(yè)大學(xué)電子信息工程學(xué)院,陜西西安 710032)
端點(diǎn)檢測(cè)是語(yǔ)音信號(hào)處理中的一個(gè)基本問(wèn)題,其目的是從包含語(yǔ)音的一段信號(hào)中確定出語(yǔ)音的起點(diǎn)及結(jié)束點(diǎn)。有效的端點(diǎn)檢測(cè)不僅能使處理時(shí)間減到最少,而且能抑制無(wú)聲段的噪聲干擾,提高語(yǔ)音信號(hào)質(zhì)量。有學(xué)者用一個(gè)多話者的數(shù)字語(yǔ)音識(shí)別系統(tǒng)做實(shí)驗(yàn)。首先對(duì)所有記錄的語(yǔ)音用手工找出準(zhǔn)確的端點(diǎn),得到辨識(shí)率;然后逐幀加大端點(diǎn)檢測(cè)的誤差,在每次加大誤差的同時(shí)得到識(shí)別率。結(jié)果表明,端點(diǎn)檢測(cè)準(zhǔn)確時(shí)識(shí)別率為93%的系統(tǒng),當(dāng)端點(diǎn)檢測(cè)誤差在±60 ms時(shí),識(shí)別率降低了3%;在±90 ms時(shí),降低了10%;而當(dāng)誤差進(jìn)一步加大時(shí),識(shí)別率急劇下降[1]。語(yǔ)音端點(diǎn)檢測(cè)的成敗,直接影響著后續(xù)工作的正確率乃至整個(gè)語(yǔ)音識(shí)別系統(tǒng)的成敗。
端點(diǎn)檢測(cè)的常用方法有:能量閾值、基音檢測(cè)、頻譜分析、倒譜分析及 LPC(Linear Prediction Coefficients)預(yù)測(cè)殘差等。其中基于能量和過(guò)零率的雙門限判決法最為常用。在許多語(yǔ)音信號(hào)處理任務(wù)中需要判斷,一段輸入信號(hào)中哪些是語(yǔ)音段,哪些是無(wú)聲段,哪些是噪聲,哪些是語(yǔ)音。在一些語(yǔ)音識(shí)別或低速語(yǔ)音編解碼器應(yīng)用中,對(duì)于已經(jīng)判別為語(yǔ)音段的部分,還需進(jìn)一步判斷清音和濁音。這些問(wèn)題可以稱為有聲或無(wú)聲判決,以及更細(xì)致的無(wú)聲(S)、清音(U)、濁音(V)判決[2]。能夠?qū)崿F(xiàn)這些判決的依據(jù)在于,不同性質(zhì)語(yǔ)音的各種短時(shí)參數(shù)具有不同的概率密度函數(shù),以及相鄰的若干幀語(yǔ)音具有一致的語(yǔ)音特性,不會(huì)在無(wú)聲,清音和濁音之間隨意跳變。文章比較了利用短時(shí)能量和短時(shí)平均過(guò)零率進(jìn)行端點(diǎn)檢測(cè)的方法,并運(yùn)用雙門限兩級(jí)判決法在Matlab中。
語(yǔ)音信號(hào)的能量隨時(shí)間變化比較明顯,一般清音部分的能量比濁音部分的能量小。語(yǔ)音實(shí)現(xiàn)了端點(diǎn)檢測(cè)的編程和仿真。
信號(hào)的短時(shí)能量分析給出了反應(yīng)這些幅度變化的一個(gè)合適的描述方法。對(duì)于信號(hào)x(n),短時(shí)能量的定義如下
式(1)中,h(n)=ω2(n),En表示在信號(hào)的第n個(gè)點(diǎn)開(kāi)始加窗函數(shù)時(shí)的短時(shí)能量??梢钥闯?,短時(shí)能量可以看作語(yǔ)音信號(hào)的平方經(jīng)過(guò)一個(gè)線性濾波器的輸出,該線性濾波器的單位沖擊響應(yīng)為h(n),如圖1所示。
圖1 語(yǔ)音信號(hào)的短時(shí)平均能量實(shí)現(xiàn)框圖
沖激響應(yīng)h(n)的選擇,或者說(shuō)窗函數(shù)的選擇決定了短時(shí)能量表示方法的特點(diǎn)。為反應(yīng)窗函數(shù)選擇對(duì)短時(shí)能量的影響,假設(shè)式中的h(n)非常長(zhǎng),且為恒定幅度,那么En隨時(shí)間的變化將很小,這樣的窗就等效為很窄的低通濾波器。h(n)對(duì)x2(n)的平滑作用較顯著,無(wú)法反映語(yǔ)音的時(shí)變特性。反之,若h(n)序列長(zhǎng)度N過(guò)小,那么等效窗不能提供足夠的平滑,以至于語(yǔ)音振幅瞬時(shí)變化的許多細(xì)節(jié)仍被保留,從而看不出振幅包絡(luò)的變化規(guī)律。通常N的選擇與語(yǔ)音的基音周期相聯(lián)系,一般要求窗長(zhǎng)為幾個(gè)基音周期的數(shù)量級(jí)。
短時(shí)能量主要用于區(qū)分清音和濁音,因?yàn)闈嵋舯惹逡舻哪芰看蟮枚?其次可以用短時(shí)能量對(duì)有聲段和無(wú)聲段進(jìn)行判定,對(duì)聲母和韻母分界,以及對(duì)連字分界等。在語(yǔ)音識(shí)別系統(tǒng)中,短時(shí)能量一般也作為特征中的一維參數(shù)來(lái)表示語(yǔ)音信號(hào)能量的大小和超音段信息[1]。
短時(shí)能量的一個(gè)主要問(wèn)題是En對(duì)信號(hào)電平值過(guò)于敏感。由于需要對(duì)信號(hào)進(jìn)行平方運(yùn)算,在定點(diǎn)實(shí)現(xiàn)時(shí)容易產(chǎn)生溢出。解決這個(gè)問(wèn)題的方法是采用短時(shí)平均幅度來(lái)表示能量的變化,其公式是
與短時(shí)能量相比,短時(shí)平均幅度相當(dāng)于用絕對(duì)值之和代替了平方和,簡(jiǎn)化了運(yùn)算,窗長(zhǎng)N對(duì)平均幅度函數(shù)的影響與短時(shí)能量的分析結(jié)論是一致的。但平均幅度函數(shù)沒(méi)有平方運(yùn)算,因此其動(dòng)態(tài)范圍比短時(shí)能量小,接近于標(biāo)準(zhǔn)能量計(jì)算的動(dòng)態(tài)范圍的平方根。圖2是“西安工業(yè)大學(xué)”的波形圖。
圖2 “西安工業(yè)大學(xué)”波形圖
圖3是語(yǔ)音“西安工業(yè)大學(xué)”的短時(shí)能量分析圖,圖4是“西安工業(yè)大學(xué)”的短時(shí)平均幅度的分析圖。
從圖3和圖4中可以看到,盡管短時(shí)平均幅度也可用于區(qū)分清音和濁音,無(wú)聲和有聲,但二者之間的幅度差就不如短時(shí)能量那么明顯。
短時(shí)平均過(guò)零率是語(yǔ)音信號(hào)時(shí)域分析中的一種特征參數(shù)。它是指每幀內(nèi)信號(hào)通過(guò)零值的次數(shù)。對(duì)于連續(xù)語(yǔ)音信號(hào),可以考察其實(shí)域波形通過(guò)時(shí)間軸的情況。對(duì)于離散信號(hào),短時(shí)平均過(guò)零率實(shí)際就是信號(hào)采樣點(diǎn)符號(hào)變化的次數(shù)。短時(shí)平均過(guò)零率仍可以在一定程度上反映其頻譜性質(zhì),可以通過(guò)短時(shí)平均過(guò)零率獲得譜特性的一種粗略估計(jì)。短時(shí)平均過(guò)零率的公式為
其中,sgn是符號(hào)函數(shù)即
圖5給出了短時(shí)平均過(guò)零率的計(jì)算過(guò)程。
圖5 短時(shí)平均過(guò)零率的計(jì)算
首先對(duì)語(yǔ)音信號(hào)序列x(n)進(jìn)行成對(duì)處理,檢查是否有過(guò)零現(xiàn)象,若有符號(hào)變化,則表示有一次過(guò)零現(xiàn)象;然后進(jìn)行一階差分計(jì)算,取絕對(duì)值;最后進(jìn)行低通濾波。
短時(shí)平均過(guò)零率可以在一定程度上反映頻率的高低,因此在濁音段,一般具有較低的過(guò)零率,而在清音段具有較高的過(guò)零率,可用于初步判斷清濁音。
在矩形窗條件下,式可以簡(jiǎn)化為
圖6和圖7均是“西安工業(yè)大學(xué)”語(yǔ)音波形圖與短時(shí)平均過(guò)零率。
從圖中可以看出,在背景噪聲較小的情況下,短時(shí)能量較準(zhǔn)確,但當(dāng)背景噪聲較大時(shí),短時(shí)平均過(guò)零率可以獲得較好的檢測(cè)效果。有些發(fā)音僅用短時(shí)能量或短時(shí)平均過(guò)零率來(lái)判斷起點(diǎn)和終點(diǎn)比較困難,由于短時(shí)平均幅度更適合檢測(cè)濁音,而短時(shí)過(guò)零率更適合檢測(cè)清音,因此將短時(shí)平均幅度和短時(shí)平均過(guò)零率相結(jié)合進(jìn)行端點(diǎn)檢測(cè)是一種有效的端點(diǎn)檢測(cè)方法。
在開(kāi)始進(jìn)行端點(diǎn)檢測(cè)前,首先為短時(shí)能量和過(guò)零率分別確定兩個(gè)門限。一個(gè)是較低的門限,其數(shù)值較小,對(duì)信號(hào)的變化較敏感,很容易被超過(guò)。另一個(gè)是比較高的門限,數(shù)值較大,信號(hào)必須達(dá)到一定的強(qiáng)度,該門限才可能被超過(guò)。
基于Matlab程序?qū)崿F(xiàn)能量與過(guò)零率的端點(diǎn)檢測(cè)算法步驟如下:
(1)語(yǔ)音信號(hào)x(n)進(jìn)行分幀處理,每一幀記為,n=1,2,…,N,n為離散語(yǔ)音信號(hào)時(shí)間序列,N為幀長(zhǎng),i表示幀數(shù)。
(2)計(jì)算每一幀語(yǔ)音的短時(shí)能量,得到語(yǔ)音的短時(shí)幀能量
(3)計(jì)算每一幀語(yǔ)音的過(guò)零率,得到短時(shí)過(guò)零率
其中
(4)考察語(yǔ)音的平均能量設(shè)置一個(gè)較高的門限T1,用以確定語(yǔ)音開(kāi)始,然后再根據(jù)背景噪聲的平均能量確定一個(gè)較低的門限T2,用以確定第一級(jí)中的語(yǔ)音結(jié)束點(diǎn),T2=α1EN,EN為噪聲段能量的平均值,完成第一級(jí)判決。第二級(jí)判決同樣根據(jù)背景噪聲的平均過(guò)零率ZN,設(shè)置一個(gè)門限T3,用于判斷語(yǔ)音前端的清音和后端的尾音。α1,β1為經(jīng)過(guò)大量實(shí)驗(yàn)得到的經(jīng)驗(yàn)值。圖8是語(yǔ)音“西安工業(yè)大學(xué)”的端點(diǎn)檢測(cè)圖。
圖8 語(yǔ)音“西安工業(yè)大學(xué)”的端點(diǎn)檢測(cè)
圖8可以看到檢測(cè)結(jié)果:將短時(shí)平均能量和短時(shí)平均過(guò)零率結(jié)合,進(jìn)行端點(diǎn)檢測(cè),可以很好地檢測(cè)語(yǔ)音的開(kāi)始和結(jié)束。雖然這種方法可以有效地區(qū)分語(yǔ)音信號(hào)中的清音和噪聲,但它難區(qū)分語(yǔ)音信號(hào)中的濁音和噪聲,也存在檢測(cè)時(shí)漏掉某些音素這一問(wèn)題。因此對(duì)于端點(diǎn)檢測(cè)仍需進(jìn)一步研究。
針對(duì)聲紋識(shí)別系統(tǒng)所作的端點(diǎn)檢測(cè)前端處理,運(yùn)用Matlab實(shí)現(xiàn)了雙門限法端點(diǎn)檢測(cè)的編程和仿真,仿真結(jié)果顯示,端點(diǎn)檢測(cè)準(zhǔn)確識(shí)別率為93%。
[1]趙力.語(yǔ)音信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2010.
[2]韓紀(jì)慶,張磊,鄭鐵然.語(yǔ)音信號(hào)處理[M].北京:清華大學(xué)出版社,2004.
[3]何強(qiáng),何英.Matlab擴(kuò)展編程[M].北京:清華大學(xué)出版社,2002.
[4]張雪英.數(shù)字信號(hào)處理及Matlab仿真[M].北京:電子工業(yè)出版社,2010.
[5]尹巧萍,吳海寧,趙力.含噪語(yǔ)音信號(hào)端點(diǎn)檢測(cè)方法的研究[C].成都:2008'促進(jìn)中西部發(fā)展聲學(xué)學(xué)術(shù)交流會(huì)論文集,2008.
[6]劉建,鄭方,吳文虎.基于幅度差平方和函數(shù)的基音周期提取算法[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2006,46(1):74-77.
[7]張仁志,崔慧娟.基于短時(shí)能量的語(yǔ)音端點(diǎn)檢測(cè)算法研究[J].電聲技術(shù),2005(7):52 -59.
[8]陳艷.改進(jìn)的獨(dú)立分量分析在語(yǔ)音分離中的應(yīng)用[J].電子科技,2009,22(12):87-91.