朱徐來, 馮 俊
語音信號(hào)是人所發(fā)出來的聲音,人類產(chǎn)生語音的發(fā)音器官有肺部、氣管、喉、咽、鼻腔、口腔和上、下唇,所以語音從人的口腔發(fā)出來之前,就受到這些器官的干擾,然后在傳輸過程中又受到各種環(huán)境的干擾,去除這些干擾,還原語音本身,有著非常重要的研究價(jià)值和實(shí)際意義。
語音信號(hào)的能量隨著時(shí)間變化比較明顯,不同的人,語音的能量會(huì)不同,即使是同一個(gè)人,在不同的場(chǎng)合和環(huán)境下,語音的能量也會(huì)有區(qū)別。而能量最大的差別還在于語音的分類,如清音和濁音,一般清音部分的能量比濁音的能量小得多,而無聲段的能量又比清音部分小得多。對(duì)于一般環(huán)境下的清音和無聲段,清音段的能量比無聲段高三四倍左右,可以用能量來區(qū)分,但是如果無聲段中加入了背景噪聲和高斯白噪聲,就無法用能量來衡量哪些部分是清音段,哪些部分是無聲段了[1][2]。短時(shí)能量的表達(dá)式如下:
(1)
其中,h(n)=w2(n),En表示信號(hào)進(jìn)行了加窗處理,代表第n個(gè)點(diǎn)的短時(shí)能量。因?yàn)榉蔷€性時(shí)變的信號(hào)處理非常繁瑣,針對(duì)語音信號(hào)的特點(diǎn)和人耳的掩弊效應(yīng),我們采用窗函數(shù)來截取一段語音信號(hào),在10ms-30ms之間,語音信號(hào)可以認(rèn)為是線性時(shí)不變的信號(hào),這樣就可以用線性時(shí)不變系統(tǒng)來處理語音信號(hào),降低了復(fù)雜度并且也能滿足實(shí)時(shí)性的要求。
短時(shí)平均過零率是語音信號(hào)的一種基本參數(shù),它是指用窗函數(shù)截取的每幀內(nèi)信號(hào)通過零值的次數(shù),也就是在時(shí)域波形上語音信號(hào)的波形通過X軸的次數(shù)。對(duì)于離散信號(hào),短時(shí)平均過零率處理相對(duì)比較簡單,它實(shí)質(zhì)上就是信號(hào)采樣點(diǎn)符號(hào)變化的次數(shù)。如果是正弦信號(hào),處理就要復(fù)雜的多,它的平均過零率就是信號(hào)的頻率除以兩倍的采樣頻率,而采樣頻率是固定的,因此過零率在一定程度上可以反映出頻率的信息。因?yàn)檎Z音信號(hào)不是簡單的正弦序列,在X軸附近可能會(huì)出現(xiàn)虛假的過零率,所以平均過零率的表示方法就不那么確切。為了使平均過零率更能準(zhǔn)確的反映語音信號(hào)的特征,常見的做法是選取一定的門限值,以通過該門限值的正負(fù)值,才算一次過零,這樣計(jì)算短時(shí)平均過零率就有一定的抗干擾能力,并在一定程度上反映其頻譜性質(zhì),可以通過短時(shí)平均過零率獲得譜特性的一種粗略估計(jì)[1,3,5]。短時(shí)平均過零率的公式為:
其中,sgn[·]是符號(hào)函數(shù),即
短時(shí)平均過零率可以用于判斷濁音和清音,以及無聲段和有聲段。發(fā)濁音時(shí),聲帶振動(dòng),因而聲門激勵(lì)是頻率為基頻的聲壓波,它在經(jīng)過聲道時(shí)產(chǎn)生共振。盡管聲道有若干個(gè)共振峰,但由于聲門的影響,其能量分布主要集中在3KHz頻率范圍內(nèi);反之,在發(fā)清音時(shí),聲帶不振動(dòng),聲道的某部分受到阻塞產(chǎn)生類白噪聲的激勵(lì),該激勵(lì)通過聲道后能量集中在比濁音時(shí)更高的頻率范圍內(nèi)。因此,濁音時(shí)的能量集中于低頻段,而清音的能量集中在高頻段。由于短時(shí)平均過零率可以在一定程度上反映頻率的高低,因此在濁音段,一般具有較低的過零率,而在清音段具有較高的過零率,這樣可以用短時(shí)平均過零率來初步判斷清音和濁音[1,4,5]。
本文提出的方法,是在一般環(huán)境下,針對(duì)噪聲的特點(diǎn),這里我們假設(shè)的噪聲主要是高斯白噪聲,給出了利用短時(shí)能量和短時(shí)平均過零率來去除噪聲的方法。首先選取一定的閾值,閾值采用sqrt(2*log(div)/(10^(snr/10)))公式計(jì)算,根據(jù)濁音、清音和噪聲的短時(shí)能量值
nl3=[zeros(1,1/8*div),cd3,
zeros(1,3/4*div)];
nl2=[zeros(1,1/4*div),cd2,
zeros(1,1/2*div)];
nl1=[zeros(1,1/2*div),cd1];
來區(qū)分濁音和清音與噪聲,其中div代表的語音幀長(實(shí)驗(yàn)中我們選取值為256)。通過比較可以得出濁音幀。
然后利用短時(shí)平均過零率,采用修正的短時(shí)平均過零率,設(shè)定一個(gè)門限值,公式如下:
Z1(i)=Z1(i)+abs(sign(x(j)-0.2)
-sign(x(j-1)))
區(qū)分出清音與噪聲,通過比較得出的噪聲部分,直接去除,最后把語音幀(包括前面判斷的濁音與清音)與高斯白噪聲做差,恢復(fù)原始語音信號(hào)。
仿真環(huán)境,采用Microsoft Windows XP Professional 版本2002,Service Pack 3,Intel(R) Core(TM)2 Duo CPU L7500 @1.60GHz 1.18GHz,1.97GB的內(nèi)存。
仿真步驟如下:
(1)語音信號(hào)的采集:利用Windows下的錄音機(jī),錄制一段話音,本次試驗(yàn)隨機(jī)的抽取了兩個(gè)人的聲音,分別為一個(gè)男生和一個(gè)女生,錄制的時(shí)間也采用了不同的時(shí)段。然后在Matlab軟件平臺(tái)下,利用函數(shù)wavread對(duì)語音信號(hào)進(jìn)行采樣,播放語音信號(hào),并繪制原始語音信號(hào);
(2)對(duì)原始信號(hào)加入噪聲:對(duì)原始語音信號(hào)加入n=awgn(s,snr)的噪聲,也就是高斯白噪聲,播放加入噪聲信號(hào)的語音信號(hào),并繪制波形圖;
(3)運(yùn)用文中的方法,對(duì)疊加噪聲后的信號(hào)進(jìn)行分析,去除噪聲,恢復(fù)原始的語音信號(hào),然后把前后的信號(hào)進(jìn)行對(duì)比,分析信號(hào)的變化,回放語音信號(hào),并繪制波形圖。
圖1為一女生唱的英文歌曲,時(shí)間為19S。
圖1
圖2為一男生說的一段話,時(shí)間8S。
圖2
根據(jù)恢復(fù)信號(hào)的播放效果來看,能夠滿足人耳的需求。從時(shí)域的波形圖上也可以看出,文中的方法,在一般的環(huán)境下,在保證語音信號(hào)質(zhì)量的情況下,可以有效的去除噪聲,達(dá)到了去除噪聲的目的。
本文的方法達(dá)到了去除噪聲的目的,并且體現(xiàn)了一般性,有著實(shí)際的使用價(jià)值。這種方法對(duì)于信噪比非常低的語音信號(hào),或者環(huán)境非常惡劣的情況下,處理的效果就不太理想了。另外對(duì)于語音質(zhì)量要求非常高的場(chǎng)合,如錄制DVD、CD等,文中的方法就不能滿足其要求,需要對(duì)特定的環(huán)境下進(jìn)行去噪聲處理。
[參 考 文 獻(xiàn)]
[1] 韓紀(jì)慶,張磊,鄭鐵然.語音信號(hào)處理[M].北京:清華大學(xué)出版社,2008.
[2] 國雁萌,盛任農(nóng),牟英良.基于能量和濁音特性的語音端點(diǎn)檢測(cè)[J].計(jì)算機(jī)工程與應(yīng)用,2006(26):43-46.
[3] MRTIN A,MAUUARY L.Voicing parameter and energy based speech/nonspeech detection for speech recognition in adverse conditions [C]//Proceedings of EuroSpeech 03.Geneva;[s.n.],2003:3069-3072.
[4] 易克出,田斌,付強(qiáng).語音信號(hào)處理[M].北京:國防工業(yè)出版社,2000.
[5] Andrei Grebennikov. RF and m icnow ave power am plifier design[M].McG raw-Hill Companies,2005.