孫藝璇
(南京郵電大學(xué),江蘇 南京 210046)
語音識別技術(shù)自1952 年起至今經(jīng)歷了幾十年的發(fā)展歷史,從識別10 個英文單詞開始到現(xiàn)在能夠建立一個完整的語音識別系統(tǒng)。近年來人們的研究思路和研究框架也在不斷發(fā)生變化,從模式匹配轉(zhuǎn)到統(tǒng)計(jì)模型,識別的成功率也在不斷的提高,對于非特定人的孤立詞和小詞匯量的識別成功率現(xiàn)已達(dá)到98%。雖然現(xiàn)今語音識別技術(shù)還不能完全模擬出人的發(fā)聲系統(tǒng),還需要隨著不同的語音識別系統(tǒng)改變發(fā)音方式,但是人類在未來一定會建立一個非常完善的語音識別系統(tǒng)。
語音特征提取是語音識別的第一步,目前語音特征提取的方法一般有線性預(yù)測編碼系數(shù)LPC 參數(shù),Mel 頻域倒譜系數(shù)MFCC 及小波變換系數(shù)分析法等。雖然它們有很多優(yōu)點(diǎn),但也存在一些不足之處。例如,對輔音描述能力較差,在有噪環(huán)境下以及頻譜失真環(huán)境下的表現(xiàn)糟糕,多次用到FFT 導(dǎo)致算法復(fù)雜度提高等。
下面給出“help the local economy”標(biāo)準(zhǔn)英音的語音信號,運(yùn)用15 個語音特征分別進(jìn)行分析。
預(yù)處理也被稱為前段處理,是在語言信號被讀取之后首先進(jìn)行的步驟,放在語音特征的提取之前,能夠放大語音信號中的有效成分,提高語音識別的精確程度。預(yù)處理主要包括預(yù)加重,加窗分幀3 個部分。
預(yù)加重能夠去除口腔等人體部分對于語音高頻部分的壓制和削弱作用,通過對語音信號施加一個高通濾波器,文章分別嘗試了IIR 以及FIR 濾波器,用以抵消口腔對于語音高音部分的壓制。公式為:
文章嘗試對對語音信號作用IIR 以及FIR 濾波器來實(shí)現(xiàn)語音信號的預(yù)加重。
因?yàn)檎Z音數(shù)據(jù)內(nèi)容過大,將語音所有的采樣點(diǎn)作為輸入是不合適的,這樣不僅計(jì)算量大,無法體現(xiàn)語音過程短時變化特點(diǎn),而且只有等到整段語音接收結(jié)束后才能開始對語音進(jìn)行識別,不能實(shí)時流處理。所以分幀技術(shù)的應(yīng)用是必要的,將語音信號分割成較小的等長的語音片段,并近似認(rèn)為語音內(nèi)部音頻信息穩(wěn)定。通過分幀,既能保有語音的局部特征,還能夠找到幀與幀之間的聯(lián)系。計(jì)算機(jī)的采樣頻率為44100Hz,實(shí)驗(yàn)中選取語音幀長為32ms,幀移為16ms。在Matlab 中用y=enframe(x,framelength,step)進(jìn)行分幀,每幀長framelength,分得的幀數(shù)是nf=fix((nx-framelength+step)/step);其中nx 是x 的長度。y 是framelength×nf 或nf×framelength 的數(shù)組,取決于x 是列數(shù)據(jù)還是行數(shù)據(jù)。
在信號處理中,加窗處理是不可避免的,因?yàn)槲覀冸y以對無限長的序列進(jìn)行測量和運(yùn)算,因此原始信號需要被采樣時間截?cái)?,?shí)現(xiàn)信號長度的有限化。然后用截?cái)嗪蟮男盘栠M(jìn)行周期延拓,形成一個虛擬的無限長信號,再進(jìn)行相關(guān)分析。但是這些被截?cái)嗟男盘枙l(fā)生頻譜畸變,即頻譜能量泄露。為了減少這種頻譜能量的泄露,我們就需要采用不同的截取函數(shù)來對信號進(jìn)行截?cái)?,這些截?cái)嗪瘮?shù),就被我們稱為窗函數(shù)。常用的窗函數(shù)有矩形窗,三角窗,漢寧窗,指數(shù)窗等。在文章中主要選擇了2種有代表性窗函數(shù)對信號進(jìn)行處理,能夠精確讀出主瓣寬度,主瓣寬度窄且利于分辨的矩形窗和分析窄帶信號,旁瓣幅度較小的漢寧窗。
短時譜在語音信號增強(qiáng)方面有著廣泛的應(yīng)用,方法簡單,使用信噪比范圍較大,并且適用于實(shí)時處理。
很多時候,在知道信號之后,我們需要反過來求解聲門信號或者聲道沖擊響應(yīng)。這就需要在知道卷積的情況下,利用“解卷”來求得參與卷積的各個信號。同態(tài)處理就是一種常用的解卷方法,語音信號在進(jìn)行同態(tài)分析后得到語音信號的倒譜參數(shù)。卷積同態(tài)處理的基本思路就是運(yùn)用Z 變換將卷積變?yōu)槌朔e,在取對數(shù)運(yùn)算過后,由乘積變?yōu)榧臃ㄟ\(yùn)算。表達(dá)如下:
而復(fù)倒譜就是由信號的Z 變換取對數(shù)運(yùn)算之后的逆Z 變換,表達(dá)如下:
在文章中運(yùn)用了矩形窗和漢明窗求取信號的倒譜域復(fù)倒譜。
短時能量:語音信號的能量隨時間變化,清音與濁音之間的能量變化十分明顯。因此對語音的短時能量進(jìn)行分析,同時可以描述語音的短時變化特征。定義短時能量為:
過零率:過零率可以粗略估計(jì)語音信號的頻譜特性。當(dāng)離散時間相鄰兩個樣點(diǎn)的正負(fù)號相異時,被稱之為“過零”。統(tǒng)計(jì)單位時間內(nèi)樣點(diǎn)值改變符號的次數(shù)即可以得到平均過零率。定義短時平均過零率:
短時能量因?yàn)橛?jì)算時用的是信號的平方,所以它對信號高電平十分敏感。因此,采用另外一個度量語音幅度變化值得函數(shù),它與短時平均能量的 區(qū)別在于在取樣時,小取樣值與大取樣值不會因?yàn)槠椒蕉斐奢^大差異。短時平均幅度函數(shù):
所謂的語音端點(diǎn)檢測就是想找出語音的起始點(diǎn)與終止點(diǎn),能夠減少計(jì)算量以及提高語音識別的精確度。同時在一定程度上,能夠避免噪音干擾。文章采用雙門限的方法來進(jìn)行語音端點(diǎn)檢測,其重點(diǎn)是綜合利用語音的短時能量以及短時過零率兩個特征。先利用語音短時能量來制定一個較高的門限。然后用噪音的能量在制定一個較低的門限,這就完成了初級的語音端點(diǎn)的檢測。然后開始再一輪的語音端點(diǎn)檢測,由于語音很有可能由能量很弱的清音開始,所以需要運(yùn)用過零率來設(shè)置一個新的較低的門檻。這就基本完成了語音的端點(diǎn)檢測。
將語音端點(diǎn)的位置表示出來,即:
自相關(guān)函數(shù)用來測量語音信號自身時間波形的相似性。由于清濁音發(fā)音機(jī)制的不同,因此在波形上存在這較大的差異。濁音在波形上存在著一定的周期性,波形之間相似性較好,而清音在時間波形上則存在隨機(jī)噪音的特性,樣點(diǎn)間的相似性較差。自相關(guān)函數(shù)表示為:
發(fā)音持續(xù)時間的長短主要決定了聲音的長短,也成為音長。
實(shí)驗(yàn)結(jié)果:T=1.1916
語譜圖反應(yīng)了語音信號的動態(tài)頻率特性。水平方向是時間軸,豎直方向是頻率軸,圖上的變化的紋路代表了不同時刻的語音短時譜。語譜圖由于其不同的灰度,形成不同的紋路,被稱為“聲紋”。
聲音是由發(fā)音體經(jīng)過一系列震動產(chǎn)生的,在這個過程中,頻率和振幅各不相同。在這些振動中,由頻率最低的振動發(fā)出的音就成為基音,它決定著音高。
人在發(fā)出濁音時,產(chǎn)生一股準(zhǔn)周期脈沖氣流,刺激聲道后就產(chǎn)生濁音,又稱有聲語言,它攜帶著語音中的大部分能量,這種聲帶振動的頻率成稱為基頻,相應(yīng)的周期就被稱為基音周期。它由聲帶逐漸開啟到面積最大,逐漸關(guān)閉至完全閉合,完全閉合3 部分組成。文章采用自相關(guān)法來進(jìn)行語音的基音周期檢測。
共振峰是指在聲音的頻譜上,能量相對集中的一些區(qū)域。文章采用線性預(yù)測的方法來求得語音信號的共振峰。
在以上提取的15 個語音特征中,每個語音特征的數(shù)據(jù)表均可表示為一個行矩陣,這也是文章采用的語音識別方法所需要用到的。
詳細(xì)來說,如果將一段語音的上文提到的所有語音特征都計(jì)算出來,每一個語音特征都能夠用一個行矩陣來表示。在間隔一定距離對語音特征的行矩陣進(jìn)行數(shù)據(jù)提取,同時保證提取到的15 個甚至21 個行向量的容量相同。從上文中的21 個數(shù)據(jù)表中提取數(shù)據(jù)或者根據(jù)15 個語音特征結(jié)果提取數(shù)據(jù)。數(shù)據(jù)不足則用0 元素補(bǔ)足。提取一定數(shù)量m 的數(shù)據(jù)組成的新的行矩陣,一定程度上就能夠充分代表這段語音的數(shù)據(jù)。然后將這15 個或21 個特征行向量組成15*m 或21*m 的矩陣。最后在進(jìn)行語音比對時,我們可以直接將不同語音得到的矩陣直接進(jìn)行對比。
文章直接采用15 個語音特征的結(jié)果來提取標(biāo)準(zhǔn)男聲英音信號的數(shù)據(jù)并構(gòu)成語音特征15*1000 的矩陣,忽略得到語音特征的中間過程。例如,在獲取預(yù)加重過程中對語音信號進(jìn)行的IIR 及FIR 濾波器處理的高通濾波。為了方便顯示,截取標(biāo)準(zhǔn)男聲英音信號15*1000 特征矩陣的一部分與母語為漢語的女聲英音信號15*1000 特征矩陣的一部分進(jìn)行對比。下一步是需要厘清標(biāo)準(zhǔn)男聲英音信號15×1000 特征矩陣部分及母語為漢語的女聲英音信號15*1000 特征矩陣的一部分,如表1、表2 所示。
表1 標(biāo)準(zhǔn)男聲英音信號15×1000 特征矩陣部分
表2 母語為漢語的女聲英音信號15*1000 特征矩陣的一部分
經(jīng)過實(shí)驗(yàn),將男聲英音標(biāo)準(zhǔn)語音信號與內(nèi)容相同但母語為漢語的女聲英音信號進(jìn)行對比,首先對這樣的兩個語音信號進(jìn)行特征提取,在經(jīng)過矩陣的數(shù)據(jù)對比之后,得到語音內(nèi)容的相似度為0.96 的結(jié)果。下一步是需要厘清男聲英音標(biāo)準(zhǔn)語音信號和母語為漢語的女聲英音信號,如圖1、圖2 所示。
文章采用的矩陣對比的方法是Matlab 中自帶的求矩陣相似度的corr2 函數(shù),返回值范圍在[-1,1]之間,完全相關(guān)的兩個矩陣返回值為1 或-1,完全不相關(guān)的兩個矩陣的返回值為0,矩陣相似度越高返回值越接近1。
文章僅對標(biāo)準(zhǔn)男聲英音信號與內(nèi)容相同,均為“help the local economy”,但母語為漢語的女聲英音信號進(jìn)行對比,得到語音識別結(jié)果為大概0.96 的相似度。由此能夠初步判斷2 段語音內(nèi)容基本相同。這種方法的可行性以及準(zhǔn)確度還需要大量的實(shí)驗(yàn)來進(jìn)行驗(yàn)證。這種語音識別技術(shù)成熟之后,可以用于英語學(xué)習(xí)的人群,提供給他們一種糾正英語發(fā)音的方式,面對數(shù)據(jù)可以直觀的看到發(fā)音需要改進(jìn)的地方。
圖1 男聲英音標(biāo)準(zhǔn)語音信號
圖2 母語為漢語的女聲英音信號
語音特征矩陣法分析語音信號基本克服了其他幾種語音分析方法的不足,因?yàn)橛凶銐蚨嗟恼Z音特征,即使有些語音不適用于某幾種語音特征的提取,還有足夠多的其他語音特征可以用于語音之間的相互比對。同時,因?yàn)椴煌Z音特征波形圖的差別,即使適當(dāng)縮小每一個語音特征所提取的數(shù)據(jù)行向量的容量,也能夠相對充分的表示一段語音信號,可以在數(shù)據(jù)庫中輕易找到與實(shí)驗(yàn)語音相匹配的內(nèi)容。因此,這種方法復(fù)雜度較低,識別效果較好。但矩陣法分析語音信號的不足之處在于還需要更完善的矩陣對比方法,很有可能會由于矩陣對比方法的不足導(dǎo)致語音信號識別的準(zhǔn)確度降低。而且一旦需要更細(xì)致的對發(fā)音相似的語音信號進(jìn)行識別,就需要注意對語音特征行矩陣的數(shù)據(jù)提取的足夠多來保證語音信號的準(zhǔn)確性,這樣無疑會增加方法的計(jì)算量。
[1]王彪.基于Matlab 的語音識別系統(tǒng)研究[J].計(jì)算機(jī)與數(shù)字工程,2011(12).
[2]陰艷麗.基于MATLAB 語音信號處理的研究[J].中國新技術(shù)新成品,2012(12).
[3]奉小慧.音頻噪聲環(huán)境下唇動信息在語音識別中的應(yīng)用技術(shù)研究[D].廣州:華南理工大學(xué),2010.