馮起斌,李鴻燕
(太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,山西 晉中 030600)
基音周期是語音信號(hào)的一個(gè)重要特征參數(shù),能否準(zhǔn)確地估計(jì)基音周期的大小在語音識(shí)別和分離、說話人識(shí)別及跟蹤等語音處理應(yīng)用中有著至關(guān)重要的作用?;驒z測(cè)的典型方法包括自相關(guān)函數(shù)法、倒譜法、小波變換法、線性預(yù)測(cè)法,以及在此基礎(chǔ)上衍生的多種算法[1-3],這些算法可以在無噪聲或高信噪比環(huán)境下檢測(cè)出被測(cè)語音的基音周期。但是,隨著信噪比的降低,基音的線索會(huì)受到極大的干擾,導(dǎo)致算法在低信噪比境下不再適用。因此,低信噪比環(huán)境下的基音估計(jì)問題成為近年來該領(lǐng)域的熱點(diǎn)研究課題。
為在低信噪比環(huán)境下獲得較好的基音檢測(cè)效果,很多算法都采取了相應(yīng)的措施,例如近幾年提出的PEFAC 法[4-5],該算法可以壓縮抑制部分噪聲,因此在低信噪比環(huán)境下能保持一定的基音檢測(cè)率,但是隨著噪聲強(qiáng)度的增加,語音信號(hào)的諧波結(jié)構(gòu)遭到破壞[6],完整的基音周期變得難以分辨,使得檢測(cè)效果變得不盡人意。
分類算法相較于回歸預(yù)測(cè)在基音周期的估計(jì)中對(duì)語音要求少,使用更加靈活。支持向量機(jī)(Support Vector Machine,SVM)追求在有限的信息條件下獲得最優(yōu)的結(jié)果,有著很強(qiáng)的非線性分類能力。在解決小樣本、非線性及高維模式識(shí)別中表現(xiàn)出許多特有的優(yōu)勢(shì)[7],非常適用于語音的處理。
針對(duì)低信噪比環(huán)境下的基音檢測(cè)問題,本文提出一種基于多分類支持向量機(jī)的基音檢測(cè)算法,該算法提取語音信號(hào)的對(duì)數(shù)頻域信息作為特征,通過支持向量機(jī)多分類器對(duì)帶噪語音的頻域信息與對(duì)應(yīng)基音周期之間的非線性映射關(guān)系進(jìn)行建模;通過優(yōu)化參數(shù)對(duì)其進(jìn)行訓(xùn)練,從而減少噪聲的影響,并利用主體延伸法選取出最合適的基音曲線,完成基音檢測(cè)。
本文提出的基于多分類支持向量機(jī)的基音檢測(cè)算法,可以分為模型訓(xùn)練、獲取基音候選值和產(chǎn)生基音估計(jì)曲線三個(gè)部分。圖1為該算法的原理框圖。
圖1 基于多分類支持向量機(jī)的基音檢測(cè)算法原理框圖Fig.1 Principle diagram of pitch detection algorithm based on multi-class support vector machine
當(dāng)讀取一段語音文件時(shí),最初常常獲得的是語音信號(hào)的波形圖,這種時(shí)域特征所含信息冗余巨大,且并不能直接反映該語音基音的本質(zhì)特征,將其直接用作分類特征時(shí),不但耗時(shí),而且會(huì)影響分類效果。因此,本文選取信號(hào)的頻域特征作為分類依據(jù)[8]。
將待處理的語音信號(hào)通過短時(shí)傅里葉變換到頻域,第t幀信號(hào)在頻率f處的功率譜密度為Xt(f),表達(dá)式如下:
式中:ak,t代表第t幀信號(hào)的K個(gè)諧波中第k個(gè)諧波的能量;f0為該幀信號(hào)的基音頻率;Nt(f)表示該幀信號(hào)所含噪聲的功率譜密度。將得到的功率譜密度函數(shù)轉(zhuǎn)換到對(duì)數(shù)域,表示為Xt(q),其中q=logf,按式(2)進(jìn)行規(guī)整化處理:
式中:L(q)表示長(zhǎng)時(shí)平均語音譜為第t幀經(jīng)過平滑后的平均語音譜;而為規(guī)整化處理后的對(duì)數(shù)域功率譜密度。為了增強(qiáng)其諧波特性,將規(guī)整化后的功率譜密度通過一個(gè)擴(kuò)展峰值的濾波器,濾波器定義為:
式中:α用于控制峰值寬度;選取β使得K為濾波器捕獲的諧波數(shù)。
式中,Yt(q)包含基音的相關(guān)信息,可以根據(jù)峰值的大小及其位置來估計(jì)基音周期的大小,若被測(cè)語音信號(hào)信噪比較高,則Yt(q)會(huì)在q=logf0處產(chǎn)生最大值。
然而,在低信噪比環(huán)境下,很難在噪音的干擾下尋找出代表基音的峰值。針對(duì)此問題,本文以卷積結(jié)果Yt(q)為基礎(chǔ),使用多分類支持向量機(jī)從中計(jì)算出該幀語音可能的基音大小作為對(duì)應(yīng)的基音候選值。
由于語音信號(hào)在短時(shí)間內(nèi)有一定的相關(guān)性,為了提高檢測(cè)準(zhǔn)確率,將第t幀結(jié)果與附近兩幀合并,所得結(jié)果即為最終提取到的特征:
1.2.1 SVM 模型構(gòu)造
最基本的SVM 是為尋求兩類線性可分樣本間的最優(yōu)分類面而提出的,本文選擇的SVM 分類器是在其基礎(chǔ)上發(fā)展來的C-SVM 分類器[9]。該分類器用核函數(shù)K(xi,x)將線性不可分的樣本映射到高維空間,并在這個(gè)新空間中尋找樣本的分類超平面,而對(duì)無法用直線完全正確劃分的近似可分問題,C-SVM 用懲罰參數(shù)C表示對(duì)錯(cuò)誤分類的懲罰程度。用有l(wèi)個(gè)樣本的集合T=訓(xùn)練 C-SVM,其中xi∈Rn,代表第i個(gè)樣本的數(shù)據(jù)值,yi是第i個(gè)樣本的標(biāo)簽,訓(xùn)練公式如下:
式中,ai為第i個(gè)樣本的 Lagrange 乘子,對(duì)式(6)求得最優(yōu)解從中選取一個(gè)分量使得:
最后得到?jīng)Q策函數(shù):
對(duì)C-SVM 分類器來說,懲罰參數(shù)C和核函數(shù)中參數(shù)γ的選擇是能否取得滿意分類效果的關(guān)鍵。γ過大會(huì)造成過學(xué)習(xí)問題,過小則會(huì)產(chǎn)生欠學(xué)習(xí)問題,C的大小則會(huì)影響SVM 的經(jīng)驗(yàn)風(fēng)險(xiǎn)和置信區(qū)間之間的平衡。
本文使用網(wǎng)格尋優(yōu)方法在有限的范圍內(nèi)尋找到合適的參數(shù)C以及γ的大小,主要過程是參數(shù)C以及γ以一定的間隔進(jìn)行取值然后各選一值進(jìn)行組合,在n×m種組合結(jié)果中取令分類結(jié)果最佳的一組為最終的參數(shù)尋優(yōu)結(jié)果。
單個(gè)的SVM 分類器只能解決二分類問題,在解決多分類問題時(shí),需要將多個(gè)二值SVM 分類器按一定方法組合構(gòu)成多類分類器。在本文中,將多個(gè)C-SVM 分類器以一對(duì)一的形式進(jìn)行組合,構(gòu)成SVM 多分類器,如圖2所示。
圖2 一對(duì)一SVM 多分類器構(gòu)成示意圖Fig.2 Structure diagram of one-to-one SVM multi-classifier
對(duì)于一個(gè)K分類的問題,需要個(gè)二值SVM 分類器,每個(gè)分類器對(duì)兩種類型進(jìn)行投票,最后得票數(shù)最多的種類即為輸入樣本所屬的種類。
1.2.2 C-SVM 多分類器的模型構(gòu)造及訓(xùn)練
首先確定分類范圍及類型。人類說話的基音可信范圍60~400 Hz,是一個(gè)連續(xù)的范圍,故在作為分類結(jié)果時(shí)要先進(jìn)行量化處理。誤差在大小相同的情況下,對(duì)低頻區(qū)的影響要遠(yuǎn)遠(yuǎn)高于高頻區(qū),因此在低頻區(qū)量化點(diǎn)數(shù)比較稠密,而在高頻區(qū)則相對(duì)稀疏?,F(xiàn)用每8 度24 個(gè)頻點(diǎn)[10]將整個(gè)基音可信范圍量化為67 個(gè)狀態(tài),即s1,s2,…,s67。其中第m個(gè)狀態(tài)對(duì)應(yīng)的基音頻率是Hz,加上清音狀態(tài),記作s0,共計(jì) 68 個(gè)狀態(tài)作為SVM 分類器的分類結(jié)果。
在實(shí)驗(yàn)的訓(xùn)練階段,將提取到的特征值作為輸入數(shù)據(jù),每幀所對(duì)應(yīng)的標(biāo)準(zhǔn)基音頻率作為輸出進(jìn)行訓(xùn)練,得到訓(xùn)練好的SVM 多分類器模型。
1.2.3 獲取基音候選值
對(duì)于一個(gè)待估計(jì)的語音信號(hào),進(jìn)行分幀處理后通過特征提取模塊以降低其與基音無關(guān)的冗余。將每幀信息所對(duì)應(yīng)的特征輸入到已構(gòu)造并訓(xùn)練好的C-SVM 多分類器模型中,這種一對(duì)一多分類器將會(huì)對(duì)所有可能的基音狀態(tài)進(jìn)行投票,取得票數(shù)最多的三個(gè)狀態(tài)作為該幀信號(hào)基音的候選值,即第t幀所對(duì)應(yīng)的基音候選值是這三個(gè)基音候選值所獲得的票數(shù)由大到小排列,即該幀信號(hào)基音狀態(tài)是Z1(t)的可能性最大,其余兩個(gè)的可能性依次減少。
獲得基音候選值后,本文采用一種主體延伸的方法,結(jié)合幀與幀之間的時(shí)序信息,在候選基音中選取合適值連接起來作為被測(cè)信號(hào)的基音狀態(tài)估計(jì)曲線。
由于語音在短時(shí)間內(nèi)可以看作是穩(wěn)定的,即語音的清濁交替不會(huì)在很短的時(shí)間內(nèi)完成多次,因此當(dāng)判斷的清音段和濁音段比較短時(shí),可以認(rèn)為這段時(shí)間內(nèi),基音的判斷并不準(zhǔn)確。因此,以可能性最大的Z1(t)為基礎(chǔ),進(jìn)行基音狀態(tài)曲線的勾畫。首先從整條測(cè)試語音的第1 幀開始向后尋找連續(xù)的清音段或是濁音段,如圖3中的段 1 到段 5 所示。
圖3 主體延伸法示意圖Fig.3 Schematic diagram of main body extension method
選取長(zhǎng)度大于40 ms 的濁音段和長(zhǎng)度大于70 ms 的清音段作為主體。設(shè)段1、段3 和段5 滿足上述條件,被認(rèn)為是主體。然后依照主體向后延伸,直到下一個(gè)主體,第一個(gè)主體(即段1)還需要向前延伸,延伸部分應(yīng)與主體性質(zhì)保持一致。
當(dāng)主體為一段清音序列時(shí),在延伸過程中將遇到的濁音序列認(rèn)為是被誤判作濁音幀的清音幀,予以修正。而當(dāng)主體是一段濁音幀時(shí),在延伸過程中遇到的清音序列需要通過其余基音候選值進(jìn)行修正。若從第t幀開始需要修正,則修正方法如下:
式中:A(t)為第t幀的基音估計(jì)狀態(tài);而A(t-1)則為前一幀的基音估計(jì)狀態(tài)。通過上述步驟可以將零散的基音候選值連接成基音狀態(tài)估計(jì)曲線,經(jīng)過反量化處理后獲得基音估計(jì)曲線,反量化公式為:
式中,B(t)為第t幀信號(hào)的基音估計(jì)值,單位為Hz。隨后通過三點(diǎn)平滑處理,使得每幀之間過渡更加合理,最終得到被測(cè)信號(hào)的基音估計(jì)曲線。
本文訓(xùn)練及測(cè)試時(shí)所使用的純凈語音來自于TIMIT 標(biāo)準(zhǔn)語音庫(kù)(http://www.fon.hum.uva.nl/david/ma_ssp/2007/TIMIT/),從中選取一條語音,將其與人聲babble 噪聲、機(jī)械噪聲和粉紅噪聲分別按-5 dB,0 dB,5 dB 三種信噪比進(jìn)行混合,將這些帶噪語音及純凈語音共10 條語音作為訓(xùn)練組進(jìn)行特征提取,訓(xùn)練模型。另選取三條語音,按照按20 dB,10 dB,5 dB,0 dB,-5 dB,-10 dB 這六種信噪比與上述三種噪音進(jìn)行混合,所得的18 條語音信號(hào)作為測(cè)試組對(duì)算法進(jìn)行檢驗(yàn)。使用Praat 語音學(xué)軟件提取出純凈語音的基音頻率作為標(biāo)準(zhǔn),將其進(jìn)行量化處理,分別與上述10 條語音的特征一一對(duì)應(yīng)作為SVM 分類器的輸出進(jìn)行監(jiān)督學(xué)習(xí)。
本實(shí)驗(yàn)使用網(wǎng)格尋優(yōu)算法尋找合適的C和γ的大小,使得被訓(xùn)練數(shù)據(jù)在三折交叉檢驗(yàn)下獲得最高的分類準(zhǔn)確率。為了提高尋找效率,網(wǎng)格以指數(shù)形式設(shè)計(jì),在2-12~20之間尋找合適的γ,在 20~210之間尋找合適的C,兩參數(shù)步進(jìn)大小都為指數(shù)增長(zhǎng),例如C在網(wǎng)格中的取值是20,21,…,210。以此網(wǎng)格進(jìn)行參數(shù)尋優(yōu),所得的交叉檢驗(yàn)準(zhǔn)確率如圖4所示。
圖4 交叉檢驗(yàn)準(zhǔn)確率Fig.4 Accuracy rate of cross check
實(shí)驗(yàn)結(jié)果表明,在C=29,γ=2-11處獲得最高的分類準(zhǔn)確率為96.13%,且在附近網(wǎng)點(diǎn)處變化平緩,故可作為取得的最佳參數(shù)。
完成多分類SVM 模型的構(gòu)造后,利用所得的模型以及被測(cè)語音的特征值羅列出可能的基音候選值,使用主體延伸的方法從中選出最終的基音估計(jì)值,圖5為使用本文算法對(duì)測(cè)試組中的一條純凈測(cè)試語音進(jìn)行基音估計(jì)的結(jié)果。
圖5 本文算法的基音檢測(cè)結(jié)果Fig.5 Pitch detection results of the proposed algorithm
為了檢驗(yàn)本文算法的有效性,采用兩個(gè)評(píng)價(jià)指標(biāo):基音頻率檢測(cè)正確率R1和濁音判斷錯(cuò)誤率R2,作為客觀評(píng)價(jià)標(biāo)準(zhǔn)。對(duì)于某一幀信號(hào)估計(jì)的基音頻率與真實(shí)基音相差小于5%,則認(rèn)為該幀的基音估計(jì)正確,反之錯(cuò)誤。
基音頻率檢測(cè)的正確率R1表示為:
式中:N表示基音判斷正確的幀數(shù);M表示總幀數(shù)。R1越大,表示算法性能越好。
濁音判斷的錯(cuò)誤率R2為被錯(cuò)誤判斷的語音幀占語音總幀數(shù)的百分比,表示為:
式中:W1表示被錯(cuò)判為非濁音幀的幀數(shù);W2表示被錯(cuò)判為濁音幀的幀數(shù)。R2越小表示清濁音判斷的準(zhǔn)確性越好。
將本文算法與PEFAC 算法以及主體延伸法這兩種基音估計(jì)算法進(jìn)行比較。主體延伸法先用語音信號(hào)的能熵比檢測(cè)元音主體,再?gòu)淖韵嚓P(guān)函數(shù)的峰值中動(dòng)態(tài)規(guī)劃出基音曲線。PEFAC 算法利用濾波器壓縮抑制噪聲,并從信號(hào)的頻域信息中計(jì)算基音周期的大小。表1列出了三種算法在不同信噪比下的基音頻率檢測(cè)正確率。實(shí)驗(yàn)結(jié)果表明,R1的大小與信噪比成正比例關(guān)系。主體延伸法在高信噪比環(huán)境下檢測(cè)結(jié)果良好,但無法在低信噪比狀態(tài)下正常工作;而本文算法和PEFAC 算法在低信噪比甚至是負(fù)信噪比環(huán)境下仍能取得較好的檢測(cè)結(jié)果,且相比于PEFAC 算法,本文算法提高了約5%的正確率。在訓(xùn)練SVM 多分類器時(shí),雖然只在-5 dB,0 dB,5 dB 三種信噪比的環(huán)境下完成了對(duì)模型的構(gòu)造;但測(cè)試結(jié)果表明,本文所提的算法在-10 dB 的環(huán)境下仍優(yōu)于其他算法,同時(shí)在高信噪比環(huán)境下也有較好的檢測(cè)效果。
表1 不同算法的基音頻率檢測(cè)的正確率Table 1 Accuracy of pitch frequency detection of different algorithms
一個(gè)優(yōu)秀的基音檢測(cè)算法不僅可以達(dá)到較高的基音檢測(cè)正確率,同時(shí)也能很好地區(qū)分清濁音片段,為進(jìn)一步驗(yàn)證本文算法對(duì)語音清濁音判斷的準(zhǔn)確性,將本文算法與PEFAC 算法以及主體延伸法進(jìn)行比較。
表2表示三種算法在不同信噪比環(huán)境下的濁音判斷的錯(cuò)誤率??梢钥闯觯啾绕渌麅煞N算法,本文算法的濁音判斷錯(cuò)誤率最低,這意味著它能夠更好地區(qū)分清音片段與濁音片段。
表2 不同算法的濁音判斷的錯(cuò)誤率Table 2 Error rate of dull resonance judgment of different algorithms
實(shí)驗(yàn)結(jié)果表明,相比PEFAC 算法和主體延伸法,本文所提的基于多分類支持向量機(jī)和主體延伸法的基音檢測(cè)算法具有更好的效果。
在低信噪比環(huán)境下對(duì)語音信號(hào)進(jìn)行基音估計(jì)一直以來都是一個(gè)實(shí)用卻頗具難度的問題。本文提出一種基于多分類支持向量機(jī)的基音檢測(cè)算法,將被測(cè)信號(hào)的功率譜密度函數(shù)轉(zhuǎn)化到對(duì)數(shù)域后,通過一個(gè)擴(kuò)展峰值的濾波器,所得結(jié)果作為特征參數(shù),然后利用該語音信號(hào)的特征以及其標(biāo)準(zhǔn)基音周期對(duì)SVM 多分類器進(jìn)行監(jiān)督訓(xùn)練。利用訓(xùn)練后的分類器模型對(duì)含有不同強(qiáng)度、噪聲的語音信號(hào)進(jìn)行基音檢測(cè),獲得的基音候選值使用主體延伸法進(jìn)行處理,并經(jīng)過平滑處理后最終完成基音檢測(cè)。
仿真結(jié)果表明,本文所提算法可以適用于多種信噪比環(huán)境下的基音檢測(cè),其基音檢測(cè)率以及濁音判斷率都有一定的提高,系統(tǒng)的穩(wěn)定性也得到了提高。