苗曉曉 徐 及 王 劍
1(中國科學院聲學研究所語言聲學與內容理解重點實驗室 北京 100190)2(中國科學院大學 北京 100190)
語種識別(language identification, LID)是指自動判定給定語音段,從該語音信號中提取各語種的差異信息,判斷語言種類的過程[1].人類的聽覺系統是世界上最準確的語種識別系統.經過短時間的訓練學習,人們能夠快速準確地判定語種類別.即使是不熟悉的語種,人們也能對其語種與所知道的語種做出一個粗略的判斷.語種識別的目標是將這種能力賦予計算機使語種分類自動化.根據測試集語種類別,可以將語種識別任務分成閉集語種識別和開集語種識別.閉集的訓練集語種類別包含所有測試集語種類別,而開集的訓練集并沒有包含所有測試集語種類別[1].近年來,語種識別技術在這2個任務上已取得了長足的進步.然而仍有很多不足,尤其是面對短時語音段語種識別、高混淆度的語言識別、大量集外語種任務時.本文主要針對閉集語種識別問題展開研究.
傳統的語種識別技術可分為基于音素層特征和基于聲學層特征.基于音素層特征的語種識別技術是將音素層特征作為識別依據,主要考慮了不同語種有著不同的音素集合,音節和音素出現的頻率有很大差異,以及音節和音素的組合大不相同等因素.一般通過音素識別器,先將語音信號解碼為音素序列或者音素網格.在建模階段,通常為每個語種建立N元文法(Ngram)模型或者N元文法統計量模型[2].常用的方法有音素識別后接N元文法模型(phoneme recognizer followed by language model, PRLM)[2]、并行音素識別器后接語言模型(parallel phone recognition followed by language modeling, PPRLM)[3-4]和并行音素識別器后接向量空間模型(parallel phoneme recognizer followed by vector space model, PPRVSM)[5]等.基于聲學層特征的語種識別技術依賴于聲學層特征.通過對語音信號分幀、變換提取聲學層特征,采用概率統計或鑒別性方法對其建模.常用的聲學層特征有美爾頻率倒譜系數(Mel-frequency cepstral coefficient, MFCC)[6]、感知線性預測系數(perceptual linear predictive, PLP)[7]、滑動差分倒譜(shifted delta cepstrum, SDC)[8]等.主流系統有混合高斯模型-全局背景模型(Gaussian mixture model-universal back-ground model, GMM-UBM)[9]、高斯超向量-支持向量機(GMM super vector-support vector machines, GSV-SVM)[10]和基于全差異空間的(total variability, TV) i-vector系統[11]等.
近幾年,深度神經網絡(deep neural networks, DNNs)[12]模型在語種識別任務上得到快速發展.一方面從前端特征提取層面,蔣兵等人[13]利用DNN強大的特征抽取能力,提取了深度瓶頸特征(deep bottleneck feature, DBF);另一方面從模型域出發,Lei等人[14]提出了基于DNN的TV建模策略.
此外也出現了基于深度學習的端對端語種識別系統,摒棄了傳統的語種識別系統框架.2014年Google的研究人員[15]將特征提取、特征變換和分類器融于一個神經網絡模型中,這是端對端系統首次被成功應用于語種識別任務.隨后有研究人員在此基礎上發掘了不同神經網絡的優勢,包括延時神經網絡(time-delay neural network, TDNN)[16]、長短時記憶遞歸神經網絡(long short term memory-recurrent neural network, LSTM-RNN)[17].2016年Geng等人[18]利用注意力機制模型(attention-based model),結合LSTM-RNN搭建了端對端語種識別系統,也取得了不錯的語種識別性能.2018年Jin等人[19]提出了基于LID-net、LID-bnet的端對端語種模型,并利用LID-net模型提取統計量,對比原有的DNN-TV系統,從網絡中間層中獲取LID-senone特征,證明了這個特征更具有語種區分性.同年Cai等人[20-22]提出了一種基于可學習的字典編碼層的端對端系統,從底層聲學特征直接學習語種類別信息,摒棄了聲學模型,也取得了較優的識別性能.
Vincent等人[23]于2008 年提出降噪自動編碼器(denoising auto-encoder, DAE).該神經網絡用于抑制輸入信號中的噪聲因子,能夠有效加強系統的魯棒性,廣泛應用于語音增強[24]、語音信號去混響[25]等領域.2015年Yamamoto等人[26]首次將DAE應用于短時說話人識別,2017年Yang等人[27]在此基礎上,改進并提出了基于DAE的短時說話人i-vector補償技術,取得了較好的說話人識別性能.
目前,將降噪自動編碼器用于語種識別領域的研究鮮見報道.本文基于國內外關于語種識別和降噪自動編碼器的研究,實現了基于降噪自動編碼器的語種特征補償方法.本文的主要貢獻有2個方面:
1) 目前的語種識別系統在訓練語音與測試語音長度匹配的情況下具有較高的識別率,而當長度失配時,其性能也隨之下降.為了解決這個問題,本文提出一種基于降噪自動編碼器的語種特征補償方法,將不同長度的語音特征都映射為固定長度的語音特征,一定程度上解決了長度失配問題.
2) 語音學的研究[28]表明,在世界范圍內,幾乎沒有任何語音擁有相同的音素集合,即使有些語言共用同一套音素體系,音素出現的頻率也有所差別.因此在語種識別中,音素作為重要的特征,可以被用來有效區分語種.而事實上,測試語音小于10 s或者更短時,語音的音素分布嚴重不均衡[29].在這種情況下語種特征的提取也是不可信的,極大地影響了識別性能.基于DAE的語種特征補償算法,將短時語種特征映射到長時語種特征空間,以得到音素分布更為平衡的短時語音段表示,緩解了短時測試語音音素分布不平衡的問題.
本文搭建了目前國際主流的2個語種識別系統:基于全差異空間的語種識別系統和基于端對端神經網絡的語種識別系統,并以此作為實驗的基線系統.二者建模方法有所差異,前者是傳統的生成式的建模方法,將GMM均值超矢量映射成低維向量,再利用語種標簽信息訓練得到后端分類器.而后者在整個訓練過程中直接使用深度神經網絡進行語種識別,這也是當前語種識別方向的研究熱點.
基于全差異空間的方法首先被成功應用于說話人識別任務[30-31],隨后被遷移到語種識別領域[32-33],成為語種識別領域的主流方法之一.基本框架如圖1所示:

Fig. 1 structure of the GMM i-vector LID system圖1 GMM i-vector語種識別系統框圖
TV系統通過定義一個低維空間,該空間不區分捕獲到的差異信息是否與語種、說話人和信道信息相關,而是將GMM超向量[10]中的語種、說話人變化空間和信道變化空間合并為全差異空間來進行建模.因為強制分離空間的話有可能會因為分離的不正確而丟失重要的信息,這些信息在后端建模中是無法彌補的.為避免有關語種的有效信息丟失,假設所有的空間都被合并成一個統一的空間,由全差異矩陣T來構建.直觀上來講,全差異空間會將高維的GMM超向量M映射成一個低維向量.假設M能被分解為
M=m+Tw,
(1)
其中,m是與語種和信道等無關的超向量,即UBM的均值超向量.因為UBM是由背景數據訓練得到的,無任何先驗信息,因此可以認為m與語種、說話人、信道等無關.T為全差異矩陣,w是全差異因子,也叫i-vector,是對GMM超向量的低維表示.i-vector作為模型中的隱含變量,滿足高斯分布,其后驗分布:
w(u)=(I+TTΣ-1N(u)T)-1TTΣ-1F(u),
(2)
其中,Σ是對角協方差矩陣,定義了GMM超向量中未被TV空間描述的噪聲部分.N(u)和F(u)每句訓練語音在UBM上的Baum-Welch統計量:
(3)
(4)
其中,p(c|·)表示在UBM的第c個高斯上的后驗概率;ut表示訓練語音u的第t幀特征,共L幀;mc表示在UBM的第c個高斯上的均值向量.
換一種角度理解,TV方法是將每段語音當作獨立的個體,認為每段都屬于不同的語種,再根據各語音段與UBM均值超向量的差異性得到具有語種區分性的低維因子表示,也可以被認為是一種將語音信號特征映射到一個低維空間的概率主成分分析.
從以上的描述中,可以看出在估計全差異矩陣和提取i-vector的過程中,并沒有用到語種類別信息,因此還需要對i-vector進行區分性訓練,可以使用邏輯回歸作為后端分類器,從而得到包含更多語種信息的i-vector.
近年來,深度學習在語音信號處理領域中得到了快速的發展,基于端對端神經網絡的語種識別系統也逐漸成為主流.它摒棄了傳統的全差異空間建模的方法,在訓練過程中將特征提取、變換以及后端分類器融于一個神經網絡中,引入語種標號進行區分性訓練.相比傳統的TV系統,端對端網絡有2個優勢.1)運用了區分性的建模方法,在整個網絡的訓練過程中,企圖尋找不同類別之間的最佳分類面,并沒有側重去擬合數據的分布.2)直接利用語種標簽信息,不斷優化網絡參數,使得所提特征更具語種特性.而TV建模僅僅在后端分類器的訓練過程中引入了語種標簽信息.由于研究時間過短,端對端網絡還有許多可改進的空間,是當前的研究熱點之一.
本文實現了文獻[20-21]提出的一種新的端對端語種識別系統,它結合了卷積神經網絡(convolu-tional neural network, CNN)在幀級特征上強大的建模能力和時域平均池化層(temporal average pooling, TAP)將幀級特征轉換到句級特征的池化能力.該系統被稱為CNN-TAP,基本框架如圖2所示.

Fig. 2 Structure of the CNN-TAP end-to-end LID system圖2 CNN-TAP端到端語種識別系統框圖
具體來說,CNN-TAP包含一個基于卷積層的前端特征提取器,設語音信號的聲學特征為x1,x2,…,xT,共T幀.其中xT表示第T幀特征經過非線性變換映射后,得到的特征包含更多語種信息;接著利用池化層得到句級特征表示,經過TAP層后,不同長度的輸入語音得到了固定維度的句級向量表示;最后得到類別后驗概率p(ki|x1,x2,…,xT),ki表示第i個類別.
本文所提出的語種特征補償方法框架如圖3所示.首先從語音信號分幀、變換得到底層聲學特征;之后利用1.1節描述的基線系統提取原始i-vector;同時按照2.1節所提出的方法計算音素向量;將拼接后的i-vector和音素向量,送入基于DAE的語種特征補償處理單元映射得到補償后的i-vector,詳見2.2節;最后將補償后的i-vector和原始i-vector分別送入后端分類器得到分數向量,并將其在得分域融合.

Fig. 3 Structure of DAE based i-vector feature compensation圖3 基于DAE的i-vector補償結構框圖
語言學研究表明:不同音素集、不同音素的組合及出現的頻率表征了不同類別的語言[28].顯而易見,音素信息在語種識別中有很重要的作用.本文嘗試用較為簡單的方法提取語音的音素信息作為輔助信息,增加不同語種之間的區分度.
音素信息的提取過程為:先利用高斯混合模型計算語音信號每幀的后驗概率,再將一句話所有幀的后驗概率求和取平均作為新的特征,這里稱為音素向量,計算為
(5)
其中,pc(u)是訓練語音u在UBM的第c個高斯上的后驗概率;t表示幀數,共L幀.
降噪自動編碼器是自動編碼器(auto-encoder, AE)的改良版,旨在用被破壞的輸入數據重構出原始未被破壞的數據,從而提取、編碼出具有魯棒性的特征.在語音信號處理領域,DAE被用于加強語音信號,包括去噪、去混響等.
本文提出基于降噪自動編碼器的i-vector補償方法,結構框圖如圖4所示.DAE補償網絡的特征向量由語音的i-vectorw(u)和音素向量p(u)拼接組成.輸入短時語音語種特征向量x1(u)=[w1(u),p1(u)],標簽為長時語音語種特征向量xL(u)=[wL(u),pL(u)].隱層之間的前向傳遞過程為
xi+1(u)=g(W(i,i+1)xi(u)+b(i,i+1)),
(6)
其中,g()為非線性函數,W(i,i+1)和b(i,i+1)為前一隱層與后一隱層之間的權重參數和偏置參數,最后輸出層為補償語種特征xN(u)=[wN(u),pN(u)],稱為補償向量.wN(u)為補償后的i-vector,pN(u)為補償后的音素向量.

Fig. 4 The diagram for language feature compensation圖4 語種特征補償方法圖示
該網絡的訓練是一種有監督的訓練.主要思想是輸入被干擾的向量,重構出原始輸入.本文實驗中輸入的是短時語音語種特征,目標向量為長時語音語種特征.訓練數據的準備分3個步驟:
1) 提取訓練語音Si的i-vector和音素向量,拼接得到目標向量x(Si).訓練語音的長度范圍是0~2 min;
2) 將訓練語音Si分別切成3 s,10 s和30 s,對每個語音段si,j提取i-vector和音素向量,拼接構成短時向量x(si,j);
3) 最終的訓練數據對為(x(Si),x(si,j)).通過最小化目標函數對DAE網絡進行參數優化.目標函數可以是目標向量和補償向量之間的均方誤差.
每條語音經過語種特征補償處理單元后得到2個i-vector:原始i-vector和補償后的i-vector.為了充分利用這2個特征,本文在模型后端釆用2種融合策略:i-vector融合和得分融合.
i-vector融合方法是將語音信號的原始i-vector和補償后的i-vector進行線性融合后,再送入后端分類器得到最終的判決結果:
wf(u)=(1-α)w(u)+αwcomp(u),0≤α≤1,
(7)
其中,w(u)是原始i-vector,wcomp(u)是它的補償i-vector.
得分融合方法是直接在TV模型輸出的得分上進行線性融合:
sf(u)=(1-α)s(w(u))+αs(wcomp(u)),0≤α≤1,
(8)
其中,s()為分數后端計算得分的函數.
1) 測試集.從20世紀90年代起,美國國家標準技術研究院(National Institute of Standards and Technology, NIST)組織的語種識別評測比賽(language recognition evaluation, LRE),為語種識別的研究提供了統一的、公共的數據集.本實驗采用美國國家標準技術局在2007年閉集條件下的語種識別評測數據集[34].這個測試集包含14個語種:阿拉伯語(Arabic, AR)、孟加拉語(Bengali, BE)、英語(English, EN)、波斯語(Farsi, FA)、俄語(Russian, RU)、德語(German, GE)、印地語(Hindustani, HI)、日語(Japanese, JA)、韓語(Korean, KO)、中文(Chinese, CH)、西班牙語(Spanish, SP)、泰米爾語(Tamil, TA)、泰國語(Thai, TH)和越南語(Vietnamese, VI).其中中文除了包含普通話,還有閩南語、吳方言和粵語.英語除了美國英語外,還包括印度英語.而印地語包括了北印度語和烏爾都語.NIST07的測試數據按照語音的時長分為30 s,10 s,3 s這3種,每種包括2 158條14個語種的語音.
2) 訓練集.訓練語料主要使用CallFriend數據庫[35].該數據庫包含12個語種:阿拉伯語、英語、波斯語、法語、德語、印地語、日語、韓語、普通話、西班牙語、泰米爾語和越南語.LRE2007的測試數據還有2個CallFriend 數據庫不包含的語種、方言,因此,訓練數據在CallFriend數據庫的基礎上還添加了LRE2003,LRE2005,LRE2007開發集.除此之外還包含2008年說話人識別評測比賽(speaker recognition evaluation, SRE)[36]的訓練數據,為該測試提供補充訓練數據:孟加拉語,俄語、泰國語、閩南語、吳方言、粵語、阿拉伯語和烏爾都語.訓練集的數據分布嚴重不平衡,英語、中文占所有語料的57.06%.
語種識別的測試標準主要采用NIST-LRE07測試標準平均代價(average cost,C_avg)[34]和錯誤率(error rate, ER)來評價.另外本文在4.2節中還將提到虛警率、漏警率[34].這些指標從不同角度反映了語種識別系統性能的好壞,它們都是越小越好.C_avg的定義為

(9)
Pout-target=(1-Ptarget-Pout-of-set)(N1-1)
(10)
其中,Nl為集合中語種總數;Lt和Ln分別表示目標語種和非目標語種;Pmiss(Lt)表示目標語種為Lt時的漏檢率;Pfa(Lt,Ln)是目標語種為Lt時的虛警率;Cmiss和Cfa分別是漏檢和虛警的懲罰因子;Ptarget為目標語種的先驗概率;Pnon-target為非目標語種的先驗概率;Pout-of-set為集外語種的先驗概率.本論文實驗只考慮閉集測試的情況,因此Pout-of-set=0.NIST-LRE07設定Cmiss=Cfa=1,Ptarget=0.5.
本文采用2個基線系統:基線1是基于TV空間的i-vector系統,分為前端聲學特征提取和后端統計建模2部分.前端底層聲學特征采用基于PLP線性擴展的SDC特征,后端建模利用TV建模方法.TV建模中高斯混合數為512,i-vector維數為600,采用邏輯回歸分類器.基線2是基于端對端深度神經網絡的語種識別系統.與文獻[20-21]相似,卷積神經網絡采用深度殘差網絡resnet34,采用交叉熵(cross entropy)準則進行訓練,采用隨機梯度下降法(stochastic gradient descent, SGD)更新網絡參數.Mini-batch大小設為128,每個Mini-batch的幀長范圍為[200,1000].共60個epoch,學習率為0.1.
隨機選擇5 000條訓練數據訓練高斯混合數為32的UBM,提取32維的音素向量.基于降噪自動編碼器的網絡輸入是632維向量,由600維i-vector和32維音素向量組成.網絡共有4層,隱層節點數是2048,網絡的結構是632-2048-2048-632.采用最小均方誤差準則進行訓練.經過對比2種融合策略,實驗均采用得分融合策略,α=0.1.關于融合系數α的選取,將在4.2節實驗結果中給出驗證.
為了驗證本文所提算法的有效性,本節將描述多組實驗.首先以音素向量作為唯一變量,驗證音素向量補償的效果.表1列出了i-vector直接通過DAE網絡映射以及音素向量和i-vector拼接后映射,在不同時長測試語音下的評價指標ER和C_avg的變化趨勢.表1中的Direct Mapping表示提取出的i-vector直接經過DAE網絡映射.而Concatenate Mapping表示送入DAE網絡的特征是音素向量和i-vector的拼接向量.2組實驗的唯一變量是音素向量.DAE網絡由3 s的短時語種特征和2 min的長時語種特征對訓練得到.實驗后端均采用邏輯回歸分類器.映射后的i-vector和原始ivector按照0.1∶0.9在得分域融合.

Table 1 The Results of Phonetic Vector Compensation 表1 音素向量補償性能對比 %
從表1可以看出,相比基線1,i-vector直接映射后的識別性能在3種測試時長上均有提升,尤其是在測試語音時長為10 s和3 s的短時情況,因為本組實驗的DAE網絡訓練數據由3 s和2 min語音對構成,短時測試語音與模型更匹配,性能提升更多.相比基線2,i-vector直接映射和拼接映射后識別性能在3 s的測試時長上也有所提升.音素向量和i-vector合并后,語種識別性能進一步得到改善,說明音素向量有一定的補償效果.
下面驗證補償網絡的有效性.針對不同的測試條件,在訓練階段,長時的訓練語料被切割成時長分別為30 s,10 s和3 s的短時語音段,并組成3種時長的短時語音語種訓練集合,分別學習對應的補償網絡.表2列出了針對不同測試時長的訓練數據分別訓練相應的補償系統,在不同時長測試語音下的評價指標ER和C_avg的變化情況.表2中的30 s compensation表示補償網絡的訓練數據是30 s和2 min的訓練對.

Table 2 Performance Comparison on Baseline and Compensation System表2 基線系統和補償系統性能對比 %
從表2可以看出,本文提出的補償算法在各種測試時長上的識別性能都有提高.尤其是在測試語音時長和訓練語音時長完全匹配的情況下,性能提升最大.相比基線1,測試語音時長為30 s,經過30 s補償網絡映射后,錯誤率相對降低了3.16%;測試語音時長為10 s的錯誤率經過10 s補償網絡映射后相對降低了2.90%;測試語音時長為3 s的錯誤率,經過3 s補償網絡映射后相較基線提升不大.這是因為使用3 s時長的短時訓練樣本由于語音段過短使其在提取i-vector時包含的語種相關信息非常容易受到影響,直接用于網絡訓練可能導致模型的估計不準確.相比基線2,補償網絡在測試語音時長為30 s和10 s的性能沒有提升,但基本可以與基線持平;測試語音時長為3 s的錯誤率經過3 s補償網絡映射后相對降低了3.21%.總的來說,針對不同測試時長,利用時長互相匹配的訓練數據分別訓練相應的補償系統能進一步提升補償網絡系統的性能.
Vincent等人[23]證明了DAE網絡的可以對加噪數據進行降噪,得到更加魯棒的不變性特征,獲得輸入的更有效表達.文獻[22]提到一般情況下,高維的數據都處于一個較低維的流形曲面上,被干擾向量的分布稀疏,遠離低維曲面.而DAE網絡可以將稀疏的特征映射到更為緊實的低維曲面上.這與本文所描述的基于DAE的補償網絡的主要思想是一致的,短時特征可以被當做是長時特征經過噪聲干擾后的數據.補償網絡得輸入是短時語音的i-vector,通過學習隱含特征,可以有效重構出長時語音的i-vector.
圖5顯示出30 s,10 s,3 s測試時長的C_avg隨補償i-vector權重α變化的情況,不同測試時長語音分別經過對應時長的補償網絡,采用式(8)的得分融合策略.

Fig. 5 The variation of C_avg with respect to score fusion coefficient圖5 C_avg隨得分融合系數變化圖
從圖5中可以看出,α取0.1~0.2時融合系統的性能稍好于基線1,α=0.1時在3種測試時長下性能最優.這說明基于DAE的補償網絡提供了額外的語言信息,與原始i-vector語言信息互補.

Fig. 6 Classification confusion matrix圖6 分類混淆矩陣
混淆矩陣可以很直觀地反映出各語種的虛警率、漏警率以及各語種間的混淆程度.本文統計了測試語音在3 s補償系統上的得分所構成的混淆矩陣.如圖6所示,縱軸代表真實類別,橫軸代表預測類別.ACC代表該語種識別精度.從圖6可以看出,各語種大部分樣本都能保證分類正確,彼此間不存在較大的干擾.但是某些類別之間混淆程度較大導致系統的虛警率和漏警率升高.3.1節中提到訓練數據分布不均衡,其中MA所占比例最大,它們的識別精度分別為71.94%,84.50%,虛警率為31.02%和22.97%.這是因為這部分語料比重大,在訓練階段系統會側重優化這些語種的模型,使得最終模型的預測結果有偏差.還有一些語種即使訓練語料所占比例不大,卻仍存在很高的虛警率,這說明簡單的依賴底層聲學特征是無法準確地給出易混語種的判別結果.從分析結果可以看出本文提出的模型雖然較基線系統有一定的性能提升,但還存在很大的提升空間.
語種識別系統在訓練語音和測試語音長度不匹配時,性能會出現大幅下滑,嚴重制約語種識別技術在實際中的應用.本文提出基于降噪自動編碼器的語種特征補償方法來解決這個問題.在NIST-LRE07上的實驗結果表明,所提出的語種特征補償算法在30 s,10 s和3 s這3種測試條件下均可以獲得不同程度的性能提升.對實驗細節的進一步分析表明:目前音素向量提取過程較為簡單,并沒有充分挖掘出語音的音素分布信息,未能起到較大作用,后期仍有進一步改良的空間.