徐冬冬
(中國航天科工集團(tuán)第二研究院研究生院 北京 100854)
自動語聲識別(Automatic speech recognition,ASR)中的序列到序列(Sequence to sequence, S2S)方法漸漸得到廣泛關(guān)注,這是由于能夠訓(xùn)練一個共同的目標(biāo)來優(yōu)化整個模型結(jié)構(gòu),與傳統(tǒng)的混合系統(tǒng)相比,它降低了模型優(yōu)化的復(fù)雜性。ASR 系統(tǒng)將聲學(xué)、發(fā)音字典和語言建模組件的功能組合到單個神經(jīng)網(wǎng)絡(luò)中,實現(xiàn)從聲頻號到文本序列的直接映射。早期ASR方法采用連接時序分類(Connectionist temporal classification, CTC)[1],但是,這些模型需要與外部語言模型保持一致才能獲得良好的性能[2]。最初提出用于機(jī)器翻譯的具有注意力[3]的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network, RNN)編碼器-解碼器[4]是端到端ASR[5]的有效方法。這些系統(tǒng)在無語言模型設(shè)置中[2]的性能下降較少。
最近,Transformer[6]編碼器-解碼器體系結(jié)構(gòu)已應(yīng)用于ASR[7?9]。Transformer 訓(xùn)練可實現(xiàn)跨時間并行化,與帶有循環(huán)機(jī)制的模型相比,速度更快[6]。這使得它們特別適合語聲識別中遇到的大型聲頻語料庫。此外,Transformer是一種強(qiáng)大的自回歸模型[10],在推理過程中無需使用語言模型即可獲得不錯的識別效果而不會產(chǎn)生存儲和計算開銷問題[8]。
盡管當(dāng)前的ASR 技術(shù)在準(zhǔn)確性上已取得了顯著提高,但Transformer 層在自注意的加權(quán)操作中不會保留位置信息,為了引入輸入特征順序,使用了正弦位置嵌入。之前ASR 系統(tǒng)在編碼網(wǎng)絡(luò)中顯式的添加循環(huán)神經(jīng)網(wǎng)絡(luò)層,也在一定程度上獲得了上下文相關(guān)信息。但本文認(rèn)為上述位置編碼增加了模型優(yōu)化的代價,隱式的添加相對位置信息,會具有更好的效果。具體來說,利用神經(jīng)網(wǎng)絡(luò)將輸入特征和位置信息融合起來,并映射為高層特征表達(dá),作為Transformer 自注意層的輸入。本文通過比較基于Transformer 的不同位置編碼技術(shù)特點,探索更加適合普通話語聲識別的位置編碼技術(shù)。
本文工作中使用的架構(gòu)與Vaswani 等[6]介紹的Transformer 模型類似,模型可以視為編碼器-解碼器模型。編碼器模型以經(jīng)過子層處理的語聲特征作為輸入,并對輸入進(jìn)行非線性變換以生成隱狀態(tài)表示,該隱狀態(tài)表示被饋送到解碼器中,該解碼器再次應(yīng)用非線性變換以產(chǎn)生文本。Transformer 整體架構(gòu)如圖1所示,左半部分和右半部分分別表示堆疊多層自注意層和全連接前饋神經(jīng)網(wǎng)絡(luò)層的編碼器和解碼器結(jié)構(gòu)。下面從局部到整體詳細(xì)解釋每個模塊。
圖1 Transfor mer 語聲識別系統(tǒng)架構(gòu)Fig.1 Transformer speech recognition system architecture
首先,注意力是指使用基于內(nèi)容的信息提取器的方法將維度為dmodel的輸入映射到一組查詢Q、鍵K和值V的矢量輸出中[11]。其中查詢Q和鍵K的維度為dk,值V的維度為dv。使用所有的鍵計算查詢的點積,再分別用根號dk進(jìn)行除法運算,并應(yīng)用softmax 函數(shù)來獲得值的權(quán)重。最后返回值的加權(quán)總和,如式(1)所示:
這里除以根號dk的原因是為了抵消softmax 函數(shù)輸入過大時,計算梯度太小的影響。
多頭注意是指采用h個注意力操作表示輸入信息,最后將輸出結(jié)果串聯(lián)。即多頭注意層輸出是將各個注意頭的級聯(lián)輸出乘以權(quán)重矩陣來計算的。
編碼器:編碼器由12個相同的層塊組成。每個層塊都有兩個子層。第一個是多頭自注意層;第二個是完全連接的前饋神經(jīng)網(wǎng)絡(luò)層,該前饋神經(jīng)網(wǎng)絡(luò)由兩個線性變換組成,中間具有ReLU 激活。公式表達(dá)如下:
由式(4)可以看出該前饋過程也可描述為內(nèi)核大小為1 的卷積。兩個子層附近都添加了殘差連接,接著進(jìn)行層規(guī)范化[12]。
解碼器:與編碼器類似,解碼器是由6 個相同的層塊組成。不同的是,解碼器層的每個層塊由3個子層組成,其中兩個子層的功能與編碼器子層相同,而兩個子層中間的子層對編碼器層的輸出執(zhí)行多頭關(guān)注。具體來說,來自最終編碼器層的鍵和值向量被饋送到解碼器層中的多頭注意層,查詢向量值從其下一層中獲得。同時要保持模型的自回歸特性,本文在解碼器的多頭注意層中使用掩蔽,以防止其依賴于將來的位置,從而使輸出的標(biāo)簽序列只利用的當(dāng)前位置以前的信息。殘差和層歸一化的設(shè)置與編碼器相同。使用可學(xué)習(xí)的嵌入將輸入標(biāo)記和輸出標(biāo)記轉(zhuǎn)換為維度dmodel的向量。
Transformer 層的一個明顯特點是輸出對于輸入順序排列是不變的。即,對于施加在輸入序列x1,x2,···,xT上的任何排列π,可以通過在z1,z2,···,zT上應(yīng)用相同的排列π來獲得Transformer 層的輸出。這意味著transform 不對輸入序列的順序建模。文獻(xiàn)[6]通過正弦位置嵌入將絕對位置信息注入到輸入序列中。但本文認(rèn)為在處理語聲識別問題時,相對位置對于語聲信號可能更有用。于是在接下來研究中,比較了4 種將位置信息編碼到Transformer 層輸入中的方法:正弦位置編碼、幀組合編碼、幀堆疊編碼、卷積編碼。
(1)在第一種方法中,正弦位置編碼,是將絕對位置信息進(jìn)行了編碼。
其中,pos 是位置,i是維度。也就是說,位置編碼的每個維度對應(yīng)于正弦曲線。波長形成從2π 到10000×2π 的幾何級數(shù)。例如,pos=3,dmodel=512,那么3對應(yīng)的位置向量如下:
需要注意的是,位置向量與輸入序列向量需要進(jìn)行相加這樣的特征組合方式,因此位置向量的長度必須為dmodel。
(2)在第二種方法中,幀組合是每兩幀疊加并跨步一次:它不會破壞特征序列中的排列不變性,因此表示為幀組合編碼。
(3)在第三種方法中,幀堆疊是將當(dāng)前幀和接下來的8 個未來幀堆疊在一起,然后進(jìn)行移動步長stride = 2采樣,以形成新的Transformer輸入序列。這里由于堆疊的幀與其相鄰的堆疊的幀部分地重疊,因此排列不變性不再成立。
(4)在第四種方法中,卷積是對基于幀序列的梅爾濾波器組特征進(jìn)行操作,結(jié)構(gòu)如圖2所示。利用卷積神經(jīng)網(wǎng)絡(luò)的在時間和空間維度的平移穩(wěn)定性,將相對位置信息添加到特征序列中。
圖2 卷積位置編碼Fig.2 Convolutional position code
本文配置了兩個2D 卷積層,每個卷積層后連接歸一化層和Relu激活,第二層后接一池化尺寸為2×2的最大池化層。兩層通道數(shù)分別為32和64。對于80維的特征輸入,輸出是2560維。比較了不同卷積核尺寸對識別性能的影響。
最后連接一個線性投影層用于將特征向量投影到Transformer 可以接受的尺寸,即dmodel。為了保證實驗公平性,本文標(biāo)簽序列嵌入向量均采用正弦位置編碼,維度為512,進(jìn)一步研究編碼器輸入的不同位置編碼方法對識別性能的影響。
語聲數(shù)據(jù)來自于中文語聲數(shù)據(jù)集AISHELL-1,包含178 h 來自400 個說話人的普通話聲頻和相應(yīng)文本信息。AISHELL-1 中的聲頻數(shù)據(jù)重采樣為16 kHz,16 位的WAV 格式。開發(fā)人員將數(shù)據(jù)集分為3 個部分:訓(xùn)練集、驗證集和測試集。訓(xùn)練集包含來自340 個說話者的120098 個發(fā)音和大約140 h的普通話語聲數(shù)據(jù);驗證集包含來自40個說話者的14326 個語句;測試集包含來自20 個說話者的7176個語句。對于每個說話者,大約發(fā)布了360 個語句(大約26 min的語聲)。
輸入特征是80維梅爾濾波器組特征,將語聲通過預(yù)加重、分幀和加窗、傅里葉變換和功率譜以及濾波器組有序計算的[13]。設(shè)置窗長為20 ms,幀移為10 ms。
普通話ASR 任務(wù)的典型建模單元是帶有聲調(diào)的聲母/韻母分開單元,帶有聲調(diào)的音節(jié)和單個漢字[14]。語聲數(shù)據(jù)集中聲頻對應(yīng)標(biāo)注即文本??紤]到使用其他建模單元進(jìn)行重新標(biāo)注的成本,本文使用pypinyin庫將漢字轉(zhuǎn)化為拼音。例如,“中國航天科工二院”分別用上述3 種建模單元獲得的標(biāo)簽序列為“zh ong1 g uo2 h ang2 t ian1 k e1 g ong1 er4 y uan4”、“zhong1 guo2 hang2 tian1 ke1 gong1 er4 yuan4”、“中 國 航 天 科 工 二 院”??紤]到本文的任務(wù)需要對齊每個漢字,選擇標(biāo)簽數(shù)量較少的帶聲調(diào)的音節(jié)作為輸出標(biāo)簽。
在本文工作中,dmodel參數(shù)設(shè)置為256。dmodel參數(shù)確定子層和嵌入層的輸出尺寸。參數(shù)注意頭數(shù)h設(shè)置為32。參數(shù)dk(查詢,鍵向量維)、dv(值向量維)設(shè)置為dmodel/h= 8。參數(shù)dff設(shè)置為1024。參數(shù)dff表示編碼器和解碼器層中完全連接的前饋神經(jīng)網(wǎng)絡(luò)層中隱藏單元的數(shù)量。
使用交叉熵作為模型的損失函數(shù)。在解碼器塊之后,線性全連接層用于執(zhí)行細(xì)微變換并將輸出映射到標(biāo)簽數(shù)量的維度,本文統(tǒng)計的標(biāo)簽數(shù)為1356。而softmax 激活用于獲得輸出預(yù)測概率。本文結(jié)合使用了波束搜索解碼器和外部3-gram語言模型,稱為淺層融合[15]。在解碼器預(yù)測結(jié)束標(biāo)簽之后,標(biāo)簽預(yù)測過程停止。
使用Adam[16]優(yōu)化器對該模型進(jìn)行了120 個周期的訓(xùn)練,并且批處理大小設(shè)置為100。在這項工作中,使用了基于帶聲調(diào)拼音的模型。該模型在每個時間步都預(yù)測一個拼音。所有代碼均使用keras和Tensorowow 2.0深度學(xué)習(xí)框架編寫。
(1)設(shè)置兩個卷積層的卷積核尺寸大小分別為(31, 9)和(16, 9),移動步長分別為(2, 2)和(2, 1)。這里設(shè)置幀數(shù)目方向上的核尺寸為9,是為了與堆疊幀編碼保持同一水平。將上述配置卷積編碼與其他3 種位置編碼方法比較,在驗證集和測試集上的詞錯率(Word error rate, WER)實驗結(jié)果如表1所示。
表1 不同位置編碼方法的WERTable 1 WER with different position codes
由表1中數(shù)據(jù)可知,正弦位置編碼仍然保持較好的識別效果,測試集上的WER為9.31%。幀組合在驗證集上的WER 大小和其他方法接近,但是在測試集上的WER 相比偏高,推測該方法沒有將幀序列的相對位置信息編碼進(jìn)特征中,導(dǎo)致模型欠擬合,存在泛化能力不足的問題。
幀重疊位置編碼得到與正弦位置編碼十分類似的結(jié)果,可以判斷兩者方法都具有改善模型性能的優(yōu)勢。但是也發(fā)現(xiàn),正弦位置編碼在驗證集WER大于幀疊加的情況下,測試集WER卻相對較小。推測正弦位置編碼效果更好,其可以在訓(xùn)練集上迭代更少的輪數(shù)來獲得更好的識別性能,因為降低驗證集WER 通常需要調(diào)整更多參數(shù)設(shè)置,導(dǎo)致訓(xùn)練時間更長。
只有卷積位置編碼的WER 低于正弦位置編碼,測試集WER達(dá)到最低的8.62%,相對降低7.4%。進(jìn)一步驗證了卷積操作在時間和空間維度上的平移穩(wěn)定性。分析原因是,卷積操作不僅在幀序列位置方向表達(dá)了相對位置信息,并且在梅爾濾波器組特征方向上提取到了高維特征信息。在共享卷積核參數(shù)下實現(xiàn)這兩種功能,既起到減少模型優(yōu)化參數(shù)量的效果,又融合了語聲的位置和聲學(xué)特征信息。
表1中最后一行還將正弦位置編碼和卷積編碼組合在一起,發(fā)現(xiàn)得不到任何提升。這進(jìn)一步支持了本文上述的推測,即卷積位置編碼的相對信息為Transformer層提供了足夠的特征,以建立更多的全局語聲序列信息。
(2)為了進(jìn)一步探索卷積位置編碼能在多大程度上提高模型的識別效果,通過調(diào)整兩層卷積核尺寸大小,獲得最低的測試集WER。實驗過程如下:
首先固定第二層卷積核尺寸為(16, 9),實驗結(jié)果如表2所示。
表2中第一行括號里數(shù)據(jù)為第一層卷積核的尺寸。由表2中數(shù)據(jù)可得,(41, 11)時的WER最低。接著固定第一層卷積核尺寸為(41, 11),實驗結(jié)果如表3所示。
表3 第二層卷積核不同尺寸下的WERTable 3 The second layer convolution kernel WER under different sizes
由表3可得,在本文實驗中,兩層卷積核尺寸分別為(41, 11)和(21, 11)的條件下,測試集WER達(dá)到最低的8.16%。相比與正弦位置編碼的基線模型,基于卷積位置編碼的Transformer模型WER降低了12.4%,達(dá)到了最佳的識別性能。
本文針對Transformer 模型中編碼器的輸入信息,采用了具有可學(xué)習(xí)性的卷積位置編碼,構(gòu)建了序列到序列的ASR 系統(tǒng)。輸入卷積層捕獲相對位置信息,這使后續(xù)的Transformer 層能夠了解編碼器中局部概念之間的長距離關(guān)系,進(jìn)而在解碼器中預(yù)測準(zhǔn)確的目標(biāo)序列。本文的4 個位置編碼方法,在添加3-gram 語言模型基礎(chǔ)上輸出預(yù)測標(biāo)簽,最佳配置將WER 相對降低了12.4%。將本文的系統(tǒng)與更好的解碼器優(yōu)化方法結(jié)合,或許能夠得到更好的識別效果。另外,不同模型的組合也會帶來不錯的提升,例如結(jié)合具有循環(huán)機(jī)制的Transformer 層,這將是未來的研究工作。