李建文 趙統(tǒng)軍
(陜西科技大學(xué)電子信息與人工智能學(xué)院 陜西省西安市 710021)
說(shuō)話人識(shí)別也叫聲紋識(shí)別,是根據(jù)說(shuō)話人的語(yǔ)音判斷其身份的技術(shù)。由于每個(gè)人在說(shuō)話時(shí)使用的發(fā)聲器官,如聲帶、口腔、舌頭、牙齒、口腔、鼻腔等在尺寸和形態(tài)方面有著生理上的不同,并且每個(gè)人說(shuō)話時(shí)對(duì)于這些器官的使用程度也有著習(xí)慣上的差異,這些特點(diǎn)使得每個(gè)人的語(yǔ)音都有著明確的個(gè)人信息。說(shuō)話人識(shí)別的任務(wù)就是提取語(yǔ)音中說(shuō)話人特征,以此來(lái)區(qū)分不同說(shuō)話人,達(dá)到識(shí)別說(shuō)話人的目的。
在早期,說(shuō)話人語(yǔ)音數(shù)據(jù)不足,計(jì)算機(jī)性能有限,傳統(tǒng)的GMM-UBM 模型[1],對(duì)說(shuō)話人身份進(jìn)行建模,先使用大量的非目標(biāo)用戶數(shù)據(jù)訓(xùn)練UBM,再利用MPA 自適應(yīng)算法和目標(biāo)人數(shù)據(jù)更新局部參數(shù),建立說(shuō)話人模型。該模型一般選擇經(jīng)過(guò)預(yù)加重、分幀、加窗、傅里葉變換等步驟獲得的MFCC 特征向量作為輸入。后來(lái)出現(xiàn)了特征更加緊湊的I-vector 矢量[2],用來(lái)表征說(shuō)話人特征。
隨著計(jì)算機(jī)性能的提升,深度學(xué)習(xí)也開(kāi)始在特征提取方面顯示出優(yōu)勢(shì),最開(kāi)始Google 提出d-vector 特征向量[3],將語(yǔ)音信息輸入DNN,將最后一層的數(shù)據(jù)作為特征用于代替之前的I-vector,開(kāi)啟了深度學(xué)習(xí)時(shí)代。DNN 的使用更加促進(jìn)了深度學(xué)習(xí)網(wǎng)絡(luò)的應(yīng)用,之后出現(xiàn)了性能更好的x-vector[4]。而隨著在圖像處理領(lǐng)域有著良好效果的卷積神經(jīng)網(wǎng)絡(luò)CNN 的加入,包含更多信息的梅爾語(yǔ)譜圖也更加適合作為語(yǔ)音的特征輸入,有人嘗試使用混合CNN 網(wǎng)絡(luò)[5]提取特征,結(jié)合LSTM[6]。不過(guò)CNN 在增加過(guò)多深度的同時(shí)會(huì)引起梯度爆炸或消失的現(xiàn)象,隨后出現(xiàn)了基于ResNet[7]的改進(jìn)ResCNN[8],通過(guò)使用殘差結(jié)構(gòu),使得卷積網(wǎng)絡(luò)模型設(shè)計(jì)更加多層數(shù)的同時(shí),避免出現(xiàn)梯度爆炸等現(xiàn)象。在圖像處理領(lǐng)域中,Attention注意力機(jī)制[9]提出了針對(duì)重要信息突出的想法,把任務(wù)中需要的特征信息進(jìn)行強(qiáng)調(diào),不需要的其他信息進(jìn)行抑制。有人嘗試將傳統(tǒng)TDNN[10]中加入注意力模塊,提升了傳統(tǒng)模型的效果。Google 也在注意力機(jī)制上進(jìn)行了探索,用于對(duì)上下文相關(guān)信息的LSTM[11]模型進(jìn)行改進(jìn)。之后也出現(xiàn)了一些權(quán)重分配的其他方案[12,13],嘗試與其他傳統(tǒng)模型進(jìn)行結(jié)合[14,15],但仍未將語(yǔ)音信息中說(shuō)話人相關(guān)信息充分提取。
目前注意力機(jī)制被運(yùn)用在其他領(lǐng)域居多,在運(yùn)用時(shí)只在單一維度進(jìn)行使。在說(shuō)話人識(shí)別中也未能進(jìn)行深入探索,因此,本文提出了3A-RCNN 網(wǎng)絡(luò)模型,運(yùn)用注意力機(jī)制在通道維度、時(shí)間維度、頻率維度三個(gè)維度進(jìn)行權(quán)值自分配,結(jié)合深度殘差CNN 網(wǎng)絡(luò)對(duì)特征的充分提取能力,從中篩選出說(shuō)話人身份信息。
在卷積神經(jīng)網(wǎng)絡(luò)模型提取說(shuō)話人特征時(shí),對(duì)于卷積核提取出來(lái)的通道空間特征,總是等權(quán)重的進(jìn)行傳遞,而實(shí)際中不同卷積核提取出不同通道,包含的身份特征信息并不相同。為了能加深重要權(quán)重通道的影響力,本文提出,將通道維度注意力機(jī)制引入卷積模型的殘差結(jié)構(gòu)中,通過(guò)對(duì)提取出的通道空間進(jìn)行權(quán)重分配,使得更重要的空間特征獲得更高的權(quán)重。由于神經(jīng)網(wǎng)絡(luò)的卷積核個(gè)數(shù)通常較大,為了提高模型的泛化能力,所以通道維度的注意力機(jī)制使用較為復(fù)雜的設(shè)置方式,同時(shí)進(jìn)行全局平均池化和全局最大池化,之后的時(shí)間和頻率維度注意力機(jī)制則使用較為簡(jiǎn)潔的設(shè)置方式。引入的注意力機(jī)制框架如圖1 所示。
圖1:通道注意力機(jī)制
圖2:時(shí)間注意力機(jī)制
圖3:頻率注意力機(jī)制
表1:3A-RCNN 參數(shù)設(shè)置
表2:不同殘差塊個(gè)數(shù)對(duì)模型的影響
表3:不同模型性能對(duì)比
通道維度注意力機(jī)制連接在傳統(tǒng)殘差結(jié)構(gòu)的后面,以殘差結(jié)構(gòu)作為輸入。輸入的特征圖為其中M 表示輸入的特征圖,F(xiàn) 表示頻率維度,T 表示時(shí)間幀數(shù),C 表示通道維度,表示學(xué)習(xí)到的通道維度權(quán)重。
首先,殘差塊輸入的特征圖M 分別輸入Globalaveragepooling層和Globalmaxpooling 層,得到兩個(gè)維度為通道維度C 的特征圖,之后并列疊加,維度變?yōu)?2,C),繼續(xù)傳入Dense 層,通過(guò)Relu激活函數(shù)進(jìn)行激活,再傳入Dense 層,之后將通道維度求和并輸入Softmax 激活函數(shù)進(jìn)行激活,通道權(quán)重映射在0 到1 之間,Softmax激活函數(shù)公式為:
其中ei代表第i 個(gè)通道的權(quán)值,Si就是第i 個(gè)通道在所有通道C 中的權(quán)重,激活之后就得到表示通道權(quán)重的之后將特征圖M 各個(gè)維度與通道權(quán)重Ac相乘,得到經(jīng)過(guò)通道權(quán)重分配的新特征圖M1,通道維度注意力機(jī)制運(yùn)算公式如下:
將計(jì)算出的特征圖M1向后傳遞到下一個(gè)處理單元。
圖4:殘差結(jié)構(gòu)
語(yǔ)音信息相比于其他數(shù)據(jù),特殊點(diǎn)在于具有時(shí)間維度,不同的時(shí)間幀中包含的說(shuō)話人之間的差異信息,為了增加特定時(shí)間幀的權(quán)重,本文提出將注意力機(jī)制作用于時(shí)間維度,具體框架如圖2 所示。
時(shí)間維度注意力機(jī)制連接在通道維度注意力機(jī)制后面,輸入為特征圖M1,時(shí)間注意力機(jī)制運(yùn)算過(guò)程如下:
其中,Mf()和Mc()分別表示在特征維度和通道維度計(jì)算平均值的過(guò)程,表示學(xué)習(xí)到的時(shí)間維度權(quán)重,其余符號(hào)意義和公式(2)相同。
將計(jì)算出的特征圖M2向后傳遞到下一個(gè)處理單元。
對(duì)于不同頻率的特征,同樣需要進(jìn)行權(quán)重分配,本文提出將特征注意力機(jī)制作用于頻率維度,具體框架如圖3 所示,運(yùn)算過(guò)程如下:
頻率維度注意力機(jī)制連接在時(shí)間維度注意力機(jī)制后面,輸入為特征圖M2,頻率注意力機(jī)制運(yùn)算過(guò)程如下:
其中,Mt()表示在時(shí)間維度取平均值的過(guò)程,表示學(xué)習(xí)到的頻率維度權(quán)重,其余符號(hào)意義和公式(2)相同。
計(jì)算出特征圖M3,完成權(quán)重分配。
在ResNet 中,殘差塊可以有效解決深層網(wǎng)絡(luò)的梯度消失問(wèn)題,具有強(qiáng)大的特征學(xué)習(xí)能力,圖4(a)為傳統(tǒng)的殘差結(jié)構(gòu),圖4(b)為本文提出的3A 殘差結(jié)構(gòu)。
輸入數(shù)據(jù)經(jīng)過(guò)原始的殘差結(jié)構(gòu)后,連接上文提出的3A 殘差結(jié)構(gòu),這樣會(huì)讓每次殘差結(jié)果都進(jìn)行了3A 注意力的權(quán)值分配。3A 殘差結(jié)構(gòu)如圖4 所示,不同層的殘差結(jié)構(gòu)相同,參數(shù)不同。
圖5:3A-RCNN 網(wǎng)絡(luò)結(jié)構(gòu)
圖6:準(zhǔn)確率和損失值隨迭代次數(shù)變化
圖7:不同模型準(zhǔn)確率隨迭代批次的變化
圖8:不同模型損失值隨迭代批次的變化
基于3A-RCNN 網(wǎng)絡(luò)的聲紋識(shí)別模型如圖5 所示,網(wǎng)絡(luò)的輸入端使用的是聲紋識(shí)別中常用梅爾語(yǔ)譜圖,不僅保留了足夠多的說(shuō)話人身份信息,又能模擬人耳將信息進(jìn)行了過(guò)濾,以圖片的形式輸入神經(jīng)網(wǎng)絡(luò)中,其大小為128×376,128 為頻率維度,376 為時(shí)間維度,圖中明亮程度代表能量大小,能量越大,亮度越大。
當(dāng)數(shù)據(jù)進(jìn)入3A-RCNN 網(wǎng)絡(luò),按照表1 所示,先進(jìn)入conv64卷積層,卷積核大小為(5,5),卷積核個(gè)數(shù)為64,步長(zhǎng)為(2,2),得到特征圖X,之后進(jìn)入3A_01 殘差結(jié)構(gòu),其中包含4 個(gè)3A 殘差塊,每個(gè)3A 殘差塊運(yùn)算過(guò)程見(jiàn)第1 節(jié)。之后按照表1 后續(xù)的層級(jí)設(shè)計(jì)和參數(shù)設(shè)置依次向后傳遞,最終將提取出的特征進(jìn)行average pooling,再輸入全連接Dense 層,得到最終的說(shuō)話人特征。
最后,將說(shuō)話人特征輸入Softmax 分類(lèi)器中進(jìn)行分類(lèi),Softmax分類(lèi)器的計(jì)算如下:
假設(shè)所有輸入語(yǔ)音數(shù)據(jù)有n 個(gè)說(shuō)話人,對(duì)于給定某條語(yǔ)音x,每一個(gè)說(shuō)話人類(lèi)別j 的輸出概率值為p(y=j|x),用n 個(gè)向量表示n 個(gè)說(shuō)話人輸出概率值,則Softmax 函數(shù)為:
其中,hθ(x)為Softmax 分類(lèi)的輸出,θ 為模型參數(shù),x 為輸入的某條語(yǔ)音這一項(xiàng)對(duì)概率分布進(jìn)行歸一化,使得所有說(shuō)話人概率之和為1。
本文對(duì)輸入數(shù)據(jù)的標(biāo)簽進(jìn)行獨(dú)熱編碼,損失函數(shù)為交叉熵?fù)p失函數(shù),其表達(dá)式為:
其中p(y=j)表示某個(gè)數(shù)據(jù)真實(shí)標(biāo)簽y 中屬于第j 個(gè)說(shuō)話人的概率,表示數(shù)據(jù)的預(yù)測(cè)標(biāo)簽在屬于第j 個(gè)說(shuō)話人的概率。
本次實(shí)驗(yàn)所使用的計(jì)算機(jī)配置如下:處理器型號(hào)為Intel (R) Core (TM) i5-9600KF CPU @ 3.70 GHz;內(nèi)存大小為16GB;操作系統(tǒng)為Windows10 專(zhuān)業(yè)版64 位操作系統(tǒng);GPU 為GeForce RTX 2070s;深度學(xué)習(xí)開(kāi)發(fā)平臺(tái)為T(mén)ensorFlow 2.0.0。
本次實(shí)驗(yàn)所使用的數(shù)據(jù)集為Free ST Chinese Mandarin Corpus,該數(shù)據(jù)集為免費(fèi)的公開(kāi)中文數(shù)據(jù)集,其中包含855 位說(shuō)話人,每人包含120句語(yǔ)音,每句語(yǔ)音時(shí)長(zhǎng)2到8秒不等,總共有102600句語(yǔ)音,語(yǔ)音采樣率均為16000Hz,語(yǔ)音均為標(biāo)準(zhǔn)普通話,語(yǔ)音清晰。本文首先將該數(shù)據(jù)集中的語(yǔ)音進(jìn)行去除靜音操作,之后使用截取固定3秒鐘的語(yǔ)音片段,再將語(yǔ)音數(shù)據(jù)提取梅爾語(yǔ)譜圖作為模型的輸入,維度大小為128×376。在實(shí)驗(yàn)中,劃分?jǐn)?shù)據(jù)集中的80%作為訓(xùn)練集,20%作為測(cè)試集,兩組數(shù)據(jù)相互不包含。
本文使用在說(shuō)話人識(shí)別中常用的準(zhǔn)確率ACC(accuracy)和用于描述真實(shí)值和預(yù)測(cè)值差別的損失函數(shù)Loss(Loss function),其中損失函數(shù)Loss 的計(jì)算公式如公式(9)所示,準(zhǔn)確率公式如下:
其中,TPj表示第j 位說(shuō)話人中分類(lèi)正確的個(gè)數(shù),F(xiàn)Nj表示第j位說(shuō)話人中分類(lèi)錯(cuò)誤的個(gè)數(shù)。準(zhǔn)確率越高,分類(lèi)器效果越好,損失值越小,預(yù)測(cè)值與真實(shí)值越接近,效果越好。
實(shí)驗(yàn)測(cè)試中發(fā)現(xiàn),不同深度的選擇對(duì)模型的性能有不同程度的影響,為了使模型達(dá)到最佳效果,實(shí)驗(yàn)對(duì)比了不同深度的3A 殘差塊的性能差異,在模型訓(xùn)練完成后,記錄模型在測(cè)試集上的損失變化情況,實(shí)驗(yàn)結(jié)果如表2 所示。
從表2 中可以看到,隨著殘差塊個(gè)數(shù)的增加,模型收斂后的平均準(zhǔn)確率會(huì)逐漸上升,最小損失值也會(huì)不斷下降,其中每個(gè)殘差塊數(shù)量為4 時(shí),效果達(dá)到98.0%,損失達(dá)到0.061,達(dá)到最優(yōu)。
為了驗(yàn)證3A 殘差結(jié)構(gòu)帶來(lái)的提升,本文將提出的模型與不加入3A 殘差塊的原有RCNN 模型進(jìn)行對(duì)比,通過(guò)50000 次迭代,觀察兩個(gè)模型的收斂速度與性能。迭代結(jié)果點(diǎn)數(shù)有50000 個(gè),為了便于顯示,將顯示數(shù)據(jù)進(jìn)行平滑處理,便于進(jìn)行觀察,結(jié)果如圖6 所示。
圖6 表示3A-RCNN 和不增加3A 殘差塊的RCNN 兩個(gè)模型隨著網(wǎng)絡(luò)迭代次數(shù)變化在訓(xùn)練集上的損失值變化情況和兩個(gè)模型隨著網(wǎng)絡(luò)迭代次數(shù)變化在訓(xùn)練集上的準(zhǔn)確率變化情況。從圖中可以看出,3A-RCNN 模型在收斂速度上明顯快于RCNN 網(wǎng)絡(luò)模型,在迭代大約達(dá)到11000次之后,3A-RCNN開(kāi)始收斂,損失值穩(wěn)定在0.044左右,準(zhǔn)確率也穩(wěn)定在98.9%,而原本的RCNN 則需要在迭代約20000 次后才趨于穩(wěn)定,說(shuō)明使用3A 殘差塊的卷積網(wǎng)絡(luò)能夠更好在更短的時(shí)間內(nèi)提取出相應(yīng)的身份信息,從而在更少的訓(xùn)練次數(shù)下獲得更好的結(jié)果。
而在模型的性能提升上,本文將不同模型在相同測(cè)試數(shù)據(jù)集上的表現(xiàn)進(jìn)行展示,與3A-RCNN 模型進(jìn)行對(duì)比,結(jié)果如圖7 圖8 所示。
可以看出,沒(méi)有注意力機(jī)制的RCNN 網(wǎng)絡(luò),波動(dòng)幅度較大,最終在較大范圍內(nèi)波動(dòng)。文獻(xiàn)[8]提出的ResCNN 模型較為穩(wěn)定效果有所提升,但在最終收斂后的準(zhǔn)確率為95.4%,損失值為0.097。本文提出的3A-RCNN 模型相比于其他模型,準(zhǔn)確率上升平穩(wěn)、最終穩(wěn)定值高、且波動(dòng)小。損失值下降平穩(wěn)、最終穩(wěn)定在很低的水平,波動(dòng)小。
本文將上述模型以及近期相關(guān)模型結(jié)果進(jìn)行匯總,其結(jié)果如表3 所示。
從表3 可以看出,3A-RCNN 收斂后的平均準(zhǔn)確率達(dá)到了98.0%,收斂后平均損失值下降到了0.061,這表明通過(guò)對(duì)時(shí)間維度、通道維度、頻率維度三個(gè)維度進(jìn)行權(quán)重的自分配,再將信息通過(guò)全連接層及分類(lèi)器進(jìn)行分類(lèi),可以重點(diǎn)捕獲到需要提取的相關(guān)身份信息,屏蔽掉無(wú)關(guān)信息,表明了多重注意力機(jī)制嵌入殘差塊末端的有效性。
本文將語(yǔ)音信號(hào)轉(zhuǎn)化為梅爾語(yǔ)譜圖,將神經(jīng)網(wǎng)絡(luò)在圖像處理領(lǐng)域的新思想與新方法引入說(shuō)話人識(shí)別領(lǐng)域。并且提出一種新的3A注意力機(jī)制,并且嵌入每個(gè)殘差快的末端,與本文設(shè)計(jì)的ResCNN相結(jié)合,強(qiáng)化特征提取模型的專(zhuān)注性,搭建了新的模型3A-RCNN模型。多重注意力機(jī)制與殘差結(jié)構(gòu)深度的結(jié)合,擴(kuò)展了注意力機(jī)制在維度上的運(yùn)用,并且增強(qiáng)了每個(gè)殘差快的特異性提取功能,可以有針對(duì)性的捕獲到語(yǔ)音中與說(shuō)話人相關(guān)的特征,并且提升模型性能。下一步將引入文本內(nèi)容與說(shuō)話人識(shí)別結(jié)合,以達(dá)到輔助提升識(shí)別性能的目的。