趙建川,楊浩銓,徐 勇,吳 戀,崔忠偉
(1. 貴州師范學院數(shù)學與大數(shù)據(jù)學院,貴陽 550018;2. 貴州師范學院大數(shù)據(jù)科學與智能工程研究院,貴陽 550018;3.哈爾濱工業(yè)大學(深圳)計算機科學與技術學院,深圳 518000)
語種識別(Language identification,LID)[1]通過計算機自動判斷某段音頻屬于哪一種語言,是智能語音處理領域的一個分支。語種識別技術在新一代信息技術中應用廣泛,例如,多語種識別的語音處理技術、語音實時翻譯和跨語言通信等[2]。語種識別的過程實際上是一個分類判決的過程,關鍵是獲取分類判決有用的特征[3],其實現(xiàn)過程可分為3 個步驟:從語音片段中獲得聲學特征、從聲學特征中提取有用的特征和對提取的特征進行分類判決。
語種識別的聲學特征是直接從音頻中提取語譜特征參數(shù),屬于幀級特征。常用的聲學特征包括移位分倒譜參數(shù)(Shifted delta cepstrum,SDC)[4]、感知線性預測系數(shù)(Perceptual linear predictive coefficient,PLP)[5]、梅爾倒譜參數(shù)(Mel frequency cepstral coefficient,MFCC)[6]和梅爾標度濾波器組(Filter bank,F(xiàn)bank)[7]等。語種識別技術的實現(xiàn)主要基于底層聲學特征,其發(fā)展經(jīng)歷了非深度學習和深度學習兩個階段。
非深度學習階段主要又分為基于高斯混合模型(Gaussian mixed model,GMM)和基于身份向量(Identity vector,i-vector)特征的語種識別方法。文獻[8]提出了高斯混合模型-通用背景模型(Gaussian mixed model-universal background model,GMM-UBM)的方法,該方法需要龐大的數(shù)據(jù)來估計協(xié)方差矩陣。數(shù)據(jù)量不足容易導致模型參數(shù)估計不準確,且跨信道使用時性能不佳。文獻[9]提出了高斯混合模型-支持向量機(Gaussian mixed model-support vector machine,GMM-SVM)的均值超向量分類算法,該方法相對于GMM-UBM 方法的識別性能有一定改善。i-vector 特征是將每條音頻的GMM 超向量映射為含有音頻顯著特征的低維向量,這個低維向量即為i-vector。文獻[10-11]使用從音頻中提取的i-vector 特征進行語種識別,有效地提高了識別效果,成為當時語種識別的主要方法之一。
基于深度學習的語種識別主要有i-vector 語種識別方法和x-vector 語種識別方法。文獻[12]將增加了瓶頸層的神經(jīng)網(wǎng)絡(Bottleneck deep neural network,BN-DNN)作為i-vector 的特征提取模型,對聲學特征進行多層非線性映射和降維壓縮,以得到魯棒性更強的高層抽象特征。該方法有效改善了基于GMM 模型的i-vector 語種識別系統(tǒng)性能,對長時語音效果好,對短時語音則效果不佳。文獻[13]提出了x-vector 方法,通過延時神經(jīng)網(wǎng)絡(Time delay neural network,TDNN)將不定長的語音片段映射到固定維度的embedding,這個embedding 就是x-vector。使用x-vector 特征進行語種識別相比于i-vector 特征具有更好的系統(tǒng)性能[14]。
研究者在x-vector 特征提取TDNN 網(wǎng)絡的基礎上進行了多種改進,以獲得更有用的特征。文獻[15]對TDNN 網(wǎng)絡進行改進提出了Extended-TDNN 網(wǎng)絡。Extended-TDNN 網(wǎng)絡拓展了時間上下文,并加入了Dense 層,增加了網(wǎng)絡深度。Extended-TDNN 提取的x-vector 相比于基礎TDNN 提取的x-vector 性能有所提升。文獻[16]提出了ECAPA(Emphasized channel attention)-TDNN 網(wǎng)絡,采用自注意力機制和多層聚合等增強方法,進一步拓展了時間上下文,并關注到全局屬性,提取出的x-vector特征在語種識別中表現(xiàn)出更優(yōu)異的識別性能。
ECAPA-TDNN 網(wǎng)絡是當前x-vector 特征提取最先進的網(wǎng)絡架構[17]。 因此,本文在ECAPA-TDNN 網(wǎng)絡的基礎上結合對比預測編碼(Contrastive predictive coding,CPC)模型的思想,提出一種ECAPA-TDNN+CPC 的多任務學習網(wǎng)絡模型。以ECAPA-TDNN 為主干網(wǎng)絡,提取語音的全局特征;改進的CPC 模型為輔助網(wǎng)絡,對ECAPA-TDNN 提取的幀級特征進行對比預測學習。最后,通過聯(lián)合損失函數(shù)進行優(yōu)化訓練。實驗結果表明,本文提出的網(wǎng)絡相比于基礎網(wǎng)絡ECAPA-TDNN 具有更好的語種識別性能。
語音信號是有時序性的數(shù)據(jù),對于語音信號的時序相關性TDNN 網(wǎng)絡具有很好的描述能力,它能夠獲取語音的上下文信息,體現(xiàn)語音的動態(tài)特性。標準的TDNN 網(wǎng)絡由幀級別層、統(tǒng)計池化層和段級別層組成[18]。幀級別層為5 層的時延網(wǎng)絡結構,處理語音的幀級別特征。語音片段的聲學特征序列X={x1,x2,…,xn}作為該層的輸入,其中n表示聲學特征的幀數(shù)。統(tǒng)計池化層對每一條語句的幀級別特征計算均值μ和標準差δ,表達式為
式中:gm表示幀級別特征;N表示語句的長度。
統(tǒng)計池化處理后得到整條語句的全局特征,但這個過程容易丟失部分語句的時序結構信息[19]。段級別層處理代表整個語音片段的全局性特征,由兩層全連接層組成,靠近統(tǒng)計池化層的層稱為Near 層,遠離統(tǒng)計池化層的層稱為Far 層,分別提取不同的x-vector 特征,輸入到全連接層后面Softmax 層。
ECAPA-TDNN 網(wǎng)絡基于標準的TDNN 網(wǎng)絡結構設計,引入了多項增強功能以獲取更強大的嵌入功能,網(wǎng)絡結構如圖1 所示。首先,池化層依賴于通道和上下文注意力機制,使得網(wǎng)絡可以關注每個通道的不同幀,賦予每一幀不同的權重,通過自注意力機制觀察語句的全局屬性,擴展池化層的時間上下文信息。 其次,ECAPA-TDNN 網(wǎng)絡加入了SE-Res2Block 模塊。如圖2 所示,網(wǎng)絡通過SE 塊與殘差塊Res2net[20]結合,重新調整幀級別層的通道數(shù),在局部操作的卷積塊中插入全局上下文信息,通過構建內部分層殘差連接來處理多尺度特征,從而減少模型參數(shù)的數(shù)量。最后使用多層特征聚合將所有SE-Res2Block 的輸出特征映射相連,在池化之前合并補充信息,獲取更細粒度語種特征以增強系統(tǒng)的魯棒性。
圖1 ECAPA-TDNN 網(wǎng)絡結構圖Fig.1 Structure of ECAPA -TDNN network
圖2 SE-Res2Block 模塊Fig.2 SE-Res2Block module
SE-Res2Block 模塊在訓練過程中為特征圖分配權重,與目標關聯(lián)大的分配較大權重,關聯(lián)小的分配較小權重。
SE 模塊首先進行壓縮操作,為每一個通道生成一個描述符,得到一個幀級特征的均值向量z,表達式為
式中ht表示每個特征的embedding 向量。
然后進行激勵操作,使用z中的描述符來計算每個通道的權重,即
式中:σ(·)為sigmoid 函數(shù);f(·)為非線性函數(shù);W1∈RR×C,W2∈RC×R,C為通道數(shù),R為降維數(shù);b1,b2表示偏移量。向量s包含介于0 和1 之間的權值sc。這些權重通過乘法作用于原始輸入,即
式中hc表示每個通道上的原始輸入。
標準的TDNN 網(wǎng)絡在幀級層使用了較短的時間上下文信息,忽略了語音片段的全局信息。ECAPA-TDNN 網(wǎng)絡充分考慮了語音片段的全局屬性,擴展了上下文信息,在信道估計過程中關注不同幀子集,性能更好,參數(shù)更少。
與預測編碼模型相比,CPC 模型[21]是一種無監(jiān)督的特征提取模型,可以從高維數(shù)據(jù)學習到對預測最有用的表征,其依賴噪聲對比估計訓練模型,在圖像、語音、自然語言處理和強化學習等多個領域都可以學習到高層信息。CPC 模型結構如圖3 所示。
圖3 CPC 模型結構Fig.3 Structure of CPC model
CPC 模型以原始語音信號作為輸入,采用一個非線性編碼器將分割到時間窗口上的每個特征向量xt進行編碼,得到一系列的表征向量zt,表達式為
然后再將zt以及潛空間中之前所有時刻的相關信息輸入到一個自回歸模型Gar中,生成當前時刻的上下文表示為ct,即
多任務學習[22]是把多個相關的任務放在一起并行學習,通過多個梯度同時反向傳播、多個任務參數(shù)共享來補充學習的一種機器學習方法,其參數(shù)共享方式分為硬參數(shù)共享和軟參數(shù)共享兩種模式。本文采用硬參數(shù)共享的多任務學習模型,把語種識別的訓練任務分為主任務——語音特征提取和輔助任務——對比預測學習。主任務采用ECAPA-TDNN 網(wǎng)絡模型,首先提取語音片段的幀級特征,然后經(jīng)過注意力池化層和全連接層進行語種的分類判決。輔助任務采用改進的CPC 網(wǎng)絡模型,以幀級特征作為輸入進行對比預測學習。網(wǎng)絡架構如圖4 所示,其中:J表示卷積核大??;d表示空洞卷積率,d=1 表示正常卷積;C表示通道維度;T表示時間維度;S表示語種的類別數(shù);GRU 為門控循環(huán)單元;Z為經(jīng)過Conv1D+ReLU 層處理后得到的幀級特征;k為時間步長,一般取偶數(shù)。
圖4 本文方法網(wǎng)絡整體架構圖Fig.4 Network architecture of the proposed method
主任務模塊以ECAPA-TDNN 作為主干網(wǎng)絡,ECAPA-TDNN 網(wǎng)絡的幀級別層首先從聲學特征中提取幀級特征向量z。然后將網(wǎng)絡進行分支:一個分支為輔助任務模塊,另一個分支為主任務模塊。兩個分支均以幀級別特征向量z作為輸入,最終網(wǎng)絡由這兩個分支共同優(yōu)化訓練。
多任務學習網(wǎng)絡的輔助任務模塊為改進的CPC 模型。改進的CPC 模型以ECAPA-TDNN 網(wǎng)絡的幀級網(wǎng)絡取代CPC 模型的非線性編碼器,ECAPA-TDNN 網(wǎng)絡處理得到的幀級特征輸入到改進的CPC模型自回歸模塊中,然后通過自回歸模塊進行對比預測學習構造正負樣本對。
輔助任務模塊中Z={zt-k,…,zt-2,zt-1,zt}作為輸入特征,自回歸模型選用網(wǎng)絡。GRU 網(wǎng)絡可以通過調節(jié)被提取特征的語音序列長度,得到豐富的上下文信息ct,即
在語種識別任務中,語種識別特征訓練模型的優(yōu)化由多任務學習網(wǎng)絡的損失函數(shù)共同完成。因此,為了提高正樣本對的相似度和負樣本的區(qū)分度,本文使用交叉熵損失函數(shù)Lce和改進的噪聲對比估計損失函數(shù)LinfoNCE對訓練網(wǎng)絡進行聯(lián)合監(jiān)督學習。交叉熵損失函數(shù)Lce表達式為
式中:B表示批次的大小;xi表示第yi類中第i個樣本的特征;Wj為W的第j行的參數(shù);b為偏置量。
改進的噪聲對比估計損失函數(shù)可以實現(xiàn)互信息最大化,損失值越小說明正樣本對的相似度越高,表達式為
式中:X={x1,x2,…,xN}為一組樣本;(xt+k,ct)為正樣本對;(xj,ct)為負樣本對,正樣本對取自與時間上下文ct間隔k個時間步長的樣本,負樣本為序列中隨機選取的樣本。fk(xt+k,ct)為密度比函數(shù),表示信息上下文ct的預測值和未來真實值xt+k之間相似程度,正比于未來真實值與隨機采樣值的概率之比,即
聯(lián)合損失Ltotal等于交叉熵損失Lce和改進的噪聲估計損失LinfoNCE之和,其中β為改進的噪聲對比估計損失的權重系數(shù),取值范圍為0 到1 之間。
實驗使用東方語種識別競賽提供的10 種不同語言數(shù)據(jù)集AP17-OLR[23],10 種語言分別為日語、韓語和哈薩克語(時長分別為5.8 h、5.9 h 和5.4 h);粵語、普通話、印度尼西亞語(時長分別為7.7 h、7.6 h 和7.5 h);越南語和俄語(時長分別為8.4 h 和9.9 h),藏語和維吾爾語(時長均為10 h)。每個語種的語音采樣頻率為16 kHz。實驗中隨機抽取80%為訓練集,20%為驗證集。測試集包含1 s,3 s 和全長(All)三個不同持續(xù)時間的子集。
本文實驗中訓練模型選用Adam 優(yōu)化器,epochs 設置為50,batch_size 設置為128。在多任務學習的輔助任務模型CPC 模型的自回歸選用GRU 網(wǎng)絡,損失函數(shù)權重系數(shù)β設置為0.001。實驗選用準確率Acc 作為評價指標[24-25]。
我們從大堆的復印資料中迅速翻閱和挑選,凡是五線譜的曲譜,就挑出來,最后竟挑出了兩百多頁!當時由于時間匆忙,完全沒有顧及查看都是什么內容,只覺得是沉甸甸的一包。歐陽鷺英十分慷慨地讓我們全部帶了回來。
3.2.1 多任務學習模型的性能分析
本節(jié)對多任務學習ECAPA-TDNN+CPC 網(wǎng)絡模型進行性能分析。將每類語種的MFCC 聲學特征輸入到網(wǎng)絡中,以3 s 時長的語音作為測試集,改進的CPC 網(wǎng)絡模型中時間步長k取12,分別記錄每一次迭代訓練的損失、準確率和學習率,得到如圖5、6 所示周期性訓練時系統(tǒng)參數(shù)變化曲線。由圖5 可知,在模型的訓練過程中,學習率調整的機制為先增加后減小。由圖6 可知,第1 次迭代訓練的損失為1.926 左右,準確率為92.75%,說明模型剛開始訓練時,損失較大,準確率較低。隨著迭代周期增加,損失開始下降,準確率逐漸增加。第10 次迭代訓練時,損失降為0.063 左右,此時的準確率大約為99.31%,后面訓練過程中損失逐漸減小,準確率會有小幅波動,說明模型收斂速度快。第40 次迭代訓練時模型已經(jīng)基本趨于穩(wěn)定。第48 次迭代訓練時準確率最高,達到99.54%,損失為0.020 4,此時得到的網(wǎng)絡參數(shù)就是最終優(yōu)化的網(wǎng)絡參數(shù)指標。
圖5 周期性訓練時學習率變化曲線圖Fig.5 Change curve of learning rate during periodic training
圖6 周期性訓練時準確率與損失變化曲線圖Fig.6 Change curve of accuracy and loss during periodic training
圖7 為單圖形處理器(Graphic processing unit,GPU)下ECAPA-TDNN 網(wǎng)絡和ECAPA-TDNN+CPC 網(wǎng)絡周期性訓練時運行時間變化曲線圖。由圖7 可知,ECAPA-TDNN 網(wǎng)絡每次訓練時間在331~333 s 之間,平均運行時間為331.12 s。ECAPA-TDNN+CPC 網(wǎng)絡每次訓練的時間在336~339 s 之間,平均運行時間為337.79 s,相對于基礎網(wǎng)絡相差了6.67 s。ECAPA-TDNN 網(wǎng)絡參數(shù)量為4.57 MB,ECAPA-TDNN+CPC 網(wǎng)絡參數(shù)量為7.47 MB,相對于基礎網(wǎng)絡增加了63.46%。雖然改進多任務學習網(wǎng)絡的參數(shù)量增加了,但是與基礎網(wǎng)絡的系統(tǒng)運行時間并沒有太大區(qū)別。
圖7 周期性訓練時運行時間變化曲線圖Fig.7 Change curve of running time during periodic training
3.2.2 多任務學習模型的實驗效果分析
本節(jié)以MFCC 和FBank 聲學特征作為輸入,時間步長k取12,在1 s、3 s 和All 測試集上分別驗證多任務學習ECAPA-TDNN+CPC 網(wǎng)絡和基礎網(wǎng)絡ECAPA-TDNN 和CPC 的語種識別準確率。實驗分析結果如表1、2 所示。
由表1 可見,1 s、3 s 和All 三個測試集的實驗中,多任務學習網(wǎng)絡的識別準確率相比于ECAPA-TDNN 網(wǎng)絡分別提高了1.92%、3.69%和2.80%,相比于CPC 網(wǎng)絡分別提高了49.42%、36.15%和40.86%。
表1 多任務學習模型中輸入為MFCC 聲學特征的準確率Table 1 Accuracy of multi-task learning model when inputting MFCC acoustic characteristics
由表2 可見,1 s、3 s 和All 三個測試集的實驗中,多任務學習網(wǎng)絡的識別準確率相比于ECAPA-TDNN 網(wǎng)絡分別提高了6.01%、4.11%和3.12%,相比于CPC 網(wǎng)絡分別提高了51.73%、25%和41.31%。
表2 多任務學習模型中輸入為FBank 聲學特征的準確率Table 2 Accuracy of multi-task learning model when inputting FBank acoustic characteristics
同時,由表1、2 的實驗數(shù)據(jù)對比可知,對于同一個網(wǎng)絡FBank 特征作為輸入時比MFCC 特征作為輸入時的語種識別準確率更高,說明FBank聲學特征提取了更有用的語種特征。
3.2.3 不同時間步長的實驗效果分析
在ECAPA-TDNN+CPC 網(wǎng)絡中,時間步長k取不同值對網(wǎng)絡的識別準確率也有一定的影響,本節(jié)分別對k取8、12、16、20 進行實驗,分析不同時間步長時網(wǎng)絡的性能。網(wǎng)絡的輸入選用MFCC 聲學特征。時間步長k取不同值時的實驗結果如表3 所示。由表3 的實驗數(shù)據(jù)可見,當測試的音頻時長為1 s、k取16 時,測得的識別準確率最高,相對于k取8、12、20 分別增加了4.06%、2.38%和0.62%。測試的音頻時長為3 s、k取12 時,測得的識別準確率最高,相對于k取8、16、20 分別增加了1.92%、0.12%和0.90%。測試的音頻為All、k取20 時,測得的識別準確率最高,相對于k取8、12、16 分別增加了0.73%、0.66%和1.02%。
表3 k 取不同值時的準確率Table 3 Accuracy when k taking different values
3.2.4 不同網(wǎng)絡上的實驗效果分析
本節(jié)以MFCC 和FBank 聲學特征作為網(wǎng)絡輸入,時間步長k取12,在不同網(wǎng)絡上進行實驗效果對比,結果如表4、5 所示。由表4、5 的實驗數(shù)據(jù)可見,ECAPA-TDNN+CPC 網(wǎng)絡的實驗效果相對于TNDD+CPC 網(wǎng)絡和EX-TDNN+CPC 網(wǎng)絡的語種識別正確率均有提高。當輸入特征為MFCC 聲學特征時,在1 s、3 s 和All 數(shù)據(jù)集的實驗效果相比于TDNN+CPC 網(wǎng)絡準確率分別提高了10.57%、18.52% 和16.58%,相比于EX-TDNN+CPC 網(wǎng)絡準確率分別提高了4.9%、11.53%和9.44%。
表4 不同網(wǎng)絡中輸入為MFCC 聲學特征時的準確率Table 4 Accuracy of different networks when inputting MFCC acoustic characteristics
當輸入特征為FBank 聲學特征時,在1 s、3 s 和All 數(shù)據(jù)集的實驗效果相比于TDNN+CPC 網(wǎng)絡準確率分別提高了16.98%、22.99% 和24.84%,相比于EX-TDNN+CPC 網(wǎng)絡準確率分別提高了10.78%、20.68%和20.92%。
本文提出一種融合CPC 模型的多任務學習語種識別網(wǎng)絡,ECAPA-TDNN+CPC 模型。該模型在主干網(wǎng)絡ECAPA-TDNN 中加入一個自回歸模塊,對ECAPA-TDNN 網(wǎng)絡提取的幀級特征進行對比預測學習,構造正負樣本對,通過最大化正樣本對之間的相似度和最小化負樣本對之間的相似度來優(yōu)化網(wǎng)絡,增強所提特征的一致性。最后在東方語種競賽數(shù)據(jù)集AP17-OLR 上進行驗證。實驗結果表明,提出的ECAPA-TDNN+CPC 網(wǎng)絡可以快速收斂,識別準確率明顯提高,能夠更好地對語種進行分類。
表5 不同網(wǎng)絡中輸入為FBank 聲學特征時的準確率Table 5 Accuracy of different networks when inputting FBank acoustic characteristics