梁仁鳳,余正濤,高盛祥,黃于欣,郭軍軍,許樹理
(1. 昆明理工大學 信息工程與自動化學院,云南 昆明 650500;2. 昆明理工大學 云南省人工智能重點實驗室,云南 昆明 650500)
自動語音識別(Automatic Speech Recognition,ASR)是把語音中包含的詞匯內容轉換為計算機可理解的文本。隨著深度學習的快速發展,ASR系統主要分為兩類:傳統混合系統和當前主流的端到端模型。傳統混合系統[1]基于深度神經網絡隱馬爾可夫模型(Deep Neural Networks - Hidden Markov Models ,DNN-HMM)對聲學模型建模,使用發音字典將音素序列轉換為詞,再通過一個語言模型將詞序列映射為句子。系統訓練時,這些聲學、發音和語言組件有不同的激活函數,通常單獨訓練和優化。為了彌補傳統混合系統的不足,當前流行的端到端模型[2]將傳統混合系統折疊為一個單一的神經網絡,去除傳統框架中所有中間步驟和獨立子任務,輸入語音特征,直接輸出源語言文本,具有容易訓練、模型簡單和聯合優化的優勢,目前取得顯著效果。當前端到端模型流行的方法主要有連接時序分類算法(Connectionist Temporal Classification,CTC)[3]和使用CTC與注意力對齊機制的混合方法[4]。CTC不需要對訓練語料預先分段和后處理,直接輸出標簽。然而,CTC基于條件獨立假設訓練ASR模型,缺乏對輸入序列間上下文關系的建模。因此,注意力對齊機制[5]引入到基于序列到序列結構的語音識別模型中[6],但過度靈敏的關注對齊方式應用到真實的語音識別場景中會表現出比較差的效果。于是, Kim等人[7]結合CTC和注意力機制的優勢提出基于兩者的混合語音識別模型。基于混合語音模型,Moritz等人[8]、Sarl等人[9]取得更好的識別效果。
綜上所述,端到端的模型主要在英語、法語等表音文字的語音識別中取得很好的效果,然而,漢語是一種典型的表意文字,每一個漢字表示個別詞或詞素的形體,不與語音直接發生聯系,當前端到端的模型對漢字的識別存在一些不足。Chan 等人[10]在漢字識別的研究工作中表明模型對漢字的識別收斂速度較慢。拼音作為漢字的讀音標注文字,直接表示漢字語音,拼音與漢字存在內在轉換關系,基于音節(拼音)的研究工作[11]持續至今。將語音特征識別為音節單元[12],再通過一個轉換模型將拼音變換為漢字[13]的級聯模型存在錯誤傳播,為了避免這種問題, Chan等人提出漢字-拼音識別模型,只在訓練時使用拼音幫助對漢字的識別,但是這種方法識別字符錯誤率(Character Error Rate,CER)達到59.3%,對此, Zhou等人提出基于Transformer[14]的貪婪級聯解碼器模型,取得相對滿意的效果。
基于以上研究工作,在漢語語音識別中,引入拼音作為對漢字解碼的約束,能夠促使模型學習更好的語音特征。在漢語中,對漢字的識別類似于語音翻譯(Spoken Language Translation,ST)[15],對拼音的識別可以視為對漢語的語音識別。在ST領域, Weiss 等人[16]提出語音識別和語音翻譯聯合學習可以有效提高模型翻譯性能。本文從該項研究工作中受到啟發,在多任務學習框架下[17],提出基于拼音約束聯合學習的漢語語音識別方法,在漢語語音識別中引入拼音語音識別任務作為輔助任務聯合訓練,共同學習,相互促進。在希爾貝殼公司發布的普通話語音數據庫AISHELL-1[18]上,相比基線模型,詞錯誤率WER降低2.24%。
模型共享一個編碼器,拼音語音識別和漢語語音識別分別有一個解碼器。訓練時,模型的交叉熵是兩個解碼器分別計算損失后正則求和;反向傳播時,編碼器的參數被兩個任務同時更新,達到兩個任務相互增強的效果。模型結合Weiss等人的研究工作和Kim等人提出的混合模型,并對其做了進一步改進,具體模型結構如圖1所示。可以看出,模型共包括三個部分:共享編碼器、拼音語音識別和基于拼音約束聯合學習的漢字識別。
模型共享一個編碼器,編碼器采用雙向長短期記憶網絡(Long Short Term Memory Networks, LSTM),雙向LSTM結構見圖1中的共享編碼器部分。共享編碼器將語音信號特征x=(x1,x2,…,xT)作為輸入,使用卷積層(Visual Geometry Group,VGG)對x抽取特征轉為高維的隱表征,輸出為h=(h1,h2,…,hL)。這里T表示語音特征的幀索引,L為對語音特征下采樣后的幀索引(L≤T)。編碼器的編碼過程如式(1)所示。
拼音語音識別模型采用當前流行的基于注意力機制的編碼器-解碼器框架,編碼器采用1.1節介紹的共享編碼器結構。解碼器采用單向LSTM,見圖1中的拼音解碼器部分。解碼器以共享編碼器的輸出h作為輸入,基于t時刻前的輸出標簽序列,得到t時刻的預測拼音p標簽ypt的概率分布。如式(2)、式(3)所示。

圖1 基于拼音約束聯合學習的漢語語音識別模型結構圖
對于時間步t,基于輸入語音特征h和注意力機制權重at,l產生文本向量ct,如式(4)所示。
(4)
這里的at,l通過Softmax層計算,如式(5)~式(7)所示。
其中,訓練參數有ω、W、V、U和F,γ是模型的銳化因子,*表示一維卷積,ft通過*與卷積參數F計算得出,b是偏置項。
解碼器使用ct、t時刻前的輸出標簽yp(t-1)和隱狀態st-1生成當前時刻的隱狀態st和預測拼音標簽ypt,如式(8)、式(9)所示。
其中,LSTM()代表單向循環神經網絡,Generate()代表前饋網絡。
結合式(2),拼音語音識別的損失函數如式(10)所示。
其中,拼音序列yp=(yp1,yp2,…,ypt),其中t≤T。
基于共享編碼器的輸出h,漢字解碼器同樣以h作為輸入,結合t時刻前的輸出標簽序列,通過前饋網絡和softmax激活函數,得到t時刻預測漢字標簽yt的概率分布P(y|h),基于P(y|h),漢字語音識別交叉損失熵如式(11)所示。
其中,漢字序列y=(y1,y2,…,yt)。
在多任務學習框架下,提出模型的交叉損失熵通過拼音解碼器和漢字解碼器分別計算損失后正則求和。聯合訓練時,拼音語音識別作為輔助任務幫助模型增強對漢字的識別能力。與此同時,漢語語音識別作為主要任務促進模型對拼音監督信號的解碼。反向傳播時,通過共享編碼器,能同時接收拼音和漢字的監督信號,編碼器的參數被拼音語音識別和漢字語音識別同時更新。結合式(10)、式(11),基于拼音約束聯合學習的漢字識別交叉熵損失函數如式(12)所示。
Lhy(h,y)=λLp(h,yp)+(1-λ)L(h,y)
(12)
其中,λ為模型可微調的超參數,λ∈(0,1)。
考慮CTC具有使模型快速收斂的優勢,且不需要對輸入、輸出序列做一一標注和對齊,因此提出的模型結合了CTC。通常情況下,CTC與循環神經網絡(Recurrent Neural Network,RNN)結合,RNN作為編碼器,把語音特征序列x轉為高維的隱狀態h,該編碼器過程如式(1)所示?;谡Z音隱表幀h,CTC假設輸出漢字標簽之間條件獨立,標簽之間允許插入空白表示(-),求出標簽序列任何一條路徑π=(π1,π2,…,πT)的概率分布P(π|h),由于多條路徑序列可能只對應一條漢字標簽序列,通過定義一個多對一的映射函數f(π∈f(y))將路徑序列映射到標簽序列y,采用前后向算法有效求得標簽序列的最大概率分布P(y|h),基于P(y|h),可以計算CTC的負對數似然函數LCTC,如式(14)、式(15)所示。本文模型結合CTC模型的交叉熵損失函數如式(13)所示。
L(h,y)=(1-λ1)Lhy(h,y)+λ1LCTC(h,y)
(13)
LCTC(h,y)=-ln(P(y|h))
(14)

(15)
其中,λ1為模型可微調的超參數,λ1∈(0,1),y′為映射標簽序列。
數據設置集見表1,使用由希爾貝殼公司發布的普通話語音數據庫AISHELL-1[18]證明了本文方法的有效性。該訓練語料包括200個說話者,其中,訓練集有120 098條語音(約150個小時),驗證集有14 326條語音(約10個小時),測試集有7 176條語音(約5個小時)。通過Torchaudio工具, 提取以上訓練語料步長為10ms、窗口大小為25ms、維度為40的梅爾倒頻譜filter-bank特征。

表1 實驗數據集AISHELL-1
本文使用詞錯誤率作為模型的評價指標,詞錯誤率簡稱WER(Word Error Rate),將模型預測的輸出序列與監督信號序列進行比較,WER算法如式(16)所示。
其中,S、D、I表示替換、刪除和插入的字數,N為監督信號字序列的總字數。
對于未登錄字,使用特殊字符UNK代替,超參數均設置為0.2時模型效果最好,Dropout設為0.25。模型采用Adadelta算法進行優化,Batch-size設置為16,共享編碼器采用4層的卷積網絡和5層的雙向LSTM,雙向LSTM每個方向有512個隱狀態單元,兩個解碼器均是一個單層的有512個隱狀態單元的LSTM,注意力機制Attention使用LAA(Location-Aware Attention)。在詞嵌入層,每個字表征為256維的向量。拼音的字表大小為1 400,漢語的字表大小為4 500。
本文共選擇了三個基線模型,分別在訓練數據模型集AISHELL-1上進行試驗,得到WER評分。模型包括基于音節的貪婪級聯解碼模型、序列到序列(Sequence-to-sequence,S2S)結合CTC的混合模型(S2S+CTC)和級聯模型。
貪婪級聯解碼模型是使用兩個束搜索(beam search)級聯解碼的Transformer模型。
混合S2S+CTC語音識別系統是一種結合CTC和注意力機制(Attention)兩者優勢的序列到序列模型,是目前常用的語音識別系統。
級聯模型是將漢語語音特征序列識別為拼音文本序列,再采用一個額外的語言模型將拼音文本轉寫為漢語文本。
對比基線模型,在AISHELL-1數據集上,驗證了本文方法的有效性。使用WER值作為模型的評價指標(表2)。

表2 提出模型對比基線模型的實驗結果
根據表2的實驗結果分析:相比S2S+CTC+拼音,S2S+CTC+漢字的WER值在驗證集上高4.93%,在測試集上高5.04%,這說明當前的端到端語音識別模型對表意文字的識別效果不佳。相比基線模型S2S+CTC+漢字,提出模型在驗證集上的WER值低2.5%,在測試集上的WER值低2.24%,說明在當前的漢語語音識別中引入拼音語音識別作為輔助任務聯合訓練,增強了模型對漢字的識別能力。相比級聯系統+CTC,提出模型在驗證集上的WER值低1.31%,在測試集上低1.05%,說明在漢語語音識別中引入拼音語音識別任務,提出的方法避免了級聯系統導致的錯誤傳播問題,取得比級聯系統更好的識別效果。相比貪婪級聯解碼模型,提出模型在驗證集上的WER值低6.1%,在測試集上的WER值低4.95%,這說明提出的模型在漢語語音識別中引入拼音作為一種更接近漢語語音的歸納偏置,增強了模型對漢字的表達能力。
為了討論拼音語音識別任務和CTC對漢字識別的影響,對提出的模型去除CTC結構進行消融實驗,且分別將級聯系統和S2S+CTC模型均消去CTC結構。三個模型訓練時間基本一致,實驗結果如表3所示。

表3 消融性實驗結果分析
從表3可以看出,相比S2S-CTC+拼音,S2S-CTC+漢字在驗證集集上的WER值高6.23%,在測試集上的WER值高6.45%,說明當前的端到端語音識別系統對表意文字的識別效果不佳。相比基線模型S2S-CTC+漢字,提出模型-CTC在驗證集上的WER值低2.61%,在測試集上的WER低2.57%;相比級聯系統-CTC,提出模型-CTC在驗證集上的WER低1.5%,在測試集上的WER低2.31%,說明提出模型在不受CTC影響下,引入拼音約束聯合學習,增強了模型對漢語語音特征的表達。
由于漢字與語音沒有直接的聯系,拼音與漢字、語音具有內在關系,本文提出基于拼音約束聯合學習的漢語語音識別方法,通過多任務學習框架,聯合拼音語音識別、漢字語音識別任務共同學習,取得了更好的效果。未來工作中,可以將拼音序列變換漢字序列視為一個機器翻譯任務,通過共享解碼器方式去增強聯合學習模型的語義表達能力以及語句標點符號的判斷。