孫 念,張 毅,林海波,黃 超
(1.重慶郵電大學(xué) 先進(jìn)制造工程學(xué)院,重慶 400065; 2.重慶郵電大學(xué) 自動(dòng)化學(xué)院,重慶 400065)(*通信作者電子郵箱599217746@qq.com)
說話人識別(Speaker Recognition, SR)就是根據(jù)說話人的聲音特征來判斷其身份的一種生物特征識別技術(shù),也被稱為聲紋識別(Voiceprint Recognition,VR)[1]。時(shí)至今日,說話人識別發(fā)展已有50余年,研究者發(fā)現(xiàn)不同說話人的聲學(xué)特征有一定的差異[2]。
文獻(xiàn)[3]在語音環(huán)境干凈的情況下,基于i-vector的說話人模型具有高識別率。然而,如果訓(xùn)練與測試語音不匹配,會(huì)使說話人識別系統(tǒng)性能顯著下降。背景噪聲、信道失真以及說話人之間的個(gè)性特征差異等是造成這種失配的主要原因。此外,聲學(xué)建模需要有足夠的數(shù)據(jù)支撐,例如深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)[4-5]。所以,說話人識別系統(tǒng)想要獲得高性能,訓(xùn)練和測試語音數(shù)據(jù)充足是一個(gè)重要的前提。但在實(shí)際應(yīng)用中,從用戶那里收集足夠的數(shù)據(jù)是不可能的,且違背了語音人機(jī)交互的友好性,這給現(xiàn)有的方法帶來了很大的挑戰(zhàn)。根據(jù)美國國家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology, NIST)的定義[6],如果訓(xùn)練或測試語音的長度小于10 s,說話人識別就被稱為短語音說話人識別(Short Utterance Speaker Recognition, SUSR)。盡管傳統(tǒng)的單特征方法在具有足夠測試語音數(shù)據(jù)時(shí)已經(jīng)獲得了出色的性能,但是在本文的短語音說話人識別實(shí)驗(yàn)中,它們的性能欠佳。目前,語音領(lǐng)域的研究者已經(jīng)開始重視這方面的研究,并開展了一些很有意義的科研工作,但是總體來說短語音研究依然處于起步階段[7-9]。
在說話人識別領(lǐng)域,聲學(xué)特征的合理選擇十分重要。如果選取的聲學(xué)特征不能掌握說話人的個(gè)性特性,那么即使是最先進(jìn)的機(jī)器學(xué)習(xí)算法[10-11],也不可能使系統(tǒng)達(dá)到一個(gè)良好的識別效果。目前,已有研究表明測試語音時(shí)長充足時(shí),單一聲學(xué)特征的信息量和區(qū)分性足夠完成說話人識別任務(wù)。然而,在短語音條件下,只使用單一的梅爾頻率倒譜系數(shù)(Mel-Frequency Cepstrum Coefficient, MFCC)特征建模,不能充分表達(dá)說話人個(gè)性信息,這使得系統(tǒng)難以取得良好的識別效果。考慮到不同的特征可以表征說話人不同的個(gè)性信息,多特征融合代表了更多的說話人信息,這在短語音條件下具有一定的優(yōu)勢。然而,最簡單的多特征融合方法就是將每一幀語音信號提取的多種聲學(xué)特征直接連接成一個(gè)大的高維向量。但是在實(shí)際中這種做法是不可取的,因?yàn)椴煌奶卣髦g并非正交,直接相連會(huì)相互影響,而且不同特征直接相連后會(huì)變成一個(gè)高維空間向量,提高維度意味增加了系統(tǒng)的復(fù)雜度;此外,其中很多維信息之間存在一定的重復(fù),會(huì)產(chǎn)生冗余信息。因此可以通過降維算法把高維空間向量映射到低維空間中,選取其中最具有區(qū)分性的部分。
基于此,本文首先選擇不同聲學(xué)特征組合,解決單一特征不能很好表達(dá)說話人個(gè)性信息的問題;其次,希望采用主成分分析(Principal Component Analysis, PCA)算法和線性判別分析(Linear Discriminant Analysis, LDA)算法克服多種聲學(xué)特征簡單組合的局限性[12],進(jìn)一步提高說話人識別系統(tǒng)性能。
i-vector系統(tǒng)用一組低維總體變化因子矢量代表一段語音,將每個(gè)說話人的一段語音的高維高斯均值超矢量s分解為:
s=m+Tw
(1)
其中:m為一個(gè)與特定說話人和信道無關(guān)的超矢量;T為全局差異空間;將高維高斯混合模型均值超矢量在該子空間上進(jìn)行投影,得到低維的總體變化因子矢量w,w為包含整段語音中說話人和信道信息的一個(gè)全局差異因子,即i-vector。
在i-vector模型中,假定來自第i段語音的第t語音幀xt(i)分布如下:
(2)
其中:K為通用背景模型(Universal Background Mode, UBM)高斯分量的混合數(shù);Tk為矩陣低秩子空間;ω(i)是特定語音段i符合標(biāo)準(zhǔn)正態(tài)分布的隱藏因子;μk和Σk分別是第k個(gè)高斯分量的均值和協(xié)方差;γkt(i)為xt(i)對第k個(gè)高斯分量的后驗(yàn)概率。γkt(i)的計(jì)算公式為:
γkt(i)=p(k|xt(i))
(3)
語音段的i-vector為隱藏因子ω(i)的極大后驗(yàn)點(diǎn)估計(jì),也是隱藏因子的后驗(yàn)均值。對給定的一段語音,各階統(tǒng)計(jì)量計(jì)算如下:
(4)
(5)
(6)
其中:Nk、Fk和Sk依次表示為零階、一階和二階統(tǒng)計(jì)量。這些統(tǒng)計(jì)量是用來訓(xùn)練子空間矩陣T并提取i-vector所需要的全部數(shù)據(jù)。
在大多數(shù)情況下,為了減少計(jì)算量,本文假設(shè)高斯混合模型(Gaussian Mixture Model, GMM)的每個(gè)協(xié)方差矩陣都是對角矩陣。這就意味著具有不相關(guān)和正交的特征向量可以通過使用GMM實(shí)現(xiàn)最優(yōu)的性能,而具有相關(guān)和非正交的特征向量的估計(jì)可能只是近似實(shí)際分布,造成各階統(tǒng)計(jì)量計(jì)算不準(zhǔn)確,從而影響說話人識別性能。值得注意的是,不同特征的基向量也可能是相關(guān)和非正交的,如果直接把這些特征連接起來,那么估計(jì)的充分統(tǒng)計(jì)量也會(huì)不夠準(zhǔn)確,導(dǎo)致最后的i-vector模型決策的準(zhǔn)確度也不高。為了解決這個(gè)問題,在本文算法中使用PCA來保持總特征空間的基向量不相關(guān)和正交,即去除特征向量之間的相關(guān)性。
假設(shè)輸入數(shù)據(jù)矩陣x,具有行零經(jīng)驗(yàn)樣本均值,其中:n列中的每一個(gè)xi表示實(shí)驗(yàn)的不同線性組合;x的平均值為0;ω假定為單位方向向量。 在ω方向上的協(xié)方差矩陣如下:
(7)
max{ωTΣω};ωTω=1
(8)
f(ω)=ωTω+λ(1-ωTω)
(9)
(10)
要使方程(10)成立的條件是讓投影矩陣的協(xié)方差最大化。顯然,解方程(10)相當(dāng)于計(jì)算特征值λ和特征向量ω,σω計(jì)算如下:
σω=λωTω=λ
(11)
這意味著λ越大,σω越大。 值得注意的是,Σ是實(shí)對稱矩陣且其特征向量之間是正交的,因此前M個(gè)最大特征值對應(yīng)的特征向量所生成的投影矩陣ωPCA可以將D維空間映射到具有最大協(xié)方差的M(M≤D)維空間:
ωPCA=[ω1ω2…ωM]
(12)
PCA算法的好處是能夠簡單直接地對數(shù)據(jù)進(jìn)行降維和正交化,但是由于PCA算法是一種無監(jiān)督的學(xué)習(xí)方式,只是將所有數(shù)據(jù)整體映射到最能體現(xiàn)這組數(shù)據(jù)整體區(qū)分性的坐標(biāo)上,并未利用不同類別的數(shù)據(jù)關(guān)系來進(jìn)行數(shù)據(jù)分析。為了彌補(bǔ)這種不足,使用LDA這種監(jiān)督學(xué)習(xí)方法,可以利用數(shù)據(jù)上的分類標(biāo)簽,在低維空間上尋找不同類別數(shù)據(jù)間的最大區(qū)分性,對分類問題很有幫助。
對于處于n維空間Rn上的帶標(biāo)簽數(shù)據(jù)集X,總數(shù)據(jù)量的數(shù)據(jù)點(diǎn)數(shù)為N,總數(shù)據(jù)類數(shù)為C,其中第i(i∈[1,C])類的數(shù)據(jù)集Xi包含Ni個(gè)數(shù)據(jù)點(diǎn),所以N1+N2+…+NC=N,根據(jù)上面的定義可以計(jì)算第i類數(shù)據(jù)集的樣本均值μi和總體樣本均值μ分別為:
(13)
(14)
LDA可以使數(shù)據(jù)經(jīng)過投影以后,達(dá)到最小的類內(nèi)方差和最大的類間方差,所以需要計(jì)算各類的類內(nèi)離散度SW和不同類之間的類間離散度SB為:
(15)
(16)
其中:ω為高維空間Rn向低維空間映射的投影矩陣。根據(jù)LDA的優(yōu)化準(zhǔn)則有:
(17)
對于方程(17)的求解,相當(dāng)于對方程SBωi=λiSWωi求其最大的L(L≤C-1)個(gè)特征值和它對應(yīng)的特征向量。
在本文算法中,通過組合起來的語音特征向量進(jìn)行了一個(gè)整體的變換形成一個(gè)新的特征向量。訓(xùn)練和測試語音被分成許多幀,其中部分幀之間有重疊,所以從每幀中提取所有類型的特征向量。那么其中一段語音信號中提取的所有不同特征向量,可以由如下的M維長特征向量(1≤M≤H)表示:
(18)
其中:H表示劃分的語音幀數(shù);C表示提取的特征類型數(shù)。用倒譜均值減(Cepstrum Mean Subtraction, CMS)使各列的樣本均值為零,這樣可以有效降低信道和噪聲的影響。
在特征提取之后,把所有特征通過PCA方法計(jì)算投影矩陣。值得注意的是,特征矩陣F是由行向量組成的,因此特征矩陣F的協(xié)方差矩陣計(jì)算如下:
σF=FTF
(19)
顯然σF是對角化的,因?yàn)樗且粋€(gè)對稱矩陣。那么特征矩陣的協(xié)方差σF可以分解如下:
(20)
其中:ωi是特征值λi對應(yīng)的歸一化特征向量。假設(shè)λ1≥λ2≥…≥λt,那么投影矩陣ωPCA可以有前p個(gè)最大特征值對應(yīng)的特征向量生成,如下:
ωPCA=[ω1ω2…ωp]
(21)
ωPCA用于將所有特征向量映射到不相關(guān)和正交的特征空間,包括UBM、訓(xùn)練和測試的特征向量,則經(jīng)過PCA方法變換后的新特征可以表示為:
(22)
在去相關(guān)的基礎(chǔ)上,進(jìn)一步采用LDA方法使特征具有更好的區(qū)分性。相當(dāng)于求解方程SBωi=λiSWωi,取前L個(gè)最大非零特征值對應(yīng)的L個(gè)特征向量(L≤C-1)則為最優(yōu)解,可以表示為:
ωLDA=[ω1ω2…ωL]
(23)
(24)
其中:特征矩陣FH×M的維數(shù)M根據(jù)計(jì)算LDA變換時(shí)選取的特征根和特征向量的不同,其維數(shù)也不同,需要根據(jù)特征根占全局的比重來選取合適的最具區(qū)分性的特征部分(特征根比重大于99%)。
在將所有特征變換到不相關(guān)且正交的特征空間之后,可以從訓(xùn)練語音中提取的部分語音訓(xùn)練UBM模型。然后根據(jù)UBM模型和訓(xùn)練數(shù)據(jù),運(yùn)用i-vector方法生成每一個(gè)說話人模型。其中,從語音數(shù)據(jù)里提取的訓(xùn)練和測試語音特征需要經(jīng)過整體變換矩陣映射到同一個(gè)特征空間。最后將變換后的測試特征向量與目標(biāo)說話人特征向量進(jìn)行得分判決。本文算法的整體框架如圖1所示。
圖1 本文算法總體框圖Fig.1 Overall diagram of proposed algorithm
實(shí)驗(yàn)是在TIMIT數(shù)據(jù)庫150位女性數(shù)據(jù)和150位男性數(shù)據(jù)上進(jìn)行的,采樣率為16 kHz,采樣位數(shù)為16 bit,每人10段語音,句子長度1~10 s不等,利用HTK工具對語音信號進(jìn)行預(yù)處理和特征提取,選用的特征有13維MFCC(不包括C0和C1)[13],20維感知對數(shù)面積比(Perceptual Log Area Ratio, PLAR)[14]和12維線性預(yù)測倒譜系數(shù)(Linear Prediction Cepstrum Coefficient, LPCC)。選取train文件里的dr1~dr8中的數(shù)據(jù)訓(xùn)練UBM,隨機(jī)挑選30段作為訓(xùn)練整體變換矩陣使用;選取test中的dr1~dr8中的50名男性和50名女性數(shù)據(jù)作為測試數(shù)據(jù)。測試語音中每個(gè)人的6段語音用來訓(xùn)練說話人模型,其余4段可隨機(jī)截取為7種不同長度(0.5 s,1 s,2 s,4 s,6 s,8 s,10 s)的語音用來測試。
對于特征提取的參數(shù)在處理過程中盡量保持相同,首先語音分幀參數(shù)相同,幀長為20 ms,幀移為10 ms。此外,預(yù)加重系數(shù)選取為0.97,使用漢明窗作為窗函數(shù),Mel濾波器個(gè)數(shù)定為30。
本文使用兩個(gè)基線系統(tǒng):經(jīng)典的GMM-UBM說話人識別系統(tǒng)以及標(biāo)準(zhǔn)的i-vector說話人識別系統(tǒng)。其中,GMM-UBM模型包含1 024個(gè)高斯混合數(shù),每個(gè)高斯的協(xié)方差矩陣為對角陣。訓(xùn)練全局差異空間矩陣T的語料與訓(xùn)練UBM的語料一致,全局差異空間矩陣采用隨機(jī)初始化,迭代6次,最終得到全局差異空間矩陣?;€系統(tǒng)的特征被設(shè)定為多特征系統(tǒng)中使用特征的適當(dāng)子集,本文基線系統(tǒng)僅使用13維(不包括C0和C1)MFCC作為特征進(jìn)行比較,從13維MFCC中提取400維的i-vector。
作為說話人識別系統(tǒng)最常用的評價(jià)指標(biāo),NIST的等錯(cuò)誤率(Equal Error Rate, EER)和檢測代價(jià)函數(shù)(Detection Cost Function, DCF)被用來比較基線系統(tǒng)和本文方法,DCF的有效先驗(yàn)部分在NIST SRE’10[6]中定義為0.001。
首先,通過Matlab的降維工具包drtoolbox在TIMIT數(shù)據(jù)庫上對直接相連的45維特征向量進(jìn)行降維,找出最具區(qū)分性的特征部分,不同降維程度對兩種基線系統(tǒng)的性能影響如圖2??梢园l(fā)現(xiàn)針對兩種基線系統(tǒng),當(dāng)特征維數(shù)在30維左右時(shí),說話人識別系統(tǒng)的性能達(dá)到最優(yōu);而當(dāng)特征維數(shù)超過30以后,特征向量所包括的說話人信息的增加速度遠(yuǎn)低于區(qū)分性信息的增加的速度,所以導(dǎo)致系統(tǒng)性能呈下降趨勢。因此,多特征變換系統(tǒng)的特征維數(shù)為前30維。
圖2 不同維度對兩種基線系統(tǒng)性能的影響Fig.2 Effects of different dimensions on the performance of two baseline systems
接著,對不同特征在兩種基線系統(tǒng)下的性能進(jìn)行比較,其中測試語音長度保持在2 s,不同特征在短語音條件下的系統(tǒng)性能(EER)對比如表1??梢园l(fā)現(xiàn)短語音條件下的不同特征將直接影響系統(tǒng)性能,其中:LPCC特征的結(jié)果最差,PLAR特征的性能相對比較好,MFCC特征性能居中;同時(shí)也說明不同特征之間存在一定的差異。但是單純地將三種特征向量直接相連后的實(shí)驗(yàn)結(jié)果卻不如任意一種單一特征系統(tǒng),這也驗(yàn)證了本文對于多種特征直接組合是不可取的觀點(diǎn),因?yàn)樘卣髦g雖然存在互補(bǔ)性,但是不同的特征之間的向量并不是完全正交的,它們在空間中會(huì)相互影響。針對以上問題,可以發(fā)現(xiàn)本文提出的多特征變換算法的系統(tǒng)性能優(yōu)于單特征系統(tǒng)。具體結(jié)論如下:在GMM-UBM說話人識別系統(tǒng)中,本文提出的多特征變換算法相對三種單特征系統(tǒng)的EER分別下降了35.76%、34.14%和44.37%;而對于i-vector說話人識別系統(tǒng),分別下降了72.16%、69.47%和73.62%。對比兩種系統(tǒng)的多特征組合變換算法的實(shí)驗(yàn)結(jié)果,i-vector說話人識別系統(tǒng)相對于GMM-UBM說話人識別系統(tǒng)有66.80%的降低,這驗(yàn)證了多特征i-vector說話人識別系統(tǒng)在短語音條件下的有效性。
表1 短語音條件下不同特征性能比較Tab.1 Performance comparison of different features under short speech condition
最后,針對不同的短語音長度,分析不同語音長度對系統(tǒng)的影響,兩種基線系統(tǒng)和提出系統(tǒng)的EER和DCF的性能比較如表2所示。 從表2可看出:與兩種基線系統(tǒng)相比,本文算法在實(shí)驗(yàn)中表現(xiàn)出最好的性能。與具有單一特征的i-vector系統(tǒng)相比,本文算法的EER和DCF減小50%;另外,當(dāng)測試語音長度大于4 s時(shí),本文算法能保持相對較低的EER,而單一特征系統(tǒng)的性能卻迅速下降。這表明了從語音中提取更多信息來彌補(bǔ)數(shù)據(jù)缺失,能使短語音說話人識別系統(tǒng)性能更好。
表2 不同語音長度下說話人識別性能比較Tab.2 Comparison of speaker recognition performance under different speech lengths
本文提出了一種基于多特征i-vector的短語音說話人識別系統(tǒng)算法。首先從語音段中提取了MFCC、PLAR、LPCC三種具有說話人不同特性的特征進(jìn)行了組合,解決單一特征說話人信息量不足的問題;然后采用主成分分析法(PCA)進(jìn)行多種不同特征之間的去相關(guān),使得特征之間相互正交化;最后為了提取說話人類內(nèi)和類間數(shù)據(jù)更具區(qū)分性的部分,采用線性鑒別分析法(LDA)對特征向量進(jìn)行處理,得到新的多特征向量作為i-vector說話人模型的輸入進(jìn)行說話人識別。用TIMIT語料庫的在Matlab 2015b上進(jìn)行實(shí)驗(yàn)驗(yàn)證了本文算法的可行性和有效性。