何建軍
(深圳電器公司 技術(shù)中心,廣東深圳 518001)
在現(xiàn)實(shí)生活中,很多情況下都需要驗(yàn)證人們的身份。隨著人們交際范圍的擴(kuò)大,人際關(guān)系也變得日趨復(fù)雜,人們往往需要與其他各行各業(yè)的人打交道,而這些人際交往往往又會(huì)涉及到一些金錢、個(gè)人隱私等方面的私密信息。因此,要想保障雙方正常且安全的交往,往往需要鑒定對(duì)方身份。
為此,人們進(jìn)行了大量研究工作,試圖尋找一種更可靠、方便的身份驗(yàn)證方法。與傳統(tǒng)身份驗(yàn)證方式相比,生物特征認(rèn)證具有更好的可靠性與安全性[1]。生物特征包括聲紋、指紋、人臉、虹膜等。聲紋(Voiceprint)是一種聲波頻譜,其中包含了相應(yīng)的語言信息,查看時(shí)需用電聲學(xué)儀器進(jìn)行顯示。與指紋識(shí)別、臉部識(shí)別、手指靜脈識(shí)別等生物特征識(shí)別技術(shù)一樣,聲紋信息作為人的基本生理特征,有其獨(dú)特優(yōu)勢。如聲音是非接觸性的,用戶容易接受;聲紋信息不需要記憶,因此不存在被遺忘的情況;其還具有獨(dú)特性、唯一性和識(shí)別性強(qiáng)等特征。正因?yàn)榫哂幸陨蟽?yōu)點(diǎn),聲紋信息作為一種身份驗(yàn)證方式獲得了人們重視,并得到了廣泛研究,聲紋識(shí)別也應(yīng)運(yùn)而生。
說話人識(shí)別(Speaker Recognition,SR)也稱為聲紋識(shí)別、話者識(shí)別,屬于生物特征識(shí)別技術(shù)的范疇,是一種通過聲紋信息識(shí)別說話人身份的技術(shù)。其以表征說話人個(gè)性的語音特征為標(biāo)準(zhǔn)及依據(jù),自動(dòng)對(duì)說話人身份進(jìn)行識(shí)別。
根據(jù)識(shí)別方式的不同,說話人識(shí)別可分為說話人探測跟蹤、說話人辨認(rèn)與說話人確認(rèn)3 類[2]。
(1)說話人探測跟蹤。說話人探測跟蹤(Speaker Seg?mentation and Clustering)也稱為說話人切分與聚類,是指在一段多人分時(shí)講話的語音中,正確將切換到下一個(gè)人說話的時(shí)間標(biāo)注出來。
(2)說話人辨認(rèn)。說話人辨認(rèn)(Speaker Identification)也稱為說話人鑒別,是指從給定用戶集中將測試語音所屬的說話人辨認(rèn)出來,是一個(gè)一對(duì)多的分析過程。說話人辨認(rèn)又可劃分為“閉集(待鑒別的說話人一定不在設(shè)定的說話人集合范圍外)”和“開集(待鑒別的說話人可以不在設(shè)定的說話人集合范圍內(nèi))”兩種[3]。
(3)說話人確認(rèn)。說話人確認(rèn)(Speaker Verification)也稱為說話人驗(yàn)證[4-7],是指通過對(duì)聲稱者(即聲稱自己是真實(shí)說話者)所說的一段測試語音按照某種判決方式確認(rèn)其是否為真實(shí)說話者,這是一個(gè)一對(duì)一的確認(rèn)過程。
隨著嵌入式軟硬件技術(shù)與無線通信技術(shù)的迅猛發(fā)展,語音輸入與控制將成為手持移動(dòng)設(shè)備及嵌入式系統(tǒng)最佳的交互方式,以聲紋信息為特征的身份鑒別技術(shù)也顯得愈加重要。
目前,針對(duì)說話人識(shí)別而提出的新的識(shí)別技術(shù)層出不窮,如結(jié)合GMM-UBM 結(jié)構(gòu)[8]與支持向量機(jī)(Support Vector Machine,SVM)[9-10]的技術(shù)、基于得分規(guī)整技術(shù)的HNORM、ZNORM 和TNORM 技術(shù)、潛伏因子分析(Latent Factor Anal?ysis,LFA)技術(shù)、應(yīng)用于說話人識(shí)別的大詞匯表連續(xù)語音識(shí)別(Large Vocabulary Continuous Speech Recognition,LVC?SR)技術(shù)等。然而,如今最出色的說話人識(shí)別系統(tǒng)依然是基于GMM 模型,尤其是基于UBM-MAP 結(jié)構(gòu)的系統(tǒng)。
本文基于TIMIT 語料庫分析研究說話人語音信號(hào)預(yù)處理,以及說話人語音特征提取原理與方法,并利用MATLAB進(jìn)行美爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coeffi?cient,MFCC)[11]提取。在此基礎(chǔ)上詳細(xì)研究了GMM 模型基本原理,以及EM 算法和K-均值聚類算法,最后使用MATLAB 實(shí)現(xiàn)了基于GMM 模型的說話人識(shí)別系統(tǒng),完成了GMM 模型參數(shù)訓(xùn)練與識(shí)別過程。為分析該系統(tǒng)性能,本文通過實(shí)驗(yàn)分析了不同GMM 模型階數(shù)與不同訓(xùn)練語音樣本時(shí)長對(duì)系統(tǒng)識(shí)別性能的影響。
一個(gè)完整的說話人識(shí)別系統(tǒng)建立與應(yīng)用過程可分為模型參數(shù)訓(xùn)練階段和結(jié)果識(shí)別階段[12]。
模型參數(shù)訓(xùn)練階段:首先對(duì)訓(xùn)練語音進(jìn)行預(yù)加重、分幀與加窗等預(yù)處理,然后按照所選特征的計(jì)算方法對(duì)預(yù)處理后的語音信號(hào)提取特征參數(shù),最后用提取出的特征參數(shù)估計(jì)模型參數(shù)集并進(jìn)行存儲(chǔ),在識(shí)別階段作為參考模型。本文設(shè)計(jì)的說話人模型訓(xùn)練框圖如圖1 所示。
Fig.1 Block diagram of speaker model training圖1 說話人模型訓(xùn)練框圖
結(jié)果識(shí)別階段:前期處理與訓(xùn)練階段相同,即首先對(duì)待識(shí)別的語音進(jìn)行預(yù)加重、分幀及加窗等預(yù)處理,然后對(duì)預(yù)處理后的語音信號(hào)提取所選特征參數(shù),接下來將這些特征參數(shù)與預(yù)先存儲(chǔ)在計(jì)算機(jī)模板庫中的參考模板或模型進(jìn)行匹配計(jì)算,最后根據(jù)計(jì)算出的相似度,按一定準(zhǔn)則輸出匹配結(jié)果。本文設(shè)計(jì)的說話人識(shí)別框圖如圖2 所示。
Fig.2 Block diagram of speaker recognition圖2 說話人識(shí)別框圖
2.2.1 采樣與量化
語音信號(hào)是一維模擬信號(hào),其是一個(gè)幅度隨時(shí)間不停變化的時(shí)變信號(hào)。要想在計(jì)算機(jī)上處理語音信號(hào),必須先對(duì)其進(jìn)行采樣與量化,從而在時(shí)間和幅度上將其變成能在計(jì)算機(jī)上處理的離散的數(shù)字信號(hào)。
根據(jù)奈奎斯特定理,為使采樣后的語音信號(hào)不丟失信息,采樣頻率必須設(shè)定為高于兩倍的語音信號(hào)最大頻率,才能用采樣后的語音信號(hào)重新構(gòu)造并還原出原始語音信號(hào)。在實(shí)際的語音信號(hào)處理過程中,采樣頻率一般取8~10kHz。在一些系統(tǒng)中為獲取更高的識(shí)別率,采樣頻率可取15~20kHz。
采樣后的語音信號(hào)因其在幅度上還保持連續(xù),為使其幅度值也離散化,還需進(jìn)行量化處理。一般用二進(jìn)制表示量化值(即量化字長),倘若用B 個(gè)二進(jìn)制數(shù)表示量化值,則:
式(1)表明:量化器中每個(gè)bit 對(duì)信噪比的貢獻(xiàn)大約為6dB,當(dāng)量化字長為10 bit 時(shí),信噪比為53dB。由于語音信號(hào)信噪比可達(dá)55dB,因此應(yīng)選擇大于10 bit 的量化字長。
2.2.2 語音信號(hào)預(yù)加重
經(jīng)過采樣與量化后的語音信號(hào)還要進(jìn)行預(yù)加重處理,因?yàn)檎Z音信號(hào)在高頻處會(huì)有能量損耗,為彌補(bǔ)這些高頻損失,須在預(yù)處理過程中進(jìn)行預(yù)加重以提升高頻部分。
可在A/D 轉(zhuǎn)換之前進(jìn)行預(yù)加重處理,不僅可達(dá)到預(yù)加重目的,而且可達(dá)到對(duì)語音信號(hào)動(dòng)態(tài)范圍進(jìn)行壓縮處理、提高語音信號(hào)信噪比的目的。也可在A/D 轉(zhuǎn)換之后進(jìn)行預(yù)加重處理,即利用能對(duì)高頻特征進(jìn)行提升的具備6dB/倍頻程的數(shù)字濾波器[13]進(jìn)行預(yù)加重處理。該數(shù)字濾波器的Z傳遞函數(shù)如下:
式中,a為預(yù)加重系數(shù),其值接近于1,如取a=0.937 5。
對(duì)于待處理的語音信號(hào),可用以下公式進(jìn)行預(yù)加重:
式中,Sa為預(yù)加重操作前的原始語音信號(hào),Sp為預(yù)加重操作后的語音信號(hào)。
2.2.3 語音信號(hào)加窗分幀
語音信號(hào)幅值是隨時(shí)間變化而發(fā)生變化的,其不是一個(gè)穩(wěn)態(tài)過程[14],而是屬于時(shí)變信號(hào)。但是,在短時(shí)段上可認(rèn)為聲道形狀、激勵(lì)性質(zhì)保持不變,因此可采用穩(wěn)態(tài)過程分析方法進(jìn)行語音信號(hào)分析。短時(shí)分析的前提是獲取短時(shí)語音,即對(duì)輸入語音進(jìn)行劃分小段操作,也即加窗。窗函數(shù)對(duì)語音信號(hào)進(jìn)行分段操作,移動(dòng)窗函數(shù)即可獲得語音信號(hào)的一個(gè)個(gè)短時(shí)段。其中,一個(gè)短時(shí)段作為短時(shí)分析的一幀,一般而言,在一個(gè)短時(shí)段內(nèi)語音信號(hào)基本保持穩(wěn)定,聲道參數(shù)基本不發(fā)生變化。通常該短時(shí)段(也即一幀語音時(shí)長)取值范圍為10~30ms。
為從每一幀中取出含有N 個(gè)樣本的語音信號(hào)序列,可將窗函數(shù)w(n)與原來的語音信號(hào)S(m)相乘。加窗運(yùn)算定義為:
設(shè)窗口長度為N,窗函數(shù)主要分為以下幾種:
(1)矩形窗。
(2)漢明窗(Hamming)。
(3)漢寧窗。
本文使用的是漢明窗。為使語音信號(hào)變化的信息盡可能不丟失,可采用相鄰兩幀之間有部分相互重疊的分段方法進(jìn)行分幀(即相鄰兩幀語音信號(hào)的前一幀語音信號(hào)末端與后一幀語音信號(hào)前端相重疊),令相鄰兩幀之間可最大程度地保留語音信號(hào)變化信息,從而使相鄰兩幀的過渡更加平滑。相鄰兩幀之間的重疊塊稱為幀移,其幀移量取值范圍一般為幀長(即窗口長度)的1/3~1/2。加窗以后得到的一幀語音采樣序列為:
實(shí)驗(yàn)表明,能對(duì)說話人個(gè)性有效進(jìn)行描述的特征有:短時(shí)能量、短時(shí)平均幅度、短時(shí)平均過零率、短時(shí)頻譜、短時(shí)基音周期及基音頻率、共振峰頻率及帶寬、部分相關(guān)系數(shù)(PARCOR)特征、線譜對(duì)(LSP)特征、線性預(yù)測系數(shù)(LPC)、倒譜特征、美爾頻率倒譜系數(shù)(MFCC)等。下面介紹兩種主流的表征說話人個(gè)性的線性預(yù)測系數(shù)和美爾倒譜系數(shù)特征提取過程。
2.3.1 線性預(yù)測系數(shù)(LPC)
線性預(yù)測[15]分析可這樣理解:對(duì)于一個(gè)語音信號(hào),其某個(gè)時(shí)刻的采樣值可通過該時(shí)刻之前若干時(shí)刻的采樣值進(jìn)行線性逼近。為得到一組最優(yōu)的預(yù)測器系數(shù),可在最小均方誤差上使線性預(yù)測計(jì)算得到的數(shù)值與實(shí)際語音采樣值逼近,而預(yù)測器系數(shù)就是過去若干時(shí)刻采樣值線性組合的加權(quán)系數(shù)。這種線性預(yù)測分析技術(shù)最早在語音編碼中使用,因此線性預(yù)測系數(shù)也常被人們稱為LPC(Linear Pre?diction Coding)。
可將p 階線性預(yù)測器從時(shí)域角度理解為:采用語音信號(hào)前p 個(gè)時(shí)刻采樣值的線性組合,并以最小預(yù)測誤差預(yù)測當(dāng)前時(shí)刻樣本值。即的預(yù)測值為:
對(duì)上式進(jìn)行Z 變換,得到具有如下形式的傳遞函數(shù)濾波器輸出:
式中,A(z)為預(yù)測誤差濾波器。
為得到一組最優(yōu)的預(yù)測器系數(shù),假設(shè)E 為語音幀上所有的預(yù)測均方誤差:
進(jìn)行線性預(yù)測分析的前提是用于分析的語音信號(hào)具備短時(shí)平穩(wěn)特征,也即是說必須在一段短時(shí)語音段上進(jìn)行,即按幀進(jìn)行。大量實(shí)踐證明:LPC 參數(shù)是一種表征語音信號(hào)特征的良好參數(shù)。
2.3.2 美爾倒譜特征(MFCC)
美爾頻率倒譜系數(shù)(MFCC)[16-18]是采用先將語音功率譜轉(zhuǎn)換成Mel 頻率對(duì)應(yīng)的功率譜,再進(jìn)行濾波取對(duì)數(shù),最后進(jìn)行離散余弦變換的方法求取出來的,人們對(duì)頻率在1kHz以下聲音的感知依從線性關(guān)系,而對(duì)頻率在1kHz 以上聲音的感知依從近似的對(duì)數(shù)頻率線性關(guān)系。由此劃分語音頻率,將其劃分成一系列三角形的濾波器序列(即Mel 頻率濾波器組),這組濾波器在頻率的美爾(MEL)坐標(biāo)上是等帶寬的。Mel 頻率與實(shí)際頻率的轉(zhuǎn)換關(guān)系為:
式中,f為實(shí)際頻率,單位為Hz。
MFCC 系數(shù)的計(jì)算是按幀進(jìn)行的,首先將語音信號(hào)進(jìn)行分幀、預(yù)加重與加窗,然后進(jìn)行FFT 變換,計(jì)算出該語音幀的功率譜,再將其功率譜變換為對(duì)應(yīng)于Mel 頻率的功率譜。在進(jìn)行Mel 功率譜變換之前,需要先設(shè)置若干個(gè)三角形帶通濾波器,且?guī)V波器必須在語音信號(hào)頻譜范圍內(nèi)。該濾波器組的中心頻率f(m),m=0,1,…,M-1 均勻分布Mel 頻率坐標(biāo)軸上。
三角形帶通濾波器系數(shù)在計(jì)算MFCC 系數(shù)之前必須預(yù)先計(jì)算出來,計(jì)算MFCC 系數(shù)時(shí)直接使用該系數(shù)。Mel 帶通濾波器的傳遞函數(shù)為:
(1)預(yù)處理:為了對(duì)語音信號(hào)進(jìn)行短時(shí)分析,需將短時(shí)語音段時(shí)長設(shè)定在10~30ms 范圍內(nèi),即確定每個(gè)語音幀的采樣點(diǎn)數(shù),進(jìn)而對(duì)每個(gè)語音幀進(jìn)行預(yù)加重與加窗分幀操作,并計(jì)算出其時(shí)域信號(hào)x(n)。
(2)離散FFT 變換:對(duì)于信號(hào)x(n),為了計(jì)算其頻譜X(k),需對(duì)其作離散FFT 變換,則有:
式中,N 為FFT 變換點(diǎn)數(shù)。
(3)計(jì)算能量譜:對(duì)頻譜取模的平方,得到其能量譜|X(k)|2,0 ≤k≤N。
(4)在頻域上對(duì)能量譜進(jìn)行濾波:用M 個(gè)Mel 帶通濾波器對(duì)能量譜進(jìn)行濾波,對(duì)于每個(gè)帶通濾波器,對(duì)其頻帶范圍內(nèi)所有能量進(jìn)行疊加處理,即可得到M 個(gè)能量譜輸出:
(5)對(duì)濾波器組輸出的能量譜取對(duì)數(shù):對(duì)能量譜s(m)取自然對(duì)數(shù),可得到其對(duì)數(shù)功率譜S'(m)為:
(6)離散余弦變換:在對(duì)數(shù)功率譜S'(m)上進(jìn)行離散余弦變換,得到M 個(gè)MFCC 系數(shù),即:
在進(jìn)行MFCC 系數(shù)選擇時(shí),可舍去代表直流成份的C0,取L 個(gè)參數(shù)作為MFCC 參數(shù)。一般L 取12~16,其計(jì)算流程如圖3 所示[19]。
本文采用MFCC 系數(shù)作為特征參數(shù)。
Fig.3 MFCC parameter calculation flow圖3 MFCC 參數(shù)計(jì)算流程
2.4.1 模型描述
高斯混合模型(GMM)本質(zhì)上是一種多維概率密度函數(shù),其核心思想為:在概率空間上,其特征向量的分布情形可用若干個(gè)單高斯概率密度函數(shù)進(jìn)行線性逼近。將其用于說話人識(shí)別時(shí),每個(gè)說話人對(duì)應(yīng)一個(gè)GMM。
一個(gè)M 階的GMM 模型概率密度函數(shù)是通過對(duì)M 個(gè)高斯概率密度函數(shù)的加權(quán)求和得來的,如下所示:
式中,λ 表示模型參數(shù)集,由均值、協(xié)方差、權(quán)重組成;o表示K 維特征參量;i表示高斯分量序號(hào)。GMM 模型階數(shù)為M,表示有M 個(gè)高斯分量。P(o|q=i,λ)可簡化成P(o|i,λ)的形式,表示序號(hào)為i的高斯分量,對(duì)應(yīng)分量i的概率密度函數(shù)。Ci對(duì)應(yīng)于第i個(gè)高斯分量的混合權(quán)重,也即先驗(yàn)概率。則有:
對(duì)于高斯分量i,常用一個(gè)維數(shù)為K 的單高斯概率密度函數(shù)進(jìn)行描述,即:
式中,μi為均值矢量,Σi為協(xié)方差矩陣,i=1,…,M。
GMM 模型參數(shù)集λ 的表達(dá)形式如下:
式中,λ 由各均值矢量μi、協(xié)方差矩陣Σi及混合分量的權(quán)重組成。其中Σi可以選擇普通矩陣,也可以選擇對(duì)角矩陣,但由于后者的算法簡單且性能較好,為減少計(jì)算量,Σi通常取后者[20]。即:
將式(23)代入式(21)可得:
式中,ok、μik分別為矢量ο和矢量μi的第k個(gè)分量。
根據(jù)公式,GMM 觀察特征矢量與模型匹配的基本框架如圖4 所示。
2.4.2 模型參數(shù)估計(jì)
為說話人建立GMM 模型,實(shí)際上就是通過模型訓(xùn)練對(duì)GMM 模型參數(shù)進(jìn)行估計(jì),使其能最佳地匹配訓(xùn)練特征矢量分布。估計(jì)GMM 模型參數(shù)的方法有很多,本文采用最常用的最大似然(Maximum Likelihood,ML)估計(jì)法。該方法的前提條件是:給定訓(xùn)練數(shù)據(jù)以估計(jì)GMM 模型參數(shù),且使估計(jì)出模型的似然值達(dá)到最大。對(duì)于T 個(gè)訓(xùn)練矢量序列ο={o1,o2,…,oT},GMM 的似然值可用下式表示:
Fig.4 Basic frame of the observation feature vector of the GMM model and the model matching圖4 GMM 觀察特征矢量與模型匹配基本框架
由于似然函數(shù)P(o|λ)與模型參數(shù)集λ是非線性函數(shù)關(guān)系,很難直接求出上式的極大值點(diǎn),必須引入隱狀態(tài)參與計(jì)算。因此,為估計(jì)模型參數(shù)集λ,本文引入期望最大化算法(Expectation Maximization,EM)。EM 算法包含兩個(gè)步驟:EStep 和M-Step。E-Step 也即人們求期望(即Expectation,用E 表示)的步驟,M-Step 將E-Step 所求的期望最大化(即Maximization,用M 表示),重復(fù)E-Step和M-Step直到收斂。
EM 算法估計(jì)過程為:從一個(gè)初始模型開始,利用最大似然準(zhǔn)則,迭代地估計(jì)模型參數(shù),使再以作為新的模型參數(shù)開始下一輪迭代過程,直到滿足收斂條件??梢胼o助函數(shù)
這樣即可將迭代估計(jì)GMM 模型參數(shù)的過程分為Ex?pectation 和Maximization 兩 個(gè) 步 驟,即E-Step 和M-Step。E-Step 計(jì)算訓(xùn)練數(shù)據(jù)落在隱狀態(tài)i的概率,M-Step 以局部最大準(zhǔn)則估計(jì)GMM 模型參數(shù)集也即
EM 算法計(jì)算過程如下:
(1)E-Step :以Bayes 公式為依據(jù)和基礎(chǔ),計(jì)算訓(xùn)練數(shù)據(jù)對(duì)應(yīng)于高斯分量i的概率。
E-Step 與M-Step 反復(fù)迭代,直至滿足收斂條件,即可得到最優(yōu)的模型參數(shù)λ。
在實(shí)際訓(xùn)練過程中,通常訓(xùn)練數(shù)據(jù)較少,訓(xùn)練環(huán)境背景噪聲較大,語音易受到噪聲污染,此時(shí)便很可能出現(xiàn)值過小的情況。然而,過小的方差會(huì)極大程度上影響對(duì)整體似然函數(shù)的計(jì)算。為避免該情況的發(fā)生,必須限制方差范圍。即:
采用EM 算法估計(jì)GMM 模型參數(shù)的流程如圖5 所示。
Fig.5 Flow of estimating GMM model parameters by EM algorithm圖5 EM 算法估計(jì)GMM 模型參數(shù)流程
2.4.3 模型參數(shù)初始化
EM 算法迭代過程是從一個(gè)初始模型開始的,初始模型參數(shù)集λ的選擇會(huì)影響算法迭代速度,其根本原因在于EM 算法是一個(gè)局部最優(yōu)搜索算法,經(jīng)過反復(fù)迭代可求出一個(gè)最佳解。GMM 模型常用的初始化方法有兩種:①在訓(xùn)練數(shù)據(jù)中任意取出與M 個(gè)高斯分量相對(duì)應(yīng)的M 組數(shù)據(jù),分別計(jì)算出每組數(shù)據(jù)的均值和方差,且將其作為高斯分量的初始均值和方差,并使各分量權(quán)重相同;②通過K-均值聚類算法[21]對(duì)模型參數(shù)進(jìn)行初始化,并劃分訓(xùn)練數(shù)據(jù)到M 個(gè)聚類中,每個(gè)高斯分量對(duì)應(yīng)一個(gè)聚類,各個(gè)高斯分量的初始均值為對(duì)應(yīng)聚類的均值,且每個(gè)高斯分量方差與對(duì)應(yīng)聚類方差相同,而對(duì)應(yīng)聚類內(nèi)的數(shù)據(jù)量與總數(shù)據(jù)量的比值即為權(quán)重。
GMM 階數(shù)M 的選擇與實(shí)際應(yīng)用有關(guān),一般由實(shí)驗(yàn)結(jié)果確定。K-均值聚類算法[22]的基本思想為:對(duì)于給定的樣本集(即訓(xùn)練數(shù)據(jù)特征矢量集),按照樣本之間的距離大小將樣本集劃分為M 個(gè)類別,使得類別內(nèi)的樣本盡量緊密聚集在一起,而類別間的樣本距離盡可能大,并選擇M 個(gè)初始聚類中心,按最小距離原則將各特征矢量xi逐個(gè)分配到M 類中的某一類,之后不斷計(jì)算類的中心及調(diào)整各特征矢量類別,最終使各特征矢量距離其所屬類別中心的平方和最小。具體計(jì)算步驟如下:
(1)在訓(xùn)練數(shù)據(jù)特征矢量集中任選M 個(gè)樣本作為初始聚類中心:令k=0。
(3)計(jì)算重新分類后的各類中心。
2.4.4 識(shí)別判決
對(duì)于一個(gè)有N 個(gè)人的說話人識(shí)別系統(tǒng),用λi(i=1,2,…,N)代表第i個(gè)說話人的GMM 模型。在進(jìn)行識(shí)別時(shí),假設(shè)待識(shí)別語音的觀察特征矢量序列為ο={o1,o2,…,oT},則判定該目標(biāo)說話人為第n 個(gè)說話人的后驗(yàn)概率為[23]:
式中,p(O|λn)表示第n 個(gè)說話人產(chǎn)生O的條件概率,p(O)表示全部說話人條件下出現(xiàn)O的概率,p(λn)表示第n個(gè)說話人的先驗(yàn)概率。
為簡化計(jì)算,通常采用對(duì)數(shù)似然函數(shù),則閉集說話人辨認(rèn)的得分公式為:
本文主要在HP 540 筆記本電腦上實(shí)現(xiàn)基于GMM 的說話人識(shí)別系統(tǒng),該筆記本電腦的主要軟硬件配置如下:①CPU:Intel(R)Core(TM)2 Duo CPU T5470 @ 1.60GHz;②RAM:2GB;③操作系統(tǒng):Windows XP Professional;④實(shí)驗(yàn)環(huán)境:MATLAB R2009a。
本文說話人識(shí)別實(shí)驗(yàn)是在部分TIMIT 語音庫基礎(chǔ)上進(jìn)行的,美國的LDC(Linguistic Data Consortium)第一個(gè)發(fā)布了擁有大量說話人的全英文語音數(shù)據(jù)庫TIMIT,因而TIMIT被廣泛應(yīng)用于說話人識(shí)別研究[24]。TIMIT 語音庫由美國麻省理工學(xué)院(MIT)、SRI 國際公司(SRI)與德州儀器公司(TI)共同設(shè)計(jì),并在TI 完成錄音[25]。其是在低噪聲環(huán)境下使用固定麥克風(fēng)錄制的,采樣頻率為16kHz,采樣位數(shù)為16位。錄音人數(shù)共有630 人,其中男性438 人,女性192 人,每人講10 句話,囊括了美式英語的八大方言。該語音庫可以很好地區(qū)分性別、年齡段和地域。
為對(duì)比中英文語音庫在識(shí)別性能方面的差異,另選部分HI-MIA 語音庫進(jìn)行對(duì)比實(shí)驗(yàn)。HI-MIA 語音庫為昆山杜克大學(xué)與AISHELL 共同推出的一個(gè)基于遠(yuǎn)場文本相關(guān)的說話人認(rèn)證數(shù)據(jù)庫。該數(shù)據(jù)庫使用麥克風(fēng)陣列和Hi-Fi麥克風(fēng)在實(shí)際家庭環(huán)境中收集數(shù)據(jù),共包含340 個(gè)說話人,每個(gè)說話人語料包含了近場麥克風(fēng)拾音和遠(yuǎn)場麥克風(fēng)陣列的多通道拾音,可用于聲紋識(shí)別、語音喚醒識(shí)別等研究。
本文在MATLAB 下實(shí)現(xiàn)了基于GMM 模型的說話人識(shí)別系統(tǒng),程序運(yùn)行界面如圖6 所示。該系統(tǒng)主要分為兩大部分:訓(xùn)練部分與識(shí)別部分。
Fig.6 MATLAB program running interface of speaker recognition system圖6 說話人識(shí)別系統(tǒng)MATLAB 程序運(yùn)行界面
訓(xùn)練時(shí)首先設(shè)置特征向量和GMM 模型參數(shù),然后點(diǎn)擊“選擇訓(xùn)練語音”按鈕選擇訓(xùn)練語音文件,最后點(diǎn)擊“建立模型”或“繼續(xù)訓(xùn)練”按鈕進(jìn)行模型訓(xùn)練,并保存模型參數(shù),如圖7 所示。
Fig.7 Model training flow圖7 模型訓(xùn)練流程
識(shí)別時(shí)同樣需要先設(shè)置特征向量和GMM 模型參數(shù),然后點(diǎn)擊“選擇測試語音”選擇待識(shí)別的語音文件,最后點(diǎn)擊“識(shí)別”按鈕進(jìn)行識(shí)別并輸出匹配結(jié)果,如圖8 所示。
Fig.8 Speaker recognition flow圖8 說話人識(shí)別流程
在進(jìn)行模型參數(shù)訓(xùn)練之前,先建立一個(gè)GMM 模型,并為GMM 模型分配存儲(chǔ)空間。每個(gè)GMM 模型存儲(chǔ)內(nèi)容包括特征矢量維數(shù)、高斯分量混合數(shù),以及各高斯分量的權(quán)重、均值矢量與方差矩陣。
建立模型后進(jìn)行模型訓(xùn)練,從說話人語音中提取語音樣本,對(duì)語音信號(hào)進(jìn)行預(yù)加重、分幀加窗與端點(diǎn)檢測處理,提取出特征參數(shù)矢量,并用K-均值聚類算法對(duì)提取出的特征矢量進(jìn)行聚類,得到GMM 模型的初始化模型參數(shù)λ(均值、混合權(quán)重及協(xié)方差矩陣)。初始化后即開始進(jìn)行說話人GMM 模型訓(xùn)練,本文采用期望最大化(EM)算法估計(jì)GMM 模型參數(shù),從一個(gè)初始模型參數(shù)λ開始,估計(jì)出一個(gè)新的模型參數(shù)λˉ,使得在新模型參數(shù)下的似然度P(o|λˉ)≥P(o|λ)。之后再采用新模型參數(shù)λˉ開始下一次迭代,如此反復(fù)迭代直至模型收斂(本文設(shè)置的收斂界限為1.000 0e-004)。具體實(shí)現(xiàn)流程如圖9 所示。
Fig.9 GMM model training flow圖9 GMM 模型訓(xùn)練流程
本文采用閉集說話人識(shí)別方式,即將所有參與的說話人構(gòu)成一個(gè)集合,在識(shí)別時(shí)判斷目標(biāo)說話人為集合中的哪一個(gè)說話人。
實(shí)驗(yàn)從TIMIT 語音庫中隨機(jī)選取20 人的語音作為樣本,對(duì)說話人識(shí)別系統(tǒng)性能進(jìn)行測試。實(shí)驗(yàn)條件如下:①采用部分TIMIT 語音庫,使用16 階GMM 模型;②MFCC特征階數(shù)為10、12、14、16;③測試數(shù)據(jù)為1 段語音,每段平均時(shí)長為4.5s;④測試人數(shù)為10、13、16、20;⑤訓(xùn)練數(shù)據(jù)為3 段語音,每段平均時(shí)長為4.5s。
說話人識(shí)別系統(tǒng)平均識(shí)別率如表1 所示。從表1 可以看出,系統(tǒng)性能隨著特征向量維數(shù)、測試人數(shù)的變化而變化,即識(shí)別率隨著特征向量維數(shù)的增加而提高,隨著人數(shù)的增加而降低,但特征向量維數(shù)達(dá)到一定值時(shí)識(shí)別率便不再增加。當(dāng)測試人數(shù)超過16 人時(shí),特征向量維數(shù)為12 時(shí)識(shí)別率最高。
Table 1 Average recognition rate of the speaker recognition system表1 系統(tǒng)平均識(shí)別率
3.7.1 GMM 模型階數(shù)對(duì)系統(tǒng)識(shí)別性能的影響
GMM 模型階數(shù)也即高斯分量個(gè)數(shù),是影響系統(tǒng)識(shí)別性能的一個(gè)重要指標(biāo)。若階數(shù)過小會(huì)使量化誤差過大,導(dǎo)致GMM 模型無法很好地表示整個(gè)向量空間;若階數(shù)過大,則系統(tǒng)訓(xùn)練與識(shí)別計(jì)算量會(huì)非常大,卻無法明顯提高系統(tǒng)性能。因此,選擇一個(gè)合適的GMM 模型階數(shù)能顯著提升系統(tǒng)綜合性能。本文針對(duì)GMM 模型階數(shù)對(duì)系統(tǒng)性能的影響作了如下實(shí)驗(yàn)。實(shí)驗(yàn)條件如下:從TIMIT 語音庫中選取16 人的10 段語音作為樣本數(shù)據(jù),平均每段語音時(shí)長為4.5s,其中每人選取4 段語音作為訓(xùn)練數(shù)據(jù)來訓(xùn)練模型;另選1 段語音作為測試數(shù)據(jù),選擇24 維MFCC 系數(shù)作為特征參數(shù),采用EM 算法訓(xùn)練模型,每段測試語音作為一個(gè)測試單位,取測試結(jié)果的平均值作為系統(tǒng)平均識(shí)別率。對(duì)不同GMM模型的階數(shù)測試結(jié)果如表2 所示。
Table 2 Speaker recognition rate based on different order of GMM mode(lTIMIT)表2 不同GMM 模型階數(shù)下說話人識(shí)別率(TIMIT)
從實(shí)驗(yàn)結(jié)果可以看出,GMM 模型階數(shù)越高,對(duì)特征空間的描述越精確。階數(shù)較低時(shí),識(shí)別率較低;隨著階數(shù)的增加,識(shí)別率隨之上升,系統(tǒng)計(jì)算量也急劇增大。但當(dāng)階數(shù)達(dá)到16 附近時(shí),識(shí)別率則不再提升,反而還出現(xiàn)了下降趨勢,這是符合倒譜特征性質(zhì)的。因此,在綜合考慮系統(tǒng)總體性能的基礎(chǔ)上,選擇一個(gè)合適的GMM 模型階數(shù)是很重要的。一般來說,階數(shù)不能取得過高,但也不能太低,往往需要大量實(shí)驗(yàn)數(shù)據(jù)來確定。
為對(duì)比GMM 模型階數(shù)對(duì)系統(tǒng)識(shí)別性能的影響,另選部分中文語音庫HI-MIA 中的數(shù)據(jù)進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)條件如下:從HI-MIA 語音庫中選取20 人的20 段語音作為樣本數(shù)據(jù),平均每段語音時(shí)長為1s;任選其中一段作為測試數(shù)據(jù),選擇24 維MFCC 系數(shù)作為特征參數(shù),采用EM 算法訓(xùn)練模型,每段測試語音作為一個(gè)測試單位,取測試結(jié)果的平均值作為系統(tǒng)平均識(shí)別率。對(duì)不同GMM 模型的階數(shù)測試結(jié)果如表3 所示。
Table 3 Speaker recognition rate based on different order of GMM model(HI-MIA)表3 不同GMM 模型階數(shù)下說話人識(shí)別率(HI-MIA)
3.7.2 訓(xùn)練語音時(shí)長對(duì)系統(tǒng)識(shí)別性能的影響
對(duì)GMM 模型的訓(xùn)練需要一定時(shí)長的訓(xùn)練語音數(shù)據(jù),若訓(xùn)練數(shù)據(jù)太少,模型訓(xùn)練不充分,則不能得到有效的GMM模型;若訓(xùn)練數(shù)據(jù)太多,將浪費(fèi)大量訓(xùn)練時(shí)間和系統(tǒng)資源,且識(shí)別率也不能得到相應(yīng)提升,有時(shí)還會(huì)因過訓(xùn)練導(dǎo)致系統(tǒng)識(shí)別性能下降。本文針對(duì)不同訓(xùn)練時(shí)長下訓(xùn)練的GMM模型識(shí)別性能進(jìn)行測試。
實(shí)驗(yàn)條件如下:從TIMIT 語音庫中選取16 人的10 段語音作為樣本數(shù)據(jù),平均每段語音時(shí)長為4.5s;任選其中一段作為測試數(shù)據(jù),在GMM 模型階數(shù)為16、MFCC 系數(shù)維數(shù)為24、人數(shù)不變的情況下,分別用不同時(shí)長的語音訓(xùn)練GMM模型,取測試結(jié)果的平均值作為系統(tǒng)平均識(shí)別率。實(shí)驗(yàn)結(jié)果如表4 所示。
Table 4 Speaker recognition rate based on different training durations表4 不同訓(xùn)練時(shí)長下說話人識(shí)別率
從實(shí)驗(yàn)結(jié)果可以看出,增加訓(xùn)練時(shí)長可從總體上提升系統(tǒng)識(shí)別率,但到一定程度后便很難繼續(xù)提升。因此,在訓(xùn)練模型時(shí)不應(yīng)過度追求訓(xùn)練時(shí)長。
為對(duì)比訓(xùn)練語音樣本時(shí)長對(duì)系統(tǒng)識(shí)別性能的影響,另選部分中文語音庫HI-MIA 中的數(shù)據(jù)進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)條件如下:從HI-MIA 語音庫中選取20 人的20 段語音作為樣本數(shù)據(jù),平均每段語音時(shí)長為1s;任選其中一段作為測試數(shù)據(jù),在GMM 模型階數(shù)為16、MFCC 系數(shù)維數(shù)為24、人數(shù)不變的情況下,分別用不同時(shí)長的語音訓(xùn)練GMM 模型,取測試結(jié)果的平均值作為系統(tǒng)平均識(shí)別率。實(shí)驗(yàn)結(jié)果如表5所示。
Table 5 Speaker recognition rate based on different training durations表5 不同訓(xùn)練時(shí)長下說話人識(shí)別率
說話人識(shí)別技術(shù)作為一種有效的身份識(shí)別技術(shù),為身份確認(rèn)提供了一種極佳的驗(yàn)證手段。隨著嵌入式軟硬件技術(shù)與無線通信技術(shù)的迅猛發(fā)展,語音輸入與控制將成為手持移動(dòng)設(shè)備及嵌入式系統(tǒng)最佳的交互方式,以聲紋信息為特征的身份鑒別技術(shù)也受到越來越多關(guān)注。
本文首先對(duì)語音信號(hào)預(yù)處理及特征提取進(jìn)行了詳細(xì)分析,然后以高斯混合模型作為說話人模型,對(duì)模型參數(shù)估計(jì)、模型參數(shù)初始化以及GMM 模型參數(shù)訓(xùn)練與識(shí)別方法進(jìn)行了詳細(xì)研究,最后,基于TIMIT 語料庫使用MATLAB 實(shí)現(xiàn)了一個(gè)完整的說話人識(shí)別系統(tǒng),并通過實(shí)驗(yàn)分析不同模型參數(shù)及不同訓(xùn)練時(shí)長對(duì)系統(tǒng)性能的影響。實(shí)驗(yàn)結(jié)果表明,在GMM 模型階數(shù)不高及使用人數(shù)不多的情況下,本文實(shí)現(xiàn)的說話人識(shí)別系統(tǒng)可滿足用戶的使用需求。
未來針對(duì)該系統(tǒng)還有一些問題需要繼續(xù)深入研究,例如:優(yōu)化特征參數(shù),以提升系統(tǒng)識(shí)別性能;通過模型參數(shù)估計(jì)算法或識(shí)別算法減小計(jì)算量,以縮短訓(xùn)練或識(shí)別時(shí)間;將GMM 模型與其他模型相融合,從而提高系統(tǒng)識(shí)別率等。