牟 莉,佘石豪,孟玉茹
(西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710048)
基音周期是現(xiàn)代語(yǔ)音信號(hào)處理領(lǐng)域的一個(gè)重要參數(shù),準(zhǔn)確地提取和估算基音周期,是保證語(yǔ)音信號(hào)在人機(jī)交流中更有效地產(chǎn)生、傳輸、存儲(chǔ)、獲取和應(yīng)用的一個(gè)重要過程[1-2]?;糁芷跈z測(cè)在語(yǔ)音識(shí)別[3-4]、復(fù)雜時(shí)頻域交換的語(yǔ)音分析與合成[5-6]、低碼頻率語(yǔ)音編碼[7]、噪聲環(huán)境下的語(yǔ)音識(shí)別[8]、聽覺障礙的殘疾人語(yǔ)言指導(dǎo)[9]等多個(gè)領(lǐng)域有著廣泛地應(yīng)用。不同應(yīng)用領(lǐng)域下的基音周期檢測(cè)算法會(huì)直接影響到語(yǔ)音識(shí)別的識(shí)別率、合成語(yǔ)音是否真實(shí)再現(xiàn)原始語(yǔ)音信號(hào)、語(yǔ)音壓縮編碼的正確率。目前檢測(cè)基音周期的算法主要有主體-延伸法[10]、自相關(guān)函數(shù)(autocorrelation function,ACF)法[11]、平均幅度差函數(shù)(average magnitude difference function,AMDF)法[12]、倒譜法[13]、小波變換法[14]等。這些算法在無噪環(huán)境下提取基音周期比較準(zhǔn)確,但是在有噪環(huán)境下樣點(diǎn)檢測(cè)錯(cuò)誤率明顯增加,基音周期估計(jì)不夠理想,所以尋求一種抗噪能力強(qiáng),基音檢測(cè)精度高的算法是語(yǔ)音信號(hào)處理的一個(gè)重要環(huán)節(jié)。
主體-延伸法是適用于噪聲環(huán)境下的一種基音周期檢測(cè)算法[15],利用主體-延伸法對(duì)音調(diào)區(qū)域的前過渡音和后過渡音的區(qū)間內(nèi)提取一個(gè)音調(diào)基音估計(jì)參數(shù)時(shí),會(huì)存在估算周期值是其實(shí)際周期估計(jì)值的整數(shù)倍或半值,稱為“野點(diǎn)”問題[16]。文獻(xiàn)[17]提出利用譜減法對(duì)帶噪語(yǔ)音信號(hào)降噪,結(jié)合ACF法去除共振峰的響應(yīng),但是噪聲會(huì)將功率譜中較低的電平段覆蓋掉,導(dǎo)致語(yǔ)音信號(hào)的時(shí)頻域分析中出現(xiàn)錯(cuò)誤,檢測(cè)誤差隨之增加,效果不夠理想。文獻(xiàn)[18-19]利用小波變換準(zhǔn)確檢測(cè)出基音峰值點(diǎn),但對(duì)于語(yǔ)音信號(hào)幅度迅速產(chǎn)生變化時(shí),會(huì)直接出現(xiàn)均值下降的情況,基音周期估計(jì)的精度也不夠理想。
本文基于對(duì)音節(jié)組成的分析和基音周期檢測(cè)過程中存在的野點(diǎn)問題,提出了一種改進(jìn)的基音周期檢測(cè)算法。實(shí)驗(yàn)結(jié)果表明:該方法在有噪環(huán)境下可以改善基音頻率檢測(cè),估算的基音頻率曲線和實(shí)際的基音頻率曲線可以較好地重合,減少野點(diǎn)問題,一定程度上增加了基頻提取的準(zhǔn)確性。
為了能夠準(zhǔn)確地提取帶噪語(yǔ)音的信號(hào)的基音周期參數(shù),首先將帶噪語(yǔ)音的信號(hào)經(jīng)小波變換和譜減法相結(jié)合進(jìn)行消噪,語(yǔ)音增強(qiáng)后的信號(hào)中存在共振峰及殘留干擾噪聲,對(duì)減噪語(yǔ)音信號(hào)進(jìn)行2次加窗分幀。一方面對(duì)多個(gè)端點(diǎn)和元音的主體檢測(cè),另一方面通過數(shù)字帶通濾波[20]后更方便進(jìn)行多窗譜估計(jì)[21],得到過減因子并且保留譜減后的幅值,最后平滑處理,消除基音周期檢測(cè)中的部分野點(diǎn)。具體實(shí)現(xiàn)流程如圖1所示。
圖 1 基音周期檢測(cè)流程Fig.1 Flow chart of pitch period detection
譜減法降噪后的語(yǔ)音具有明顯的音樂噪聲[22],并且大大降低了對(duì)語(yǔ)音信號(hào)的準(zhǔn)確性和可懂程度,這是由殘留噪聲造成的。小波變換以傅里葉分析為基礎(chǔ),實(shí)現(xiàn)了時(shí)頻域局部變換和分析,能將信號(hào)在多尺度多分辨率上進(jìn)行小波分解,從而獲取信號(hào)中的局部信息。
設(shè)帶有干擾噪聲的語(yǔ)音信號(hào)時(shí)間序列為α(n),則該信號(hào)的附加噪聲模型可表示為
α(n)=β(n)+γ(n)
(1)
式中:β(n)為純凈語(yǔ)音信號(hào);γ(n)為加性噪聲。
因?yàn)檎Z(yǔ)音β(n)和噪聲γ(n)這2個(gè)參數(shù)是獨(dú)立且互不相關(guān)的,所以可以通過快速傅里葉變換(fast Fourier transform,F(xiàn)FT)得到第i幀的語(yǔ)音帶噪信號(hào)為αi(m),幀數(shù)的長(zhǎng)度設(shè)為N。分別對(duì)α(n),β(n),γ(n)進(jìn)行FFT,得到
(2)
則可以計(jì)算出帶噪語(yǔ)音信號(hào)α(n)的功率譜:
(3)
對(duì)其中任何一幀信號(hào)αi(m)進(jìn)行離散傅里葉變換(discrete Fourier transform,DFT)后,得
k=0,1,…,N-1
(4)
傳統(tǒng)譜減法實(shí)現(xiàn)降噪的主要原因是信號(hào)頻域幀內(nèi)的短時(shí)功率譜減去噪聲譜,但是計(jì)算過程中存在殘余功率譜,使得在頻域上產(chǎn)生很多的尖峰點(diǎn),不同幀之間有一定程度的重疊。為了有效防止增加處理后的信號(hào)的失真程度及其殘留的音樂噪聲,將小波變換的基函數(shù)引入到語(yǔ)音信號(hào)的時(shí)間序列,通過對(duì)小波基函數(shù)的平移和延遲、伸縮來實(shí)現(xiàn)多尺度的信號(hào)分析,分解低頻和高頻信息,自動(dòng)調(diào)整信號(hào)的時(shí)域窗和頻域窗大小以滿足實(shí)際語(yǔ)音信號(hào)分析的要求。
一段連續(xù)信號(hào)f(x)的小波變換可表示為
(5)
式中:φ(x)為時(shí)頻域上局部性質(zhì)較好的小波函數(shù)。
假設(shè)存在一個(gè)實(shí)數(shù)對(duì)(a1,b2),且參數(shù)a1>0表示一個(gè)尺度因子,參數(shù)b2表示一個(gè)位移因子。當(dāng)尺度因子和位移因子存在小波函數(shù)當(dāng)中時(shí),小波的基函數(shù)φa1,b2(x)可表示為
(6)
式中:φ(x)為母小波,是經(jīng)過移位和伸縮變換后所產(chǎn)生的一簇函數(shù)。
分析可知,小波會(huì)對(duì)時(shí)間序列進(jìn)行分解,低頻中丟失的信息由高頻捕獲。低頻信號(hào)接收器的時(shí)間分辨率相對(duì)較低而頻率信號(hào)分辨率相對(duì)較高;高頻信號(hào)接入點(diǎn)處的頻率分辨率相對(duì)較低而時(shí)間分辨率相對(duì)較高。最后重構(gòu)了不同尺度的小波系數(shù),使一些語(yǔ)音尖峰點(diǎn)被消除,從而獲得一些去噪后的有用語(yǔ)音信號(hào)。
為了提高基因檢測(cè)的可靠性,提出端點(diǎn)和元音主體檢測(cè)對(duì)第1次加窗分幀后的語(yǔ)音信號(hào)進(jìn)行預(yù)處理。由于語(yǔ)音信號(hào)的頭、尾部并不具有聲帶振動(dòng)那樣的周期性,所以采用能熵比法[23]進(jìn)行端點(diǎn)和元音主體檢測(cè)。設(shè)第1次加窗分幀后的語(yǔ)音信號(hào)在頻域中的短時(shí)能量可表示為
(7)
式中:L為幀長(zhǎng);i為第i幀;yi(n)為分幀處理后得到的第i幀語(yǔ)音信號(hào)。
根據(jù)語(yǔ)音幀的短時(shí)能量,可以確定一個(gè)較低的閾值,然后將該閾值和能熵比值比較,把大于能熵比值的部分作為有話段的端點(diǎn)候選值,端點(diǎn)檢測(cè)完成后再進(jìn)一步判斷有話段的元音主體。把端點(diǎn)候選值中能熵比較大的部分作為元音主體。
帶噪語(yǔ)音經(jīng)過第2次加窗分幀后,首先對(duì)同一信號(hào)序列求出直接譜[24],然后多個(gè)數(shù)據(jù)窗選取相互正交后求其平均值,最后通過計(jì)算得到直接譜估計(jì)和較小的譜估計(jì)方差[25]。由于過渡區(qū)間內(nèi)仍然存在一部分元音主體的共振峰和殘留噪聲影響,所以要將功率譜密度估計(jì)值在相鄰兩幀之間進(jìn)行平滑處理,然后平均得到減噪后的語(yǔ)音信號(hào)。
在相鄰幀之間對(duì)多窗譜功率譜密度估計(jì)值進(jìn)行平滑處理后求得的平滑功率譜密度函數(shù)Py(k,i)為
(8)
式中:i、j為幀數(shù);k為譜線數(shù);M為第i幀前后各取M幀。
噪聲的平均功率譜密度值Pn(k)為
(9)
式中:S為噪聲占有的幀數(shù)。
由式(8)、(9)可知,利用譜減關(guān)系可以計(jì)算增益因子:
(10)
式中:λ為過減因子;η為增益補(bǔ)償因子。過減因子λ和增益補(bǔ)償因子η只是一個(gè)參考數(shù)值,具體取多大值是和噪聲情況有關(guān)。若信噪比較大,λ可取小一點(diǎn),η可取稍大一點(diǎn);若信噪比較小,λ就得取大一點(diǎn),η取小一點(diǎn)。消噪后的語(yǔ)音有少量的音樂噪聲,適當(dāng)選擇過減因子λ的數(shù)值可以有效去除音樂噪聲,但過大的λ值會(huì)引起語(yǔ)音信號(hào)失真。
主體-延伸法是基于音節(jié)的組成原理[26],先對(duì)元音主體的基音進(jìn)行檢測(cè),再延伸到前后過渡區(qū)間檢測(cè)基音。以元音主體基音周期值為基準(zhǔn),向兩端過渡區(qū)間搜尋最接近于元音主體基音的周期值,這樣就能減少發(fā)生野點(diǎn)的現(xiàn)象。
元音主體的基音檢測(cè)是從用濾波后的每一幀分幀數(shù)據(jù)的自相關(guān)函數(shù)范圍內(nèi)尋找最大值對(duì)應(yīng)基音周期,但元音主體不完全是穩(wěn)態(tài)信號(hào)且會(huì)有野點(diǎn)發(fā)生,所以需要選用能熵比相對(duì)大的部分。
一般情況下,對(duì)過渡區(qū)間的基音檢測(cè)時(shí),此方法會(huì)將少部分輔音和尾音劃分到有話音段內(nèi),而聲帶對(duì)這部分輔音和尾音并沒有振動(dòng),同時(shí)其中也不存在相應(yīng)的基音。所以針對(duì)這個(gè)問題,設(shè)置c1和c22個(gè)閾值參數(shù),采樣周期取值范圍為10~15,以這個(gè)為約束要求,在相鄰兩幀或多幀之間的基音周期差值不大于c1和c2,即基因周期p在i與(i±1)兩幀之間要滿足
|P(i)-P(i+1|≤c
(11)
由于在過渡區(qū)間進(jìn)行基音檢測(cè)時(shí),在(i+1)點(diǎn)時(shí)有可能尋找不到滿足式(11)的數(shù)值,此時(shí)只能相隔一幀,甚至相隔多幀去尋找,在多幀之間要滿足
|P(i)-P(i+j)|≤c2,j≥2且j∈N
(12)
設(shè)置一個(gè)閾值參數(shù)T1,比例系數(shù)r2,用來判斷語(yǔ)音信號(hào)在延伸區(qū)間內(nèi)的端點(diǎn),可表示為
T1=Emax×r2
(13)
式中:Emax為過渡區(qū)間內(nèi)計(jì)算求得的能熵比的最大值。分析可知,在延伸區(qū)間的頭部、中部和尾部的有話音段中引入了新的閾值參數(shù)T1后,解決了多幀信號(hào)以元音主體基音周期為基準(zhǔn),向前后延伸區(qū)域判斷端點(diǎn),檢測(cè)其基音周期長(zhǎng)短。
在基音周期的檢測(cè)中,也會(huì)產(chǎn)生檢測(cè)錯(cuò)誤,使求得的基音周期軌跡中存在野點(diǎn)。為了去除基音周期檢測(cè)后的野點(diǎn),可以采用中值濾波[27]和線性平滑算法[28-29]相結(jié)合的方法來解決問題。
首先設(shè)置一個(gè)滑動(dòng)窗,將滑動(dòng)窗的中心移動(dòng)到輸入信號(hào)處,得到中值濾波器的輸出值,此值是滑動(dòng)窗內(nèi)輸入信號(hào)樣點(diǎn)的中值。然后結(jié)合線性平滑算法,用滑動(dòng)窗進(jìn)行線性濾波處理。
分析可知,中值平滑既可以有效地去除少量的野點(diǎn),又不會(huì)破壞數(shù)據(jù)在2個(gè)平滑段之間的階躍性變化。線性平滑在糾正輸入信號(hào)中不平滑處樣點(diǎn)值的同時(shí),也使附近各樣點(diǎn)的值得到了修改。
本次采樣的語(yǔ)音數(shù)據(jù)是在無噪聲環(huán)境下進(jìn)行錄制和完成的,錄入的內(nèi)容為“您好,西安,工程,大學(xué)”,設(shè)置的采樣頻率為8 kHz。先把信號(hào)截取、劃分成若干幀,每幀的長(zhǎng)度設(shè)置為25 ms,位移為10 ms,然后使用漢明窗處理。
將信噪比為5 dB的高斯白噪聲加在一段純凈語(yǔ)音信號(hào)中,然后采用Matlab進(jìn)行對(duì)比仿真實(shí)驗(yàn)?;糁芷跈z測(cè)采用的方法分別是ACF法、主體-延伸法、小波-自相關(guān)法、譜減-自相關(guān)法以及本文提出的改進(jìn)方法。傳統(tǒng)基音周期檢測(cè)的實(shí)驗(yàn)結(jié)果如圖2所示。
(a) ACF法的基音周期檢測(cè)
從圖2(a)可以看出,ACF基音周期檢測(cè)時(shí)出現(xiàn)倍頻和半值現(xiàn)象比較明顯,在無話音段提取的基音頻率存在誤差,識(shí)別出現(xiàn)錯(cuò)誤;圖2(c)、(d)通過ACF和其他基音周期檢測(cè)算法結(jié)合,結(jié)果顯示非有話音段幾乎不產(chǎn)生干擾基音頻率,基音周期提取的準(zhǔn)確性大幅提高,但是依然可以清楚地看到出現(xiàn)野點(diǎn)的數(shù)目。圖2(b)通過主體-延伸法檢測(cè)后使得一部分峰值曲線變得平滑,野點(diǎn)出現(xiàn)的情況減少,但它本身還是有局限性,比如有些語(yǔ)音信號(hào)還是不能正確地檢出其基音頻率。
圖3為本文改進(jìn)算法的基音周期和基音頻率波形圖。從圖3可以看出,估算出的基音頻率和實(shí)際基音頻率能很好地重合疊加在一起,并且周期曲線更平滑,出現(xiàn)野點(diǎn)的情況更少。所以改進(jìn)的主體-延伸法進(jìn)行基音周期提取后可以對(duì)有話音段進(jìn)行準(zhǔn)確提取。
圖 3 改進(jìn)算法的基音周期檢測(cè)結(jié)果Fig.3 Pitch period detection result of improved algorithm
2.1.1 性能指標(biāo)
改進(jìn)后的基音周期檢測(cè)算法性能的好壞由樣點(diǎn)率和野點(diǎn)數(shù)目共同決定。樣點(diǎn)率越大,野點(diǎn)數(shù)目越少,表明該方法的性能越好;樣點(diǎn)率越小,野點(diǎn)數(shù)目越多,表明該方法的性能越差。樣點(diǎn)率為有話段樣點(diǎn)數(shù)目與樣點(diǎn)總數(shù)目的比值。由于不同信號(hào)幀之間具有非穩(wěn)定性,使得基音能量傳遞過程中受到少部分噪聲干擾,非有話段中產(chǎn)生的樣點(diǎn)數(shù)也會(huì)影響基音周期樣點(diǎn)率水平的高低。
2.1.2 實(shí)驗(yàn)結(jié)果分析
本文提出的改進(jìn)算法通過實(shí)驗(yàn)仿真后,將以上各種基音周期檢測(cè)算法出現(xiàn)的有話段樣點(diǎn)數(shù)目及野點(diǎn)數(shù)目進(jìn)行對(duì)比分析。當(dāng)信噪比為5 dB時(shí),對(duì)比結(jié)果如表1所示。
表 1 對(duì)比結(jié)果
從表1可以看出,本文改進(jìn)的方法有較好的表現(xiàn),在有噪聲的環(huán)境下,提取到的有話段的樣點(diǎn)數(shù)目高于其他檢測(cè)方法,并且產(chǎn)生的野點(diǎn)數(shù)目最少,再分別計(jì)算各個(gè)檢測(cè)方法的樣點(diǎn)率:ACF法為49%,主體-延伸法為82%,小波-ACF法為76%,譜減-ACF法為79%,本文改進(jìn)的方法為87%。通過對(duì)主體-延伸法的改進(jìn)及野點(diǎn)的平滑濾波處理,獲得了較高的有話段樣點(diǎn)率,進(jìn)一步提高了基音檢測(cè)的準(zhǔn)確率。
加窗分幀操作是語(yǔ)音信號(hào)提取特征的預(yù)處理階段,為了驗(yàn)證2次加窗分幀對(duì)基音周期檢測(cè)的影響,取小波-譜減法消噪后的語(yǔ)音進(jìn)行消融實(shí)驗(yàn),對(duì)ACF法、主體-延伸法、WT-ACF法、譜減-ACF法以及本文改進(jìn)方法的有話段樣點(diǎn)數(shù)目、野點(diǎn)數(shù)目、樣點(diǎn)率進(jìn)行比較。缺少第1次、第2次加窗分幀的實(shí)驗(yàn)結(jié)果如表2、3所示。
表 2 缺少第1次加窗分幀
表 3 缺少第2次加窗分幀
從表2和表3可以看出,缺少了第1次加窗分幀處理后,有話段樣點(diǎn)數(shù)目、樣點(diǎn)率都呈下降的趨勢(shì),野點(diǎn)數(shù)目無明顯變化;缺少了第2次加窗分幀處理后,有話段樣點(diǎn)數(shù)目、樣點(diǎn)率無明顯變化,野點(diǎn)數(shù)目呈上升的趨勢(shì)。
分析可知,第1次加窗分幀的目的是進(jìn)行端點(diǎn)檢測(cè)和元音主體的檢測(cè);而第2次加窗分幀的目的是進(jìn)行基音檢測(cè),減少共振峰的影響。
為了進(jìn)一步檢驗(yàn)魯棒性和抗噪能力,分別加入信噪比為0dB、5dB、10dB、15dB的高斯白噪聲,對(duì)ACF法、主體-延伸法、WT-ACF法、譜減-ACF法以及本文改進(jìn)方法的基音周期檢測(cè)樣點(diǎn)率進(jìn)行比較,如表4所示。
表 4 不同信噪比下樣點(diǎn)率對(duì)比
從表4可以看出,在5種不同的信噪比環(huán)境下,WT-ACF法和譜減-ACF法在高信噪比下較ACF法有較大地提高,在低信噪比下這3種算法檢測(cè)的樣點(diǎn)率較低,效果不理想。在相同信噪比的情況下,本文改進(jìn)方法與其他4種算法相比較,其基音周期檢測(cè)樣點(diǎn)率有明顯地提高,信噪比為15 dB時(shí),樣點(diǎn)率達(dá)到92.0%,信噪比為0 dB時(shí),基音周期檢測(cè)樣點(diǎn)率也在90%以上。
從表4分析可知,當(dāng)信噪比大于0 dB時(shí),本文提出的改進(jìn)方法進(jìn)行基音周期檢測(cè)都能得到很好的效果,說明本文建議的基音檢測(cè)算法具有較強(qiáng)的抗噪性、更高的準(zhǔn)確性,并且魯棒性很好。
由上述實(shí)驗(yàn)仿真結(jié)果對(duì)比可知,本文提出的改進(jìn)方法對(duì)帶噪語(yǔ)音信號(hào)提取基音周期的效果更顯著,有效抑制了加性噪聲產(chǎn)生的殘留噪聲、共振峰以及野點(diǎn)等問題。同時(shí),改進(jìn)的方法進(jìn)行基音周期檢測(cè)完成后通過平滑濾波處理,對(duì)語(yǔ)音信號(hào)波形的破壞程度較小,穩(wěn)定性較高,提高了語(yǔ)音信號(hào)可懂度和有用話段基音提取的清晰度。
本文結(jié)合小波變換和譜減法對(duì)帶噪語(yǔ)音信號(hào)進(jìn)行消噪,再利用改進(jìn)的主體-延伸法進(jìn)行基音周期和基音頻率估計(jì)。仿真結(jié)果表明:本文改進(jìn)的方法效果更明顯,對(duì)抑制共振峰的產(chǎn)生和消除音樂噪聲效果較好,提高了基音周期檢測(cè)的精確度,同時(shí)使得檢測(cè)過程中產(chǎn)生的野點(diǎn)數(shù)目大幅減少,得到的頻率曲線平滑程度較高,魯棒性較好。但是在算法時(shí)間復(fù)雜度方面還需要進(jìn)一步優(yōu)化。