龍 翔,夏秀渝
(四川大學(xué)電子信息學(xué)院,成都 610065)
不同人說(shuō)出的語(yǔ)音具有不同的聲紋特點(diǎn)。根據(jù)這些特點(diǎn),可以判斷某段語(yǔ)音是若干人中的哪一個(gè)所說(shuō),即說(shuō)話人識(shí)別。說(shuō)話人識(shí)別主要分為說(shuō)話人鑒別、說(shuō)話人確認(rèn)、說(shuō)話人聚類(lèi)等,具體應(yīng)用在刑偵破案、智能客服、智能家居、金融服務(wù)等方面。
隨著深度學(xué)習(xí)的蓬勃發(fā)展,和傳統(tǒng)的說(shuō)話人識(shí)別模型相比,基于神經(jīng)網(wǎng)絡(luò)的說(shuō)話人識(shí)別模型識(shí)別精度更高。說(shuō)話人識(shí)別主要由三個(gè)步驟組成:語(yǔ)音數(shù)據(jù)集的建立,說(shuō)話人特征提取,說(shuō)話人識(shí)別。目前已經(jīng)有比較完善的語(yǔ)音庫(kù),如TIMIT 庫(kù)、Thchs30 中文庫(kù);在特征提取方面,常用的語(yǔ)音特征參數(shù)有基音周期、共振峰、線性預(yù)測(cè)倒譜系數(shù)(Liner Prediction Cepstral Co?efficients,LPCC)、梅 爾 倒 譜 系 數(shù)(Mel Fre?quency Cepstral Coefficients,MFCC)等。通過(guò)研究,常見(jiàn)的MFCC、LPCC、GFCC 等參數(shù)能夠進(jìn)行識(shí)別,但是單一的特征參數(shù)不能囊括不同說(shuō)話人的全部特點(diǎn)。文獻(xiàn)[2]采取MFCC 與GFCC 混合特征參數(shù)進(jìn)行訓(xùn)練,純凈語(yǔ)音識(shí)別準(zhǔn)確率92%左右,較單獨(dú)使用MFCC 或GFCC 識(shí)別準(zhǔn)確率提高了10%??梢园l(fā)現(xiàn),根據(jù)不同語(yǔ)音特征參數(shù)的特點(diǎn)進(jìn)行特征融合對(duì)提高識(shí)別精度具有重要的研究意義。由于不同說(shuō)話人的感知特性主要反映在頻域中,時(shí)域特征可以輔助頻域特征參數(shù)進(jìn)行清濁音、有聲和無(wú)聲段的區(qū)分。所以本文采取融合頻域特征參數(shù)MFCC、MFCC一階差分(ΔMFCC)、GFCC、GFCC 一階差分(Δ GFCC)和時(shí)域特征參數(shù)短時(shí)能量作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練參數(shù)。在說(shuō)話人識(shí)別方面,動(dòng)態(tài)時(shí)間規(guī)整法(Dynamic Time Warping,DTW)、矢量量化法(Vector Quantization,VQ)、隱馬爾科夫模型(Hidden Markov Model,HMM)、人工神經(jīng)網(wǎng)絡(luò)法(Artificial Neural Network,ANN)等方法先后被廣泛應(yīng)用。典型的深度學(xué)習(xí)方法有全連接前饋神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Net?works,CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)。其中RNN 由于在處理時(shí)序數(shù)據(jù)方面的優(yōu)勢(shì)而被廣泛應(yīng)用于自然語(yǔ)言的識(shí)別和處理。1997 年,Hochreiter 和Schmidhuber首次提出了長(zhǎng)短時(shí)記憶(Long Short Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò),作為RNN 網(wǎng)絡(luò)的變形結(jié)構(gòu),LSTM 增加的門(mén)控單元能夠有效地避免RNN 存在的梯度消失和梯度爆炸的問(wèn)題,且能高效地抓取到語(yǔ)音信號(hào)的時(shí)序特性。但是LSTM只考慮了單向的時(shí)序數(shù)據(jù),忽視了后文信息對(duì)前文信息的重要性。針對(duì)以上問(wèn)題,本文識(shí)別模型采取雙向長(zhǎng)短時(shí)記憶(Bidirectional Long Short-Term Memory,BiLSTM)神經(jīng)網(wǎng)絡(luò),其在LSTM 基礎(chǔ)上添加了反向運(yùn)算,考慮到了上下文信息間的關(guān)聯(lián)性。
綜上,本文采取一種基于融合頻域和時(shí)域特征的說(shuō)話人識(shí)別模型,旨在提高模型的識(shí)別準(zhǔn)確率。實(shí)驗(yàn)表明,本文模型相較于其他模型具有更高的識(shí)別精度。
語(yǔ)音特征參數(shù)主要分為時(shí)域特征參數(shù)和頻域特征參數(shù)。人類(lèi)能夠準(zhǔn)確地分辨不同人說(shuō)話的音色和音調(diào),是因?yàn)槿祟?lèi)的聽(tīng)覺(jué)系統(tǒng)對(duì)語(yǔ)音信號(hào)的音高、音強(qiáng)、聲波的動(dòng)態(tài)頻譜具有較強(qiáng)的分析處理能力。所以頻域分析在語(yǔ)音信號(hào)分析處理中尤為重要,時(shí)域分析次之。
頻域特征參數(shù)MFCC 和GFCC 是利用人耳聽(tīng)覺(jué)模型建立的倒譜系數(shù),但是只反映了語(yǔ)音參數(shù)的靜態(tài)特性,ΔMFCC 和ΔGFCC 彌補(bǔ)了動(dòng)態(tài)特征的缺失,時(shí)域特征參數(shù)短時(shí)能量用來(lái)表示語(yǔ)音信號(hào)能量的大小和超音段信息。
本 文 將13 維MFCC、13 維GFCC、13 維ΔMFCC、13維ΔGFCC 和1維短時(shí)能量進(jìn)行拼接,組合成53維特征參數(shù)。
低頻聲音在內(nèi)耳蝸基底膜上行波傳遞的距離大于高頻聲音,低音容易掩蔽高音,所以相較于高頻信息,低頻部分更易被人類(lèi)感知,MFCC 就是根據(jù)這種特點(diǎn)設(shè)計(jì)的。
將線性頻譜映射到基于聽(tīng)覺(jué)感知的Mel非線性頻譜,然后再轉(zhuǎn)換到倒譜上,最終形成MFCC 特征參數(shù)。線性頻率與Mel 頻率之間的轉(zhuǎn)換公式如下:
MFCC參數(shù)的提取過(guò)程流程如圖1所示。
圖1 MFCC的提取過(guò)程
流程包括了信號(hào)預(yù)處理(預(yù)加重、分幀、加窗),對(duì)預(yù)處理后的語(yǔ)音信號(hào)進(jìn)行快速傅里葉變換,將信息轉(zhuǎn)換到頻域上,接著對(duì)每一幀頻域數(shù)據(jù)計(jì)算其譜線的能量,然后計(jì)算通過(guò)Mel濾波器的能量并取對(duì)數(shù),最后對(duì)數(shù)濾波器組能量求離散余弦變換(DCT)。相應(yīng)的計(jì)算公式如下:
式中,(,)是Mel濾波能量;為梅爾濾波器的個(gè)數(shù);為第幀;是DCT后的譜線。
人耳耳蝸中大部分的基底膜負(fù)責(zé)處理聲音信號(hào)的低頻部分。基底膜可以把不同頻率的聲音信號(hào)組成的混合音頻,經(jīng)過(guò)大腦分析濾除不被聽(tīng)者所重視的語(yǔ)音信息后,使聽(tīng)者接收到所需信號(hào)。GFCC 就是根據(jù)這種特點(diǎn)所設(shè)計(jì)的,Gammatone 濾波器的排列也是根據(jù)人類(lèi)基底膜的排列,其表達(dá)式為:
式中,為濾波器增益,為濾波器階數(shù),b為衰減因子系數(shù),f為濾波器中心頻率,()為階躍函數(shù),φ為偏移相位。
GFCC參數(shù)的提取過(guò)程流程如圖2所示。
圖2 GFCC的提取過(guò)程
GFCC 特征參數(shù)的提取流程和MFCC 提取流程類(lèi)似,只是將求得的每幀譜線能量通過(guò)Gam?matone濾波器來(lái)替代Mel濾波器。
MFCC 和GFCC 為語(yǔ)音信號(hào)的靜態(tài)特征,不符合語(yǔ)音動(dòng)態(tài)變化的特性,對(duì)MFCC 和GFCC 分別進(jìn)行差分運(yùn)算就得到了ΔMFCC 和ΔGFCC,Δ MFCC和ΔGFCC的運(yùn)算公式分別為:
式中Δ()表示第個(gè)一階差分,(+)表示第+個(gè)倒譜系數(shù)的階數(shù),表示差分幀的區(qū)間。
式中Δ()表示第個(gè)一階差分,(+)表示第+個(gè)倒譜系數(shù)的階數(shù),表示差分幀的區(qū)間。
語(yǔ)音信號(hào)的能量變化比較明顯,清音部分的能量要低于濁音,對(duì)短時(shí)能量分析可以描述語(yǔ)音的特征變化情況。語(yǔ)音信號(hào)的短時(shí)能量公式為:
式中()代表第幀語(yǔ)音信號(hào)的短時(shí)能量,y()代表第幀語(yǔ)音信號(hào),代表幀數(shù)。
上文提取的53維混合特征參數(shù)的維度過(guò)大,不僅會(huì)增大模型的時(shí)間復(fù)雜度和空間復(fù)雜度,還會(huì)產(chǎn)生多重共線性的問(wèn)題,從而對(duì)模型訓(xùn)練的精度造成影響。所以本文通過(guò)主成分分析法(Principal Component Analysis,PCA)對(duì)上文混合特征參數(shù)進(jìn)行降維。PCA 的任務(wù)是找到能夠主要表示原始維度信息的成分,從而達(dá)到降維的目的。
假設(shè)一個(gè)樣本空間位Y,對(duì)其進(jìn)行降維的主要步驟有:
(1)首先求出樣本均值
(2)計(jì)算樣本空間的協(xié)方差矩陣
(3)計(jì)算協(xié)方差矩陣的特征值和特征向量,特征值按照從大到小的順序排列
當(dāng)特征值>1 時(shí),說(shuō)明該主成分所含有的信息較為充分,通常降維后只保留特征值>1 的主成分。因此,本文進(jìn)行PCA 降維后保留前30維主成分組成本文目標(biāo)特征參數(shù)。
(4)計(jì)算在每一維的投影
人工神經(jīng)網(wǎng)絡(luò)是基于生物學(xué)的基本理論,模擬人類(lèi)大腦的神經(jīng)系統(tǒng)對(duì)復(fù)雜信息的處理機(jī)制的一種數(shù)學(xué)模型。其本質(zhì)是由很多小的非線性函數(shù)組成的非線性函數(shù)網(wǎng),網(wǎng)絡(luò)反映的是輸入特征參數(shù)與輸出標(biāo)簽之間的對(duì)應(yīng)關(guān)系。
目前神經(jīng)網(wǎng)絡(luò)的基本架構(gòu)有深度學(xué)習(xí)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等。
DNN 由于都是全連接形式的結(jié)構(gòu),隨著網(wǎng)絡(luò)層數(shù)的增加,參數(shù)增長(zhǎng)可能會(huì)出現(xiàn)爆炸的情況;CNN 盡管可以解決過(guò)度擬合和局部最優(yōu)解的問(wèn)題,但是在神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí),每一層的神經(jīng)元進(jìn)行的操作都只與前后毗鄰的一層神經(jīng)元直接相關(guān),無(wú)法對(duì)有時(shí)序關(guān)系的信號(hào)進(jìn)行建模;RNN 網(wǎng)絡(luò)中神經(jīng)元的輸出依賴(lài)當(dāng)前的輸入和記憶,很好地模擬了人類(lèi)擁有記憶的能力,但正是由于RNN 網(wǎng)絡(luò)結(jié)構(gòu)在自然語(yǔ)言處理方面的優(yōu)越性,其網(wǎng)絡(luò)結(jié)構(gòu)較DNN 和CNN 復(fù)雜很多,在反向傳播規(guī)模過(guò)大時(shí)會(huì)帶來(lái)梯度爆炸和梯度消失的問(wèn)題;而LSTM 神經(jīng)網(wǎng)絡(luò)只考慮了單向數(shù)據(jù)的信息,忽視了后文信息對(duì)前文的影響。
BiLSTM 神經(jīng)網(wǎng)絡(luò),其在LSTM 基礎(chǔ)上添加了反向運(yùn)算,考慮到了上下文信息的互相影響。BiLSTM 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)由正反向2 個(gè)LSTM 神經(jīng)網(wǎng)絡(luò)組成,LSTM的單元基本結(jié)構(gòu)如圖3所示。
圖3 LSTM基本單元結(jié)構(gòu)
圖3 中x代表當(dāng)前時(shí)刻的輸入,h代表上一時(shí)刻的輸出,C代表上一時(shí)刻的單元狀態(tài),h代表當(dāng)前時(shí)刻的輸出,C代表當(dāng)前時(shí)刻的單元狀態(tài),代表Sigmoid 激活函數(shù),tanh 代表tanh激活函數(shù),f代表遺忘門(mén),i代表輸入門(mén),C'代表單元狀態(tài)更新值,O代表輸出門(mén)。
遺忘門(mén)f決定了上一時(shí)刻的單元狀態(tài)有多少需要保留到當(dāng)前時(shí)刻,其計(jì)算公式如下:
式中,W代表遺忘門(mén)的權(quán)值,b代表遺忘門(mén)的偏置。
輸入門(mén)決定了當(dāng)前時(shí)刻網(wǎng)絡(luò)的輸入數(shù)據(jù)需要保存多少到單元狀態(tài),其計(jì)算公式如下:
式中,W代表輸入門(mén)輸出i的權(quán)值,b代表輸入門(mén)輸出i的偏置。
單元狀態(tài)更新值C'計(jì)算公式如下:式中,W代表輸入門(mén)單元狀態(tài)的輸出C'的權(quán)值,b代表輸入門(mén)單元狀態(tài)的輸出C'的偏置。
輸出門(mén)O決定了當(dāng)前時(shí)刻的單元狀態(tài)有多少需要輸出到當(dāng)前的輸出值,其計(jì)算公式如下:
最終,整個(gè)單元的輸出計(jì)算公式如下:
基于眾多研究實(shí)驗(yàn)表明,BiLSTM 神經(jīng)網(wǎng)絡(luò)不僅能夠很好地考慮到語(yǔ)音信號(hào)的時(shí)序關(guān)系,并且通過(guò)各種“門(mén)”的結(jié)構(gòu)能夠有效地解決長(zhǎng)序列訓(xùn)練過(guò)程中的梯度爆炸、梯度消失和長(zhǎng)距離依賴(lài)的問(wèn)題,同時(shí)可以充分利用語(yǔ)音數(shù)據(jù)上下文的相互影響以提高模型識(shí)別準(zhǔn)確率。所以本文選擇BiLSTM 神經(jīng)網(wǎng)絡(luò)作為說(shuō)話人識(shí)別的網(wǎng)絡(luò)模型。
本文仿真實(shí)驗(yàn)在Pycharm 平臺(tái)上實(shí)現(xiàn),神經(jīng)網(wǎng)絡(luò)的框架采用tensorflow2.0,神經(jīng)網(wǎng)絡(luò)模型第一層為輸入層,輸入本文提取的目標(biāo)特征參數(shù);第二、三層為BiLSTM 層,每層256 個(gè)神經(jīng)元;第四層為全連接層,神經(jīng)元的數(shù)量等于說(shuō)話人標(biāo)簽數(shù);第五層為SoftMax 層,實(shí)現(xiàn)標(biāo)簽的分類(lèi)。Batch_size 設(shè)置為128,迭代次數(shù)設(shè)置為100。
本文基于TIMIT 英文語(yǔ)音庫(kù)進(jìn)行實(shí)驗(yàn),語(yǔ)音庫(kù)中包含美國(guó)8 個(gè)地區(qū)630 個(gè)人的純凈語(yǔ)音數(shù)據(jù)。實(shí)驗(yàn)采用不同地區(qū)50 個(gè)人的語(yǔ)音數(shù)據(jù),每人10條語(yǔ)音,每條語(yǔ)音6 s左右。隨機(jī)選取每個(gè)說(shuō)話人的8 條語(yǔ)音作為訓(xùn)練數(shù)據(jù),2 條語(yǔ)音作為測(cè)試數(shù)據(jù),即訓(xùn)練數(shù)據(jù)400 條語(yǔ)音,測(cè)試數(shù)據(jù)100條語(yǔ)音,訓(xùn)練集:測(cè)試集比例為8 ∶2。
分 別采用13 維MFCC、13 維GFCC、13 維MFCC+13 維GFCC、13 維MFCC+1 維短時(shí)能量、13 維GFCC+1 維短時(shí)能量、13 維MFCC+13 維GFCC+1維短時(shí)能量、13維MFCC+13維ΔMFCC+13維GFCC+13維ΔGFCC+1維短時(shí)能量(53維混合特征參數(shù))以及本文目標(biāo)特征參數(shù)進(jìn)行對(duì)比實(shí)驗(yàn)。
圖4和圖5分別給出了各種特征參數(shù)在訓(xùn)練集和測(cè)試集上的準(zhǔn)確率(accuracy)和誤差(loss)曲線。
從圖4 和圖5 可以看出,所有參數(shù)在BiL?STM 模型上的準(zhǔn)確率都隨著迭代次數(shù)的增加而平穩(wěn)上升,最終達(dá)到收斂。本文所提取的目標(biāo)參數(shù)在訓(xùn)練集上的準(zhǔn)確率在50 輪迭代后達(dá)到收斂,穩(wěn)定在99.6%左右,在測(cè)試集上的最佳識(shí)別準(zhǔn)確率達(dá)到99.61%。從實(shí)驗(yàn)結(jié)果可以看出,本文模型較文獻(xiàn)[14]、文獻(xiàn)[2]中模型的識(shí)別精度分別提高了7.50%和3.00%。表1 列出了個(gè)不同參數(shù)在訓(xùn)練集和測(cè)試集上的最佳識(shí)別率。
圖4 測(cè)試集上不同特征參數(shù)的準(zhǔn)確率和損失值的對(duì)比曲線
圖5 訓(xùn)練集上不同特征參數(shù)的準(zhǔn)確率和損失值的對(duì)比曲線
表1 訓(xùn)練集和測(cè)試集上不同特征參數(shù)的最佳識(shí)別率對(duì)比
從表1 可以看出,將時(shí)域特征參數(shù)(短時(shí)能量)和頻域特征參數(shù)融合后,都比只采取頻域特征進(jìn)行訓(xùn)練的模型效果好。同時(shí),對(duì)維度多的特征參數(shù)進(jìn)行降維,既降低了模型訓(xùn)練的時(shí)間和空間復(fù)雜度,也降低了語(yǔ)音的無(wú)聲段和背景噪聲對(duì)識(shí)別精度的影響,提高了模型的識(shí)別準(zhǔn)確率。
結(jié)合語(yǔ)音特征參數(shù)的特點(diǎn)和深度學(xué)習(xí)在說(shuō)話人識(shí)別領(lǐng)域的研究成果,本文提出基于融合特征參數(shù)-BiLSTM 的說(shuō)話人識(shí)別研究方法,將不同特征參數(shù)和本文目標(biāo)特征參數(shù)送入雙向長(zhǎng)短時(shí)記憶(BiLSTM)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最終得到一種識(shí)別精度高的說(shuō)話人識(shí)別模型。實(shí)驗(yàn)結(jié)果表明,在TIMIT 數(shù)據(jù)庫(kù)上,本文模型取得了99.61%的識(shí)別準(zhǔn)確率。相對(duì)于其他特征參數(shù)和模型匹配的識(shí)別模型,本文提出的方法具有更高的識(shí)別精度。下一步研究可針對(duì)說(shuō)話人識(shí)別的同時(shí)進(jìn)行語(yǔ)音文本識(shí)別,以達(dá)到模型的廣泛實(shí)用性。