趙 霞
(西安航空學(xué)院 能源與建筑學(xué)院,西安 710077)
語音的端點(diǎn)檢測、音節(jié)劃分、聲韻分割、濁清判決等對語音信號的后續(xù)處理,如消噪、語音識(shí)別都有重要應(yīng)用。目前最常用的幾種方法有:能量、倒譜、頻譜特征、譜熵[1]、過零率、自相關(guān)函數(shù),以及它們的組合形式,如能零積[2]。在低噪環(huán)境下,很多方法都能夠檢測出語音端點(diǎn)和清音、濁音;部分方法,如能量法能夠很好地區(qū)分清音濁音或者濁音和背景噪聲。然而,清音作為絕大部分漢語詞語的起點(diǎn),其檢測不僅有一定難度,而且是否準(zhǔn)確對語音識(shí)別性能影響頗大[3]。
從產(chǎn)生原理上講,濁音是通過聲門調(diào)制、聲道影響和口腔輻射沖擊序列發(fā)出的一組能量并且具有一定規(guī)律性的語音;而清音則更像白噪聲,氣流的摩擦、爆破卻沒有聲帶的震動(dòng)。因此,將清音和白噪聲相互分離,還是比較困難的,特別是清音淹沒在白噪聲中時(shí)。
有些“穩(wěn)健性”的端點(diǎn)檢測方法實(shí)際上是通過消噪,清除掉語音中的噪聲[1-2],然后對信號進(jìn)行端點(diǎn)檢測的方法實(shí)際上改變了原信號,很可能會(huì)對清音部分產(chǎn)生比較大的傷害。有的學(xué)者使用基于子帶能量比[4-5]的方法或者信息熵[6]對清音進(jìn)行了檢測。但是這幾種方法在白噪聲下不能很好地檢測出清音來,大量的白噪聲被誤認(rèn)為是清音,甚至有些濁音也被誤檢為清音。
本文通過仿真試驗(yàn)發(fā)現(xiàn),在不考慮濁音的情況下,信息熵能夠比較好地區(qū)分白噪聲和清音,即使是在清音被白噪聲淹沒的情況下仍然能夠分辨出來,但由于清音和白噪聲的高頻特征,使得它們的信息熵變化比較大,也比較快,檢測時(shí)容易將連續(xù)清音分割成幾段清音。所以為了可靠地檢測出連續(xù)的清音,必須對語音的信息熵序列進(jìn)行平滑地處理。本文選擇小波濾波方法對信號進(jìn)行處理,仿真及結(jié)果顯示,這種方法能夠很好地從白噪聲及色噪聲中檢測出清音來,并且具有很好的穩(wěn)健性,在10 dB及以上條件下,完全可以檢測出噪聲中的清音來。
語音信號x(n)被加性白噪聲w(n)污染后的信號可表示為
zi(n)=xi(n)+wi(n)
(1)
式中:n=1,2,…,N;i為幀號。
信息熵的計(jì)算公式為[7]
(2)
式中,k=1,2,…,M;M為幀長。
譜熵的計(jì)算方法為:對信號先進(jìn)行傅里葉變換,然后進(jìn)行功率譜密度計(jì)算,最后根據(jù)功率譜密度計(jì)算熵值,就可以得到譜熵結(jié)果:
(3)
式中:Zi(k)為第i幀信號的M點(diǎn)FFT;M為FFT變換的長度,本文取值和幀長相等;pi(k)為第i幀信號的功率譜;*表示卷積計(jì)算;conj表示共軛。
對于任意信號f(t),其連續(xù)小波變換為[8]
FCWT(a,τ)=〈f(t),φa,τ(t)〉=
(4)
式中:a,τ分別為尺度因子(或者尺度參數(shù))和時(shí)間因子(或者位移參數(shù));φ為小波函數(shù);*表示共軛。
對連續(xù)小波變換,把尺度因子和時(shí)間因子離散化:
其中,a0,Ts分別是用來決定尺度因子和時(shí)間因子的離散化程度的參數(shù),得到離散小波變換為
(5)
離散小波變換的結(jié)果表明,相當(dāng)于使用了一對正交鏡像濾波器(QMF)對信號進(jìn)行高通濾波(相應(yīng)于小波函數(shù)和細(xì)節(jié)空間)和低通濾波(相應(yīng)于尺度函數(shù)和尺度空間),對應(yīng)的正交鏡像濾波器分別為g(p)和h(p)(p為濾波器級數(shù))[9],然后再進(jìn)行一次2倍下采樣,得到的小波系數(shù)(以3層分解為例)記為cA3、cD3、cD2、cD1分別是3層近似系數(shù)、3層細(xì)節(jié)系數(shù)、2層細(xì)節(jié)系數(shù)和1層細(xì)節(jié)系數(shù)。在重構(gòu)時(shí),使用QMF濾波器g(p)′和h(p)′對小波系數(shù)cA3、cD3、cD2、cD1的信號進(jìn)行濾波,再進(jìn)行一次2倍采樣。
本文選定了小波基后,對應(yīng)的正交鏡像濾波器記為g(p,waveletbasis)和h(p,waveletbasis);同時(shí),重構(gòu)正交濾波器記為g(p,waveletbasis)′和h(p,waveletbasis)′。
如圖1所示,當(dāng)使用16位量化,采樣率為11.025 kHz的語音,其內(nèi)容為英文“passage thirty-six”,信噪比為10.720 9 dB,分幀方法為:幀長256,幀移128,矩形窗。計(jì)算得到的譜熵顯示,譜熵基本上不會(huì)受到清音或白噪聲的影響,是一種很好的濁音檢測方法。

(a) 無噪信號

(b) 染噪信號

(c) 染噪信號的譜熵
圖1 染噪信號的譜熵
濁音的檢測方法如下:
(1) 按照式(3)計(jì)算每幀信號的譜熵值,組成譜熵序列。
(2) 選擇門限。選擇2個(gè)門限Thmax,Thmin,它們分別是某些非濁音段的譜熵最大值和最小值,可以根據(jù)語音信號前面和后面預(yù)留的無聲段進(jìn)行選擇。只有連續(xù)大于Thmax或者連續(xù)小于Thmin的譜熵對應(yīng)幀,才能被認(rèn)為是濁音。一般情況下,濁音的譜熵在開始時(shí)比較明顯,因此,為了提高濁音開始點(diǎn)檢測的準(zhǔn)確性,進(jìn)一步消除噪聲的影響,對兩個(gè)選定的門限進(jìn)行如下調(diào)整:
Thsmax=1.5Thmax
(6)
Thsmin=0.5Thmin
(7)
如果檢測到連續(xù)3幀信號的譜熵值都大于調(diào)整后的Thsmax,或者小于調(diào)整后的Thsmin,就認(rèn)為濁音開始。另外還需要注意的是,在噪聲很低情況下,根據(jù)信號噪聲得到的門限Thmax非常小,不能正確識(shí)別出濁音來,因此,需要對它設(shè)定一個(gè)下限,通過多次試驗(yàn)測定顯示,該下限設(shè)定為0.003能夠很好地滿足要求,并使得檢測無論是在高背景噪聲還是低背景噪聲下,都能夠有效地檢測出濁音來。
(3) 對濁音結(jié)束進(jìn)行相應(yīng)判斷。濁音雖然在開始時(shí)特征比較明顯,但是在結(jié)尾部分其特征卻是緩慢下降的,特別在尾音,甚至和噪聲或者清音的譜熵相當(dāng)。因此,為了檢測到更精確的濁音結(jié)束點(diǎn),需要對濁音的結(jié)束條件加強(qiáng)約束。這里使用的約束方法是:使用調(diào)整前的門限Thmax和Thmin。結(jié)果表明,使用不同門限對濁音開始和結(jié)束進(jìn)行判斷時(shí),得到的檢測效果有一定進(jìn)步。如果檢測到連續(xù)3幀信號譜熵都小于Thmax,并且大于Thmin,認(rèn)為濁音結(jié)束。
對于檢測后確定為濁音的信號部分,將其全部置零,然后使用該信號進(jìn)行清音檢測。
根據(jù)分析,熵函數(shù)對清音和白噪聲有一定的分辨能力,如圖2(a)、(b)所示,在時(shí)域信號中,當(dāng)清音和白噪聲無法辨認(rèn)情況下,使用信息熵仍然能夠在一定程度上區(qū)分出清音來。為了能夠更好地檢測和提高分辨能力,在檢測清音時(shí),使用的幀長為128,幀移為64。清音檢測方法如下:
(1) 根據(jù)式(2)對分幀后的各幀信號計(jì)算其信息熵序列(見圖2(b))。
(2) 使用小波濾波方法對熵進(jìn)行平滑和連續(xù)性處理。如圖2(b)所示,雖然清音有明顯的信息熵尖峰存在,但是由于選擇的門限不一定是最優(yōu)的,同時(shí)隨機(jī)的白噪聲有可能在某個(gè)短暫的時(shí)刻超過門限,并且即便是清音,由于它和白噪聲的相似性,也有可能出現(xiàn)連續(xù)清音中低于熵值門限的情況,這些都會(huì)使連續(xù)的清音被分割成許多不連續(xù)的部分。同時(shí)也會(huì)增加個(gè)別白噪聲信息熵尖峰影響檢測結(jié)果的可能性。因此,在這里采用小波濾波對信號的信息熵序列進(jìn)行平滑處理。
通過仿真試驗(yàn),發(fā)現(xiàn)使用db2小波對信息熵序列進(jìn)行了2層分解,然后,使用haar小波和小波系數(shù)cA2進(jìn)行重構(gòu),能更好地獲得平滑作用,如圖2(c)所示。每個(gè)正交小波基都對應(yīng)了一組正交鏡像濾波器,本文使用db2進(jìn)行小波分解,并用haar小波進(jìn)行重構(gòu),相當(dāng)于使用了g(p,db2)和h(p,db2)對輸入信號進(jìn)行高通和低通濾波,并用g(p,haar)′和h(p,haar)′對上述采樣后的小波系數(shù)進(jìn)行高通和低通濾波。選擇haar小波,主要是因?yàn)樗男螤铑愃凭匦危迷谥貥?gòu)中,能使重構(gòu)后的信號有一定的類似矩形結(jié)構(gòu)(見圖2(c)),從而保證了平滑效果,稱為塊化效應(yīng)。

(a) 去除噪聲后的染噪信號

(b) 剩余染噪信號的熵

(c) db2分解haar重構(gòu)

(d) dmey分解haar重構(gòu)
圖2 去除濁音后的染噪信號的信息熵
但是,當(dāng)觀察到3(c)中的某些比較明顯的清音部分,如3(b)中第40幀左右位置的一個(gè)尖峰在平滑后消失了。經(jīng)過仿真試驗(yàn)發(fā)現(xiàn),如果使用dmey小波對信息熵進(jìn)行分解,并使用haar小波進(jìn)行重構(gòu),能使清音部分的信息熵值更多地保留下來,重構(gòu)效果如圖2(d)所示。同時(shí)發(fā)現(xiàn),雖然單單使用dmey小波可以更好地檢測出被忽略的清音,但是又會(huì)因?yàn)槠淦交Ч蝗鏳b2好,而造成許多連續(xù)清音的斷裂。因此,選擇同時(shí)使用這兩種小波基來進(jìn)行小波分解和重構(gòu),之后將檢測到的清音段進(jìn)行疊加。結(jié)果顯示,這種操作既可以避免清音斷裂情況的出現(xiàn),又能夠很好地檢測出一些輕微的被淹沒的清音來。
平滑處理后,根據(jù)信號各幀的信息熵水平,選擇合適的門限,再對清音幀進(jìn)行判斷。因?yàn)榍逡艉桶自肼暦浅O嗨疲瑸榱颂岣邫z測精度,除了縮短幀長及幀移以外,在選擇門限時(shí),也應(yīng)當(dāng)避免選擇非清音幀對應(yīng)的最大熵值,而應(yīng)該在可以接受的條件下,選擇比較小且能比較好地區(qū)分清音和白噪聲的門限。本文具體的處理方法為:計(jì)算信號前后部分幀的熵值,從中選擇次大的作為門限,如果連續(xù)2幀信號大于該門限,就認(rèn)為清音開始,若連續(xù)2幀信號的信息熵小于該門限,就認(rèn)為清音結(jié)束。
在濁音檢測及清音檢測完成后,需要對結(jié)果進(jìn)行一些調(diào)整,因?yàn)閷嵋舨糠种昧愫头謳紩?huì)使得清音和濁音的邊界產(chǎn)生模糊,可能會(huì)使某些已被檢測為濁音的部分又被檢測為清音,因此,在出現(xiàn)這種情況時(shí),應(yīng)當(dāng)認(rèn)為這些重疊部分是濁音,而將清音檢測的開始點(diǎn)后移到濁音結(jié)束的下一個(gè)位置,或者將清音檢測的結(jié)束點(diǎn)前移到濁音開始的上一個(gè)位置。最終的檢測結(jié)果如圖3所示。
圖3(a)是染噪信號,圖3(b)是檢測到的濁音和清音內(nèi)容。上面的方框內(nèi)是濁音部分,下面的方框內(nèi)是清音部分。在該語音中,“passage thirty-six”一共有5個(gè)濁音,分別是// /ei/ /з:/ /i/ /i/,已經(jīng)被全部檢測出來,清音共有7個(gè),分別是/p/ /s/ /d/ /θ/ /t/ /s/ /ks/,除了“six”中s的發(fā)音被檢測為兩段外,其他部分都被檢測出來了。而這些清音中的大部分是淹沒在白噪聲中的,如圖3(a)所示。

(a) 染噪語音

(b) 清音檢測結(jié)果
圖3 染噪信號清音檢測結(jié)果
使用內(nèi)容為“passage thirty-six”的語音,在不同信噪比下進(jìn)行清音檢測,檢測結(jié)果如圖4所示,噪聲類型為白噪聲。其中圖(f)為無噪聲條件下濁音、清音的檢測結(jié)果,(a)~(e)分別為5、10、15、20、25 dB下的檢測結(jié)果。圖中顯示,本文提出的方法,在10 dB及以上信噪比條件下,取得的檢測結(jié)果很好,特別是10 dB條件下,而此時(shí)的清音基本上已經(jīng)被白噪聲所掩蓋。

(a)

(b)

(c)

(d)

(e)

(f)
圖4 不同信噪比下的檢測結(jié)果(本文方法+白噪聲)
隨機(jī)在馬路上采集一段實(shí)際噪聲,然后加入到上述純語音中,分別使用本文中方法和基于子帶的方法[5]進(jìn)行清音檢測,得到的結(jié)果如圖5和圖6所示。信噪比順序與圖4中的相同。

(a)

(b)

(c)

(d)

(e)

(f)
圖5 不同信噪比下的檢測結(jié)果(本文方法+實(shí)際噪聲)

(a)

(b)

(c)

(d)

(e)

(f)
圖6 不同信噪比下的檢測結(jié)果(子帶方法+實(shí)際噪聲)
通過對比可以明顯得到,本文的方法能夠檢測出更多清音來,并且其魯棒性也明顯優(yōu)于基于子帶的方法。
在語音信號的端點(diǎn)檢測及聲韻分割等技術(shù)中,困難主要在于清音的有效檢測。使用本文的方法,能夠?qū)⑺械臐嵋艉蛶缀跞康那逡艉芎玫刈R(shí)別出來,即使在清音完全掩蓋在噪聲中時(shí)(包括白噪聲和實(shí)際噪聲),本文的方法仍然可以很好地檢測到清音。
濁音、清音、無聲段的檢測對于語音增強(qiáng)、語音識(shí)別都有重要的意義。以語音增強(qiáng)為例,通過對各種典型語音使用小波收縮法進(jìn)行消噪[10]時(shí),在小波基的選擇上,對濁音段使用dmey小波,對無聲段使用haar小波能夠取得更好的效果。同時(shí),其他消噪?yún)?shù),如閾值算法等的選擇,也需要分辨語音是否是清音[4-6],然后再進(jìn)行處理。
本文中,判決門限,包括濁音判決和清音判決,對于結(jié)果而言都是非常重要的。本文使用的門限估算方法為全部語音信號前后的無音幀的(譜)熵最大值與最小值的加權(quán)處理。因此,該方法要求語音前后要有一定的無聲段用來估計(jì)門限,若能與自適應(yīng)方法相結(jié)合使用,會(huì)取得更好的效果。