付 英,劉增力,湯 輝
(1.昆明理工大學(xué),云南 昆明 650504;2.江西省科技基礎(chǔ)條件平臺中心,江西 南昌 330003)
全球化的今天,不同國家不同地區(qū)的人們跨語種交流的機(jī)會越來越多,隨著深度學(xué)習(xí)技術(shù)趨于成熟,語種識別研究也成為眾多研究者關(guān)注的重點。語種辨識逐漸應(yīng)用到各個領(lǐng)域,而能否迅速、準(zhǔn)確判斷說話者所說的語言是其他功能正常運行的基礎(chǔ)[1]。方言語種識別是語種識別中的一個特例,由于方言之間具有相似性,因此針對方言語種識別的研究更具挑戰(zhàn)性。
語種識別是通過給定一段語音并判別所屬區(qū)域的過程,其作為語音信號處理的前端技術(shù),在語音識別等相關(guān)領(lǐng)域發(fā)揮著重要作用,主要應(yīng)用在語音翻譯、公共安全、多語言對話系統(tǒng)等方面[2]。到目前為止,許多技術(shù)已成功應(yīng)用于語種識別中,特別是針對易混淆的方言語種辨識。傳統(tǒng)的聲學(xué)模型如高斯混合—通用背景模型(Gaussian Mixture Model-Universal Background Model,GMM-UBM)[3]、隱馬爾可夫模型(Hidden Markov Model,HMM)[4]等常用于語種辨識中,但這些聲學(xué)模型往往結(jié)構(gòu)復(fù)雜且訓(xùn)練時間長。
近年來,深度學(xué)習(xí)依靠快速的計算能力以及對大數(shù)據(jù)的分析處理能力,在語音研究領(lǐng)域被廣泛應(yīng)用。早期,眾多研究者利用深度學(xué)習(xí)提取語音深度瓶頸特征(Deep Bottleneck Feature,DBF)[5],替代了傳統(tǒng)的GMM-UBM結(jié)合聲學(xué)特征的方法,該特征能高效表征語種信息,使語種更具有區(qū)分性,但模型結(jié)構(gòu)較為復(fù)雜。之后,基于各種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搭建端到端語種辨識系統(tǒng)的方法應(yīng)運而生。最早Lopez-Moreno等人[6]將深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)應(yīng)用在短時語種識別中。之后,Gonzalez-Dominguez等人[7]提出長短時記憶遞歸神經(jīng)網(wǎng)絡(luò)(Long Short Term Memory-Recurrent Neural Network,LSTM-RNN)用于自動語種識別,有效解決了RNN中梯度消失的問題,但此模型結(jié)構(gòu)復(fù)雜且訓(xùn)練時間長。Geng等人[8]搭建了基于LSTM和注意力機(jī)制的端到端語種識別系統(tǒng),并應(yīng)用在短時語種分類中,但由于LSTM并未考慮到語音未來的信息導(dǎo)致識別效果并不理想。Fernando等人[9]搭建了基于雙向長短時記憶網(wǎng)絡(luò)(Bidirectional LSTM,BiLSTM)的端到端語種識別系統(tǒng),有效考慮了語音過去和未來的信息,經(jīng)實驗表明,BiLSTM在短時語種識別中表現(xiàn)良好。Mao等人[10]將雙向門控循環(huán)單元網(wǎng)絡(luò)(Gated Recurrent Unit networks,GRU)用于多分類語種識別中,相比于BiLSTM網(wǎng)絡(luò)結(jié)構(gòu)更加簡單且識別率有所提升。此外,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[11,12]也常用于語種辨識中,它提取語音信號的局部特征,有效提升了語種識別效果。
對于語種識別辨識系統(tǒng),常使用交叉熵(Cross Entropy,CE)損失函數(shù)進(jìn)行分類,但并未考慮到數(shù)據(jù)不均衡和語種易混淆的問題。2017年,何凱明等相關(guān)研究者提出用于密集物體檢測的焦點損失(Focal Loss,F(xiàn)L),實驗表明,焦點損失能有效解決這個問題,提高模型的性能[13]。Zhao等人將焦點損失作為語音識別任務(wù)中的優(yōu)化策略之一,通過對難易分類的權(quán)重不同分配來提高識別率[14]。
基于以上研究,本文首先搭建一個CNN模型,通過對比不同特征提取算法在方言語種識別中的識別效果,選取最佳輸入特征;其次,搭建基于CNN-BiLSTM的網(wǎng)絡(luò),對比焦點損失不同參數(shù)對模型識別率的影響,從而選取最優(yōu)參數(shù);再次,搭建不同模型對不同時長的方言進(jìn)行識別,得到最終識別模型;最后,分別采用不同的語音增強(qiáng)方式對數(shù)據(jù)集進(jìn)行擴(kuò)增,提高模型的泛化能力。
語種識別中常用的聲學(xué)特征有梅爾頻率倒譜系數(shù)(Mel-Frequency Ceptral Coefficients,MFCC)[15]、對數(shù)濾波器能量(Log Mel-filterbank energy,Log Fbank)特征[16]、語譜圖特征[17]等。本文對比以上3種特征,選取識別率最高的特征作為后續(xù)模型的輸入特征,并且考慮到方言為有調(diào)語音,將聲學(xué)特征與音調(diào)特征進(jìn)行融合,提高方言語種識別率。
由于人耳對聲音頻率的感知并非呈線性關(guān)系,因此使用MFCC特征仿真人耳對聲音感知的關(guān)系,可近似表示為:
式中:FMel為人耳感知的頻率;FHz為聲音的真實頻率。
提取MFCC特征的流程如圖1所示。首先,語音信號x(n)經(jīng)過預(yù)加重(預(yù)加重系數(shù)為0.97)、分幀(幀長為25 ms,幀移為10 ms)、加窗后得到每幀信號xi(n);其次,對xi(n)進(jìn)行FFT變換得到頻譜Xi(k),并得到對應(yīng)的能量譜Ei(k);再次,經(jīng)過Mel濾波器組后得到Si(m),進(jìn)行對數(shù)運算得到Y(jié)i(m);最后,進(jìn)行離散余弦變換(Discrete Cosine Transform,DCT)得到MFCC特征。本文濾波器組數(shù)取26,經(jīng)DCT變換后得到13維MFCC特征向量。
LogFbank特征的提取與MFCC特征提取過程基本一致,在圖1中不經(jīng)過DCT變換即可得到LogFbank特征。相比于MFCC特征,LogFbank特征向量間具有較高的關(guān)聯(lián)性且耗時短,被廣泛應(yīng)用于神經(jīng)網(wǎng)絡(luò)中。本文提取了40維的LogFbank特征作為模型的輸入。
圖1 MFCC和LogFbank特征提取對比
語譜圖是語音信號的頻率隨時間變化的圖像表示,是語音信號經(jīng)過短時傅里葉變換而得到的,保留了語音信號最原始的信息。語譜圖既可以觀察頻譜的變化過程,又能突出頻譜的精細(xì)結(jié)構(gòu),是信號常用的時頻分析方法之一。根據(jù)窗函數(shù)的大小,語譜圖可分為寬帶語譜圖和窄帶語譜圖。以上海話為例,圖2展示了寬、窄語譜圖的區(qū)別,圖2(a)為寬帶語譜圖,時間分辨率高,而圖2(b)頻率分辨率高,為窄帶語譜圖。
圖2 語譜圖展示
對于漢語方言而言,音調(diào)是方言較為顯著的特征,進(jìn)行漢語辨識時,可利用一種方言中存在這個音調(diào)而另一種方言中不存在進(jìn)行區(qū)分。由于傳統(tǒng)聲學(xué)特征只保留語音的音色特征,而忽略了語音的音調(diào)特征,所以本文采用短時自相關(guān)函數(shù)法提取每一幀的基音信息表示音調(diào)特征。
1960年,Hubel和Wiesel[18]兩位科學(xué)家在貓的大腦中發(fā)現(xiàn)不同于常規(guī)神經(jīng)網(wǎng)絡(luò)的神經(jīng)元結(jié)構(gòu),受Hubel和Wiesel對貓視覺皮層電生理研究的啟發(fā),F(xiàn)ukushima等人[19]提出了一個包含卷積層和池化層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),由此卷積神經(jīng)網(wǎng)絡(luò)誕生。由于CNN網(wǎng)絡(luò)存在權(quán)值共享以及稀疏連接,因此CNN的網(wǎng)絡(luò)結(jié)構(gòu)大幅度減小了復(fù)雜水平。
CNN的結(jié)構(gòu)主要由3部分組成:第1部分是卷積層,它對輸入圖像進(jìn)行過濾并通過滑動窗口方法計算與提取有意義的值;第2部分是池化層,本質(zhì)是一個下采樣過程,可減小通過卷積操作提取的特征的大小,常用的池化方式有最大池化和平均池化方法;第3部分是全連接層,和經(jīng)典神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)一樣連接所有的神經(jīng)元。
GRU是目前非常流行的一種神經(jīng)網(wǎng)絡(luò),它是LSTM的一種簡化網(wǎng)絡(luò),2014年由Cho等人[20]首次提出,用于解決長期記憶和反向傳播中的梯度問題。與LSTM相比,GRU用更新門代替了LSTM中的遺忘門和輸入門,結(jié)構(gòu)簡單且參數(shù)少,更有利于模型收斂,計算效果和LSTM差不多,一定程度上提高了模型訓(xùn)練的效率,有效緩解了梯度爆炸或消失問題。由于方言之間具有一定的相關(guān)性,需要考慮語音數(shù)據(jù)中的上下文信息,所以本文采用雙向門控循環(huán)單元(Bidirectional GRU,BiGRU)搭建模型,它是由前向GRU和后向GRU組成,同時考慮了數(shù)據(jù)過去和未來的信息。
本文提出基于CNN和BiGRU的模型實現(xiàn)方言語種識別,其整體結(jié)構(gòu)如圖3所示。該模型主要由Block塊、多層特征聚合(Multi-layer Feature Aggregation,MFA)、BiGRU層、全連接層組成,其中,每個Block包含卷積層、ReLU層、批量歸一化層。首先,提取方言語音信號的特征輸入到卷積塊中,利用卷積層提取方言信號的局部特征;其次,利用MFA將多層卷積層特征進(jìn)行聚合,將整合特征輸入到BiGRU層中提取時序相關(guān)特征;再次,將BiGRU層的輸出特征輸入到全連接層中;最后,通過Softmax函數(shù)將輸出向量映射到(0,1)區(qū)間,并計算方言類別之間的概率來預(yù)測漢語方言的類別標(biāo)簽。在訓(xùn)練過程中,本文使用焦點損失代替?zhèn)鹘y(tǒng)的交叉熵?fù)p失函數(shù)來優(yōu)化模型參數(shù)。
圖3 基于CNN-BiGRU的方言語種識別系統(tǒng)結(jié)構(gòu)
對于語種識別任務(wù),常使用交叉熵?fù)p失函數(shù)(Cross Entropy,CE),并將其最小化進(jìn)行模型優(yōu)化,CE是計算真實類別標(biāo)簽分布與預(yù)測的類別標(biāo)簽分布之間的距離,其定義為:
則交叉熵?fù)p失函數(shù)LCE定義為:
式中:N為語音樣本數(shù);M為語種類別數(shù);ynm∈{0,1},如果樣本n的真實類別為m時則取值為1,否則為0;y^nm為觀測樣本n屬于類別m的預(yù)測概率值;θ為模型的參數(shù);ym為某個類別的真實值;y^m為該類別的預(yù)測值。
交叉熵?fù)p失函數(shù)在樣本均衡且易分類的樣本中表現(xiàn)良好,但針對本文研究的方言數(shù)據(jù)具有易混淆性且各樣本數(shù)據(jù)不均衡的情況,引入焦點損失函數(shù)作為多語種識別的損失函數(shù)。焦點損失是交叉熵?fù)p失的一種延伸,本質(zhì)是使用一個合適的函數(shù)衡量難易樣本對總損失函數(shù)的貢獻(xiàn),并以此優(yōu)化模型。
針對樣本不平衡問題,焦點損失(Focal Loss,F(xiàn)L)引入權(quán)重系數(shù)α對正負(fù)樣本的權(quán)重進(jìn)行平衡,減少多樣本數(shù)據(jù)對損失函數(shù)的影響,定義為:
α雖然平衡了各個語種之間的樣本數(shù),但不能區(qū)分相似度較高的語種樣本。因此,引入調(diào)制系數(shù)β調(diào)整難易分類的權(quán)重,將模型的訓(xùn)練重點放在難分類樣本上,定義β為:
此時的焦點損失LFL定義為:
假設(shè)式(7)中的pm接近于1時,(1-pm)γ趨近于0,則預(yù)測為正確樣本數(shù)的損失很小,對總的損失貢獻(xiàn)減小,其權(quán)重下降;反之,當(dāng)pm的值很小,(1-pm)γ趨近于1時,對總損失貢獻(xiàn)較大,權(quán)重增大。將α與(1-pm)γ結(jié)合,得到最終的FL定義為:
式中:α∈[0,1],γ∈[0,5],當(dāng)αt=1,γ=0時為交叉熵?fù)p失。通過對權(quán)重的控制,能較好地區(qū)分易混淆的方言語音數(shù)據(jù)。
本文實驗是基于NVIDIA RTX 3090的硬件平臺實現(xiàn)的,所有深度學(xué)習(xí)模型框架使用Keras框架實現(xiàn)。實驗數(shù)據(jù)來源于4部分,具體如下文所述。
(1)2018年科大訊飛方言保護(hù)競賽數(shù)據(jù)集。該數(shù)據(jù)集中每種方言有40人的朗讀語音,每種方言訓(xùn)練集有6 000句,測試集有500句,訓(xùn)練集和測試集的說話人均無重復(fù),錄制環(huán)境有多種場景,以pcm格式存儲,16 bit量化,采樣率為16 000 Hz。選取其中的8種方言,分別為長沙、河北、合肥、南昌、寧夏、陜西、上海和四川方言。
(2)Common Voice數(shù)據(jù)集。該數(shù)據(jù)集覆蓋了世界各地幾十種不同的語音,語音數(shù)據(jù)豐富而且質(zhì)量較好,數(shù)據(jù)以mp3格式存儲。從該數(shù)據(jù)集下載了粵語用于實驗分析。
(3)中國語言資源保護(hù)工程采錄展示平臺。該平臺覆蓋了全國34個省區(qū)市的數(shù)據(jù),調(diào)查語種包括123種語言和全部漢語方言。在該平臺上收集了云南10個地方的方言組成云南話用于研究。
(4)利用各視頻網(wǎng)站對方言數(shù)據(jù)進(jìn)行收集。考慮到收集的音頻數(shù)據(jù)集少且說話人單一,所以在視頻網(wǎng)站收集了長沙、河北、合肥、南昌、寧夏、陜西、上海、四川、云南和粵語10種方言的音視頻,以mp4格式存儲。
由于收集的方言數(shù)據(jù)來源廣泛,所以需要將方言音頻數(shù)據(jù)統(tǒng)一格式,方便語音處理,統(tǒng)一將數(shù)據(jù)轉(zhuǎn)化為wav格式的文件,以采樣率為16 kHz,16 bit量化,單聲道進(jìn)行存儲,共有10種不同的方言種類。
方言語種識別系統(tǒng)的性能評價指標(biāo)以語種識別正確率Racc進(jìn)行評價,則有:
本文模型的輸入特征分別為MFCC特征、LogFbank特征、語譜圖特征以及將LogFbank特征與基音特征F0融合的特征,使用Adam優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.001,最小批量大小為64,迭代次數(shù)為30,損失函數(shù)分別使用交叉熵函數(shù)和焦點損失函數(shù)對模型進(jìn)行優(yōu)化。
基于CNN-BiGRU的方言語種識別實驗主要由4部分組成。實驗1:搭建CNN系統(tǒng),對比不同輸入特征的方言識別率。實驗2:針對方言易混淆性和數(shù)據(jù)的不平衡性,進(jìn)一步研究焦點損失對方言識別率的影響,對焦點損失的權(quán)重因子α和調(diào)制因子γ不同參數(shù)的選取進(jìn)行了實驗仿真,模型基于CNN-BiLSTM-MFA。實驗3:對比本文提出的模型與其他模型的識別率,驗證本文模型在方言語種識別中是否具有優(yōu)越性。實驗4:采用數(shù)據(jù)增強(qiáng)方式對訓(xùn)練集進(jìn)行擴(kuò)增,提高模型的泛化能力。
4.4.1 實驗1
將MFCC特征、LogFbank特征、語譜圖以及LogFbank+F0特征作為CNN的輸入。卷積層的卷積核大小為3,卷積步長為1,填充方式為same,卷積層輸出后經(jīng)過批量歸一化層、激活層后再進(jìn)行全局平均池化,最后經(jīng)全連接層后對方言識別分類。實驗結(jié)果如表1所示。
表1 不同特征提取參數(shù)方言識別結(jié)果
從表1可以看出,方言語種識別結(jié)果依次是LogFbank+F0>LogFbank>語譜圖>MFCC。由于LogFbank特征向量之間的相關(guān)性以及方言的有調(diào)性,選擇LogFank+F0特征作為后續(xù)研究的輸入特征。
4.4.2 實驗2
為了選取FL的最佳參數(shù),采用控制變量法對α∈{0.25,0.5,0.75},γ∈{1,2,3,4,5}進(jìn)行不同時長方言識別率對比實驗。分類模型采用CNN-BiLSTMMFA,模型結(jié)構(gòu)依次為卷積塊、卷積塊、多層特征融合、雙向LSTM層、全連接層。實驗結(jié)果圖4所示。
圖4 不同α和γ時,方言識別率對比
從圖4中可以看出,F(xiàn)L不同參數(shù)的選擇對難易樣本權(quán)重加權(quán)比例有影響。當(dāng)α=0.5,γ=2時,不同時長的方言識別率都達(dá)到了最高,識別率分別達(dá)到了81.12%,84.58%,85.03%,86.44%。
4.4.3 實驗3
為了評估所提方法的有效性,對比不同模型對不同時長的方言的識別率,本文的基線系統(tǒng)采用2018年科大訊飛方言識別競賽所提供的識別模型LSTM-DNN-CE。模型結(jié)構(gòu)依次為輸入層(輸入維度為(None,None,41))、LSTM層(隱藏層節(jié)點數(shù)為128)、全連接層(神經(jīng)元個數(shù)為10),并使用Softmax函數(shù)對方言進(jìn)行分類。在此基礎(chǔ)上分別搭建了6種不同的模型進(jìn)行對比:模型1為GRU-DNNCE模型,模型結(jié)構(gòu)與基線系統(tǒng)類似,將LSTM層換成GRU層;模型2為BiLSTM-DNN-CE模型,考慮到語音的上下文相關(guān)性,將基線系統(tǒng)的LSTM層替換成BiLSTM,節(jié)點數(shù)保持不變;模型3將模型2中的BiLSTM換成BiGRU層,節(jié)點數(shù)保持不變;模型4為CNN-BiLSTM-MFA-CE,具體在基線系統(tǒng)的基礎(chǔ)上加入兩層卷積塊,模型結(jié)構(gòu)如實驗2所示,并使用交叉熵?fù)p失函數(shù)進(jìn)行優(yōu)化;模型5為CNNBiGRU-MFA-CE,具體是將模型4中的BiLSTM層換成BiGRU層,并使用交叉熵?fù)p失函數(shù)進(jìn)行優(yōu)化;模型6為CNN-BiGRU-MFA-FL,是將模型5中的交叉熵?fù)p失函數(shù)換成本文提出的焦點損失函數(shù)。實驗結(jié)果如表2所示。
表2 不同模型的對比結(jié)果
從表2可以看出,CNN能有效提取方言信號的局部特征,但由于方言是時序序列,LSTM等變體能較好表征語音中的時序信息,因此將兩者進(jìn)行結(jié)合,可以提升對不同時長方言的識別率,進(jìn)一步驗證了所提模型對方言分類有效。另外,使用FL代替CE,進(jìn)一步提高了不同時長方言的識別率,相比CNN-BiGRU-MFA-CE模型,平均識別率提升了0.99%。最終,選擇CNN-BiGRU-FL作為本文的識別模型,相比于基線系統(tǒng),所提方法平均識別率提升了4.09%。
4.4.4 實驗4
由于方言數(shù)據(jù)多數(shù)是在純凈環(huán)境下錄制且數(shù)據(jù)量少,所以使用audiomentations工具包對方言數(shù)據(jù)進(jìn)行增強(qiáng),增加方言數(shù)據(jù)量和噪聲數(shù)據(jù),提高模型的泛化能力和魯棒性。主要增強(qiáng)方式如表3所示。
表3 數(shù)據(jù)增強(qiáng)參數(shù)設(shè)置
在相同環(huán)境下,使用實驗3中選擇的最優(yōu)模型CNN-BiGRU-MFA-FL進(jìn)行實驗仿真。通過表3中的增強(qiáng)方式對語音數(shù)據(jù)進(jìn)行增強(qiáng),比較不同時長方言識別率的大小。共仿真了5組對比實驗,其中第1組是采用原始數(shù)據(jù)進(jìn)行訓(xùn)練得到不同時長測試集的識別率,其余4組為隨機(jī)選取25%的數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)后的識別結(jié)果,實驗結(jié)果如表4所示。
表4 數(shù)據(jù)增強(qiáng)對方言識別率的影響
從表4可以看出,相比于不進(jìn)行數(shù)據(jù)增強(qiáng),使用不同的增強(qiáng)方法對方言識別均有一定的影響,采用添加高斯噪聲的方式增加訓(xùn)練集雖然對方言識別率影響不大,但提高了模型的泛化能力,其余3種增強(qiáng)方法對不同時長方言數(shù)據(jù)的識別率有不同的提升,其中采用時移變換Shift的增強(qiáng)方法有效提升了方言語種識別率。
針對漢語方言易混淆且識別率低的問題,本文首先應(yīng)用CNN網(wǎng)絡(luò)搭建方言語種識別系統(tǒng),對比了不同輸入特征對方言語種識別率的影響,選取了LogFbank特征融合基音特征F0作為最佳輸入特征;其次,針對方言數(shù)據(jù)集不均衡且易混淆的問題,使用焦點損失函數(shù)代替交叉熵?fù)p失函數(shù),為難易方言種類分配不同的權(quán)重對模型進(jìn)行優(yōu)化,經(jīng)過不同參數(shù)對比,最終選擇權(quán)重因子α=0.5和調(diào)制因子γ=2作為焦點損失函數(shù)的最終參數(shù);再次,對比了不同模型對不同時長方言語種的識別率,實驗結(jié)果表明,本文所提模型CNN-BiLSTM-MFA-FL相比其他模型對方言語種的識別效果更好,能夠更有效地提升方言語種識別的準(zhǔn)確率,相比于基線系統(tǒng),本文所提方法準(zhǔn)確率提升了4.09%;最后,使用語音增強(qiáng)的方式對方言數(shù)據(jù)進(jìn)行擴(kuò)增,提高模型的泛化能力和魯棒性,仿真顯示,采用數(shù)據(jù)增強(qiáng)的方式對方言數(shù)據(jù)進(jìn)行擴(kuò)充,能提升模型泛化能力和不同時長方言的識別率。