高耀榮,邊巴旺堆
(西藏大學(xué)信息科學(xué)技術(shù)學(xué)院,拉薩 850000)
全球現(xiàn)有語言數(shù)量約為7000 種,大多數(shù)自動語音識別工作處理的是擁有大型語料庫的語言,如普通話、英語和日語等。而對于小語種,如藏語,使用人數(shù)相比大語種要少,若使用基于傳統(tǒng)語音識別方法如DNN-HMM[1],則需準(zhǔn)備發(fā)音詞典且對藏語有深入了解,因此也導(dǎo)致了藏語語音識別的處理工作所需門檻更高[2]。在藏語語系中分衛(wèi)藏方言、安多方言、康巴方言,三者有共性也有區(qū)別,其中衛(wèi)藏方言主要在西藏中部人口最密集的地方使用,因此本文選用衛(wèi)藏方言作為研究對象。
傳統(tǒng)語音識別系統(tǒng)要求聲學(xué)模型、語言模型和發(fā)音字典。而如今藏語信息處理在進(jìn)行現(xiàn)代化變遷[3-4]。近年來,端到端網(wǎng)絡(luò)[5]的出現(xiàn)降低了實(shí)現(xiàn)語音識別的前期準(zhǔn)備門檻,其由編碼器和解碼器構(gòu)成,編碼器相當(dāng)于特征提取器,解碼器基于編碼器搜索最優(yōu)解,只需準(zhǔn)備語音和文本,即可實(shí)現(xiàn)語音到文本的直接轉(zhuǎn)換。此外,端到端網(wǎng)絡(luò)提供了更廣泛的建模單元選擇,也據(jù)此提出了很多端到端模型,如鏈接時(shí)序分類技術(shù)[6]、基于注意力的LAS[7](Listen, Attend and Spell)模型。
不同的端到端網(wǎng)絡(luò)各有優(yōu)缺點(diǎn),本文通過聯(lián)合基于鏈接時(shí)序分類(connectionist temporal classification,CTC)和注意力機(jī)制(Attention)模型,以此融合了CTC 自動對齊和Attention[8]建立上下文聯(lián)系的優(yōu)點(diǎn),引入聯(lián)合參數(shù)λ對CTC 和Attention 分配不同的權(quán)重。并且以Transformer作為編碼器提取全局特征。因此,本文建立Transformer-CTC/Attention 模型應(yīng)用于藏語語音識別。
藏文作為拼音文字,由30 個(gè)輔音字母和4個(gè)元音字母組合而成。類似中文,一個(gè)藏文字通常為一個(gè)音節(jié),而每個(gè)音節(jié)之間由音節(jié)符“?”來分割。藏文一個(gè)音節(jié)的結(jié)構(gòu)分七部分,分別包括前加字、上加字、輔音、下加字、元音、后加字和再后加字,最基礎(chǔ)的結(jié)構(gòu)只有輔音,而最復(fù)雜的結(jié)構(gòu)如圖1所示。
圖1 藏文結(jié)構(gòu)
語音識別的建模單位的選取需要與發(fā)音結(jié)構(gòu)相聯(lián)系,傳統(tǒng)藏語語音識別以音素為建模單元,并需準(zhǔn)備音素與文字轉(zhuǎn)換關(guān)系的發(fā)音字典。如今隨著算力和深度網(wǎng)絡(luò)學(xué)習(xí)能力的提升,已無需選擇較小建模單位如音素,Zhou 等[9]探究了五種不同建模單位(音素、音節(jié)、詞、子詞和漢字)對普通話語音識別的效果,實(shí)驗(yàn)結(jié)果表明基于漢字的模型效果最好,由于藏文字通常為一個(gè)音節(jié)的特點(diǎn),即一個(gè)藏文字可看成是一個(gè)發(fā)音單元,所以本文選取以字為識別單位。如這一句???????????????????????(扎西德勒)識別順序則為“???”“?????”“?????”“??????”,此種方式對應(yīng)著以字為識別單位的中文語音識別[9]或以單詞為識別單位的英語語音識別,并都得到優(yōu)秀的識別率。
Transformer[10]由Decoder 和Encoder 組成,即編碼器-解碼器。其中在每個(gè)Decoder 和Encoder 中采用Attention 機(jī)制,加強(qiáng)了信息的關(guān)聯(lián)性,給更重要的信息更多關(guān)注度。其中,多頭注意力機(jī)制可以無需考慮距離關(guān)注輸入序列不同位置之間的關(guān)系,可以更容易獲取全局信息,在語義特征提取能力和長距離特征捕捉能力方面優(yōu)于傳統(tǒng)的LSTM模型[11]。
Transformer 也被廣泛應(yīng)用于語音識別領(lǐng)域,2018 年,Dong 等[12]就首次把Transformer 模型應(yīng)用于ASR 中,而Huang 等[13]通過限制自注意力的學(xué)習(xí)范圍研究流式的Transformer 語音識別網(wǎng)絡(luò),流式語音識別是語音數(shù)據(jù)實(shí)時(shí)傳入而識別文本結(jié)果實(shí)時(shí)輸出,對比非流式語音識別需要更快的解碼速度。Transformer 結(jié)構(gòu)如圖2 所示,Transformer 包含多組的Encoder 和Decoder,每個(gè)Encoder 包含三層,分別是self-Attention、Layer Norm 和Feed Forward;而Decoder 的Attention 則為兩級,第一級self-Attention 的輸入信息來自前一層Decoder 的輸出結(jié)果,第二級Encoder-Decoder Attention 的輸入信息來自前一層Decoder 和Encoder 的輸出結(jié)果,從而結(jié)合輸入和輸出的信息。其輸入信息來自整個(gè)結(jié)構(gòu),可以建立輸入語音特征和識別結(jié)果之間的序列對應(yīng)關(guān)系,所以本質(zhì)上還是端到端的結(jié)構(gòu)。
圖2 Transformer結(jié)構(gòu)
圖3 CTC結(jié)構(gòu)
圖2 中Positional Encoding 即位置編碼,由于Transformer 引入了self-Attention 機(jī)制,self-Attention 對輸入的token 無法分辨信息的相對位置信息,則需給輸入的位置作標(biāo)記。在本文輸入語音之前,學(xué)習(xí)語音特征的位置信息,并疊加到輸入Embedding中,該位置信息的獲取是獨(dú)立的,不需要依賴前后遞歸或卷積操作。位置編碼的公式為
其中:PE是語音的位置向量,pos為每個(gè)輸入語音的實(shí)際位置,i表示是第幾個(gè)元素,dmodel是語音向量的維度,sin 和cos 交替編碼位置,既保存語音實(shí)際位置信息也可得到語音的相對位置信息。
Transformer 的核心是self-Attention,注意力函數(shù)相當(dāng)于通過一組鍵值對將查詢的向量映射到輸出,并通過加權(quán)和得到輸出。我們將查詢、鍵和值分別表示為Q,K和V,self-Attention 具體公式如下:
其中:dk是矩陣K的列數(shù),在原始實(shí)現(xiàn)的基礎(chǔ)上,通過Scale 操作對QKT除以dk開平方,以避免值過大導(dǎo)致softmax函數(shù)梯度很小、很難優(yōu)化。經(jīng)過注意力函數(shù)的輸出結(jié)果Z的每一行Zi表示一個(gè)位置的結(jié)果,這個(gè)位置對應(yīng)輸入語音特征序列X的某一幀Xi,且這個(gè)位置輸出結(jié)果還包含了其他幀Xj的信息,公式如下:
由上述公式可知,輸出結(jié)果包含了句子上下信息,即不僅關(guān)注當(dāng)前語音的幀,也能獲取語音前后其他幀的信息,這些信息的重要性通過Attention 機(jī)制調(diào)節(jié)。在此基礎(chǔ)上引入多頭注意力(Multihead Attention)機(jī)制,即可取多組的Q、K和V進(jìn)行計(jì)算。
輸入的語音序列存在靜音、重復(fù)的情況,因此一般語音序列是比實(shí)際文本序列要長的。而鏈接時(shí)序分類(CTC)可以實(shí)現(xiàn)自動對齊輸出標(biāo)簽和輸入序列,不需要像DNN-HMM[1]那樣需要對齊標(biāo)注。CTC 假定輸入符號是相互獨(dú)立的,輸出序列X和輸出序列Y是按時(shí)間順序單調(diào)對齊,在輸入序列X={x1,x2,…,xT}和輸出序列Y={y1,y2,…,yT}之間建立了多對一的鏈接,然后通過動態(tài)規(guī)劃來解決序列對齊問題,從而實(shí)現(xiàn)語音和文本的匹配。
CTC 引入空白標(biāo)簽“blank”表示靜音的情況,即輸出序列Y′=Y∪{“blank”},把出現(xiàn)此情況的標(biāo)簽替換為“blank”,而在識別的最后則需要?jiǎng)h去空白標(biāo)簽。假設(shè)建模單元序列為Q,CTC 的識別目標(biāo)是讓輸入序列X和輸出序列Y吻合,即式(4)的概率P(Y|X)盡可能大,CTC 損失公式(5)盡可能小,其中的P(Q|X)相當(dāng)于聲學(xué)模型,描述了語音與建模單元的關(guān)系。
基于Attention 的Encoder-Decoder,可以看成是端到端架構(gòu)的改進(jìn)版,在Encoder和Decoder之間通過Attention 機(jī)制銜接,使得Decoder 的輸出與Encoder有了注意力權(quán)重,結(jié)構(gòu)如圖4所示。
圖4 Attention結(jié)構(gòu)
本文Attention 的Encoder 為Transformer,Transformer 的輸出作為Attention 的輸入,即Transformer 相當(dāng)于是聲學(xué)模型提取語音特征。而Attention 的Decoder 結(jié)構(gòu)設(shè)定為LSTM,最后的輸出為將LSTM 隱藏層的當(dāng)前狀態(tài)hu通過Softmax 函數(shù)得到。因此,最終輸出是計(jì)算預(yù)測標(biāo)簽和輸入序列的概率分布,相當(dāng)于是語言模型。
網(wǎng)絡(luò)中Attention 機(jī)制的輸入是Encoder 的輸出序列,通過公式計(jì)算注意力權(quán)重建立輸出序列和輸入序列的對齊關(guān)系。
其中,αu-1,t是注意力權(quán)重,公式如下:
其中,eu-1,t表示解碼器輸出與編碼器輸出的原始注意力分?jǐn)?shù)。
CTC 可以實(shí)現(xiàn)對齊輸入序列和輸出標(biāo)簽,但是若建模單元為互相獨(dú)立,沒有考慮到標(biāo)簽之間的組合關(guān)系,即沒有語言模型,則會導(dǎo)致識別準(zhǔn)確率不高。而Attention 機(jī)制通過注意力權(quán)重建立標(biāo)簽各種組合的可能性,但輸出序列和輸入序列不一定按順序嚴(yán)格對齊。因此,將CTC 和Attention 結(jié)合起來構(gòu)建聯(lián)合CTC/Attention模型,Attention 融入CTC 自動對齊的優(yōu)點(diǎn),可以避免解碼時(shí)對齊過于隨機(jī),提高識別率。
根據(jù)端到端結(jié)構(gòu),先提取語音Fbank 特征向量作為編碼器Transformer 的輸入,CTC 和Attention 共為解碼器,編碼器的輸出被二者共享,最后通過聯(lián)合解碼輸出,具體結(jié)構(gòu)如圖5所示。CTC/Attention 模型的訓(xùn)練是多任務(wù)學(xué)習(xí),模型的損失其實(shí)就是CTC loss 和Attention loss 的加權(quán)求和,引入λ為聯(lián)合參數(shù)取值范圍為[0,1],損失計(jì)算公式如下:
圖5 Transformer-CTC/Attention 模型
對語音使用kaldi 工具提取80 維的Fbank 特征作為模型輸入,窗長為25 ms,窗移為10 ms。其中每幀添加0.1的隨機(jī)噪聲系數(shù)。
本文Transformer 的多頭注意力頭數(shù)為4 個(gè),encoder 塊有12 個(gè),decoder 塊有6 個(gè),每個(gè)塊的參數(shù)獨(dú)立,采用ReLU作為激活函數(shù),dropout系數(shù)為0.1。使用自適應(yīng)矩估計(jì)Adam 優(yōu)化器,既能適應(yīng)稀疏梯度,又能緩解梯度震蕩。采用warmup steps 為5000 的warmup lr 學(xué)習(xí)策略訓(xùn)練,設(shè)定學(xué)習(xí)率為0.002,訓(xùn)練160輪。
為驗(yàn)證模型的有效性,實(shí)驗(yàn)選取Zhao 等[14]公開的包含30 小時(shí)的衛(wèi)藏藏語語音數(shù)據(jù)集TIBMD@MUC。語音為16 KHz 的WAV 格式,訓(xùn)練集和測試集分別為27 小時(shí)和3 小時(shí)?;谇拔乃V的建模單元選取方法,對此數(shù)據(jù)集藏語文本進(jìn)行處理,得到2857 個(gè)建模單元,其中
本次藏語語音識別任務(wù)以詞識錯(cuò)率(word error rate,WER)[15]作為評價(jià)標(biāo)準(zhǔn),其中S代表替換的字?jǐn)?shù)量,D代表刪除的字?jǐn)?shù)量,I代表插入的字?jǐn)?shù)量,N代表總的字?jǐn)?shù)量。WER值越小越好。具體公式如下:
為驗(yàn)證聯(lián)合CTC/Attention 的有效性,先研究CTC 和Attention 分別在藏語語音識別的效果,設(shè)置λ= 1 和λ= 0 分別表示Transformer-CTC 和Transformer-Attention 模型。為探究不同聯(lián)合參數(shù)λ的效果,預(yù)先設(shè)置CTC/Attention 模型的聯(lián)合訓(xùn)練參數(shù)λ為0.3、0.5 和0.7,三個(gè)值作對比分析,經(jīng)過實(shí)驗(yàn)結(jié)果分析決定再增添訓(xùn)練參數(shù)λ= 0.8作對比,最終實(shí)驗(yàn)結(jié)果見表1。
表1 語音識別結(jié)果
實(shí)驗(yàn)結(jié)果表明,相對于單獨(dú)以CTC 或Attention作為解碼器,聯(lián)合CTC/Attention 模型應(yīng)用在藏語語音識別中的識錯(cuò)率都有不同程度的降低,且都優(yōu)于Zhao等[14]的WaveNet-CTC實(shí)驗(yàn)結(jié)果。這是因?yàn)門ransformer 是基于Attention,而WaveNet 是基于CNN,因此以Transformer 作為聲學(xué)模型可以更好地提取長序列輸入的全局特征和上下文依賴。
圖6 和圖7 分別表示CTC、Attention 和聯(lián)合模型CTC/Attention 的損失曲線圖。由圖6 可知,在藏語語音識別中,Attention 損失相對CTC 更小,且下降得更快。圖7 結(jié)果表明,聯(lián)合參數(shù)λ越大,即CTC 占比越大,則損失越大且收斂速度更慢。然而結(jié)合表1 實(shí)驗(yàn)結(jié)果,當(dāng)λ= 0.7 的時(shí)候,相對其他聯(lián)合參數(shù)識別結(jié)果更好,這是因?yàn)楫?dāng)給予CTC 更大的權(quán)重時(shí),有助于CTC 階段對齊更準(zhǔn)確,而即使因此減少了Attention 的權(quán)重,由于Attention 收斂得很快,在足夠的訓(xùn)練次數(shù)上對Attention本身性能影響不大。
圖6 CTC、Attention訓(xùn)練損失
圖7 CTC/Attention訓(xùn)練損失
藏語語音識別是尊重民族文化,促進(jìn)民族團(tuán)結(jié)的重要任務(wù)。本文構(gòu)建Transformer-CTC/Attention 端到端模型對藏語語音識別進(jìn)行研究。使用藏字作為識別單位,在Zhao等[14]的藏語語音數(shù)據(jù)集上取得更低的識錯(cuò)率。證明以藏字為識別單位和端到端網(wǎng)絡(luò)對藏語語音識別的可行性,驗(yàn)證了Transformer-CTC/Attention優(yōu)于WaveNet-CTC網(wǎng)絡(luò),探究了不同的聯(lián)合參數(shù)λ對藏語語音識別的效果。藏語語音識別目前遇到最大的困難還是未有更大型專業(yè)的藏語語音公開數(shù)據(jù)集,基于此問題,未來的研究方向可以引入遷移學(xué)習(xí)和無監(jiān)督學(xué)習(xí),從而拓寬學(xué)習(xí)范圍。