摘要:本文針對藏語中的衛(wèi)藏方言,探討了自動語音識別(automatic speech recognition,ASR)技術(shù)在語音識別模型構(gòu)建方面的應(yīng)用。利用時間遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)及其變體來提升ASR系統(tǒng)的性能。通過引入LAS(listen,attend and spell)模型,并結(jié)合多任務(wù)學(xué)習(xí)框架、深度卷積神經(jīng)網(wǎng)絡(luò)和改進(jìn)的注意力機(jī)制,顯著提升了ASR系統(tǒng)的性能。在實驗中,改進(jìn)后的LAS模型在測試集和訓(xùn)練集上的詞錯誤率分別達(dá)到了12.40%和16.23%,實驗結(jié)果驗證了方法的有效性。
關(guān)鍵詞:時間遞歸神經(jīng)網(wǎng)絡(luò);自動語音識別;藏語語音
引言
藏語是漢藏語系中的一個分支,主要在西藏自治區(qū)、青海省、四川省、甘肅省和云南省等地使用。藏語使用人數(shù)少,且使用者大多分布在經(jīng)濟(jì)水平較低的地區(qū),導(dǎo)致藏語的語音處理技術(shù)方面較為落后。藏語語系有三個分支,分別為衛(wèi)藏方言、安多方言、康巴方言,本文的語音識別以衛(wèi)藏方言作為研究對象。
自動語音識別(ASR)技術(shù)在現(xiàn)代人機(jī)交互中至關(guān)重要,應(yīng)用廣泛。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,端到端ASR系統(tǒng)成為研究熱點,其中LAS[1]模型因其高效和性能優(yōu)越而備受關(guān)注。LAS模型通過編碼器、注意力機(jī)制和解碼器的結(jié)合,能夠直接將語音輸入映射為文本輸出,簡化了系統(tǒng)架構(gòu),并通過端到端訓(xùn)練提升了識別精度。
時間遞歸神經(jīng)網(wǎng)絡(luò)(temporal recursive neural network)也稱為循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[2],是一類專門用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),通過在時間維度上遞歸地處理輸入數(shù)據(jù),能夠捕捉時間序列中的動態(tài)變化和依賴關(guān)系。與傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)不同,RNN具有循環(huán)連接,使網(wǎng)絡(luò)能夠保留和利用過去時間的信息,使其在自然語言處理(NLP)、語音識別和時序預(yù)測等領(lǐng)域得到廣泛應(yīng)用。
在本文中,RNN及其變體如長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)和門控循環(huán)單元(gated recurrent unit,GRU)被廣泛應(yīng)用于多個關(guān)鍵模塊,以增強系統(tǒng)對時間序列數(shù)據(jù)的處理能力。在自動語音識別(ASR)模塊中,RNN層用于對語音特征進(jìn)行編碼,通過遞歸地處理音頻幀,捕捉音頻信號中的時間依賴性。在解碼器部分,GRU模塊用于將語音特征轉(zhuǎn)換為文本。在連接時序分類(connectionist temporal classification,CTC)解碼過程中,結(jié)合RNN語言模型(RNNLM)以提供上下文信息,增強語言建模能力,提高識別準(zhǔn)確率。
此外,在解碼過程中,通過維護(hù)和更新LSTM和GRU的隱藏狀態(tài),保證了解碼過程的連續(xù)性和準(zhǔn)確性。通過在這些模塊中的應(yīng)用,RNN及其變體顯著提升了系統(tǒng)處理語音信號的能力和整體性能。引入多任務(wù)學(xué)習(xí)框架提升模型的泛化能力,采用深度卷積神經(jīng)網(wǎng)絡(luò)捕捉衛(wèi)藏方言的時頻特征,并改進(jìn)注意力機(jī)制,以在長時間語音處理中表現(xiàn)更佳。實驗結(jié)果表明,改進(jìn)后的LAS模型在多個衛(wèi)藏方言數(shù)據(jù)集上的性能優(yōu)于現(xiàn)有方法,驗證了該方法的有效性。
1. ASR
語音識別系統(tǒng)(ASR)的基本處理流程就是將接收到的語音信號經(jīng)過處理后轉(zhuǎn)化為相應(yīng)的詞序列,典型的ASR架構(gòu)如圖1所示。
ASR主要由四個部分組成:信號預(yù)處理和特征提取、聲學(xué)模型(AM)、語言模型(LM)和識別器。信號預(yù)處理和特征提取組件以音頻信號作為輸入,通過消除噪聲和信道失真來增強語音信號,將信號從時域轉(zhuǎn)換到頻域,然后提取適合下一步聲學(xué)模型的特征矢量。聲學(xué)模型組件通過集成聲學(xué)和語音學(xué)知識,W特征提取組件生成的特征向量序列作為輸入,并生成該特征向量序列的聲學(xué)模型得分。語言模型組件通過對訓(xùn)練語料的學(xué)習(xí)獲得詞間相關(guān)性,并以此來估計假設(shè)詞序列的概率或者語言模型(LM)得分[3]。根據(jù)統(tǒng)計語音識別的基礎(chǔ)數(shù)學(xué)理論可知:假設(shè)X表示待識別的語音特征向量序列(觀察序列),W表示詞序列,那么對應(yīng)于觀察序列的詞序列W*表示為
(1)
根據(jù)貝葉斯理論有
(2)
(3)
其中,P(X\W)表示在給定詞序列W的情況下觀測到語音特征X的概率,即聲學(xué)模型的概率;P(W)表示詞序列的先驗概率,即語言模型的概率。
2. LAS模型
LAS模型是一種端到端的序列到序列(seq to seq)模型,旨在解決語音識別任務(wù)。與傳統(tǒng)的語音識別系統(tǒng)不同,LAS模型不需要明確的音素邊界標(biāo)注和語言模型,可以直接從語音信號中學(xué)習(xí)到對應(yīng)的文本序列。LAS模型的架構(gòu)圖如圖2所示。
模型的輸入和輸出分別為x和y。
(4)
(5)
其中,,yi是輸出序列的字符。[sos]、[eos]分別是句子開頭和結(jié)尾的標(biāo)志,[unk]表示未知標(biāo)志。LAS根據(jù)前面輸出的字符y<i和輸入信號x使用概率的鏈?zhǔn)揭?guī)則,將輸出字符建模成條件分布
(6)
LAS模型主要包括兩個子模塊:listener和speller。listener是聲學(xué)模型的編碼器,主要執(zhí)行Listen操作,這個操作主要將原始信號x轉(zhuǎn)換為高層次的表示h=(h1,…,hu)且滿足U≦T。speller是一個基于注意力機(jī)制的編碼器,只要執(zhí)行操作AttendAndSpell這個操作將h作為輸入,計算一個概率分布
(7)
(8)
Listen操作使用金字塔形的BLSTM,記為pBLSTM,這個結(jié)構(gòu)可以將h的長度從T減到U,因為T是輸入信號的長度,輸入信號可以很長。傳統(tǒng)的BLSTM,當(dāng)在第i時間第j層時,輸出為
(9)
在pBLSTM中,其表達(dá)式為
(10)
在每一步的操作中,模型根據(jù)目前已經(jīng)預(yù)測出的字符,來估計下一個字符概率分布。輸出字符yi的分布與解碼狀態(tài)si和上下文向量context vector(ci)有關(guān)。解碼狀態(tài)si與三個參數(shù)有關(guān),分別為:前一個解碼狀態(tài)si-1、前面預(yù)測的字符yi-1、前一個上下文變量ci。上下文向量ci根據(jù)注意力機(jī)制[4]計算得到,即
(11)
(12)
(13)
其中,CharacterDistribution是MLP關(guān)于字符的輸出,RNN是2層LSTM。
在時間i中,注意力機(jī)制(文中用AttentionContext表示)產(chǎn)生一個上下文向量ci,這個上下文向量可以從聲學(xué)模型獲取產(chǎn)生下一個字符的信息。注意力模型與內(nèi)容相關(guān),解碼器狀態(tài)si與高層特征表示hu匹配,可以產(chǎn)生注意力因子α,用參數(shù)αi對向量進(jìn)行線性壓縮,即可得到上下文向量ci。具體而言,在時間i里,AttentionContext函數(shù)使用參數(shù)hu和si來計算標(biāo)量波能量scalar energy(記為ei,u),其中。然后,標(biāo)量波能量ei,u使用softmax函數(shù),轉(zhuǎn)換為概率分布。softmax概率當(dāng)作混合權(quán)重,用于將高層特征hu壓縮成上下文向量ci,即
(14)
(15)
(16)
其中,和是多層感知機(jī)網(wǎng)絡(luò),訓(xùn)練后,αi分布比較集中,只關(guān)注小部分h中的幀;上下文向量ci可以看成h的權(quán)重向量。
3. 實驗
為保證所有模型訓(xùn)練環(huán)境的一致性,本文所有實驗均在安裝Linux操作系統(tǒng)的同一臺高性能服務(wù)器上完成,使用PyTorch2.3.0深度學(xué)習(xí)框架和Python3.12(Ubuntu 22.04)進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建、訓(xùn)練與測試,并配置NVIDIA RTX 4090D GPU(24GB顯存)進(jìn)行加速。實驗硬件配置包括15個vCPU(Intel(R) Xeon(R) Platinum 8474C處理器)、80GB內(nèi)存、30GB系統(tǒng)盤和50GB數(shù)據(jù)盤。該環(huán)境采用CUDA12.1確保GPU加速性能,所有實例共享同一地區(qū)的網(wǎng)絡(luò)帶寬。
3.1 數(shù)據(jù)集
實驗采用Zhao等[5]公開的包含30小時的衛(wèi)藏藏語語音數(shù)據(jù)TIBMD@MUC,具體數(shù)據(jù)如表1所示。
本次實驗詞錯誤率為評判標(biāo)準(zhǔn)(WER),公式為
(17)
其中,S是替換錯誤(substitutions)的數(shù)量,即將一個正確的單詞錯誤地識別為另一個單詞的數(shù)量。D是刪除錯誤(deletions)的數(shù)量,即漏掉了一個正確單詞的數(shù)量。I是插入錯誤(insertions)的數(shù)量,即額外插入了一個錯誤單詞的數(shù)量。N是參考文本中的單詞總數(shù)(即正確單詞的總數(shù))。
3.2 實驗結(jié)果及分析
在本實驗中,使用torchaudio工具對語音數(shù)據(jù)進(jìn)行特征提取[6]。具體來說,提取了80維的濾波器組(Fbank)特征,音頻窗長為25毫秒,窗移為10毫秒。為增強數(shù)據(jù)的多樣性和模型的魯棒性,在每幀音頻中添加了0.1的隨機(jī)噪聲系數(shù)。此外,應(yīng)用了均值和方差歸一化(CMVN),這種方法能夠標(biāo)準(zhǔn)化音頻特征,使其具有零均值和單位方差,從而消除不同音頻信號之間的統(tǒng)計差異。增加了二階差分特征,捕捉音頻信號的動態(tài)變化。設(shè)置了每1000步進(jìn)行一次驗證(valid_step),以便實時監(jiān)控模型的性能,防止過擬合。最大訓(xùn)練步數(shù)(max_step)設(shè)定為100萬步。采用了教師強制策略(teacher forcing),起始值和結(jié)束值均為1.0,步長為50萬步,有助于在訓(xùn)練的早期階段通過提供正確的歷史輸出來穩(wěn)定模型訓(xùn)練過程。使用AdamW作為優(yōu)化器,這是一種改進(jìn)的Adam優(yōu)化器,適用于大規(guī)模數(shù)據(jù)訓(xùn)練。學(xué)習(xí)率設(shè)置為0.001,epsilon值為1e-8,以確保優(yōu)化過程的數(shù)值穩(wěn)定性。使用了warmup策略的學(xué)習(xí)率調(diào)度器,預(yù)熱步數(shù)為4000。
在訓(xùn)練階段,使用了CTC損失和注意力損失的聯(lián)合損失函數(shù)[7]。具體來說,CTC損失的權(quán)重設(shè)置為0.5,而注意力損失的權(quán)重也設(shè)置為0.5。這種權(quán)重設(shè)置的目的是平衡模型對齊問題和上下文建模的能力,從而優(yōu)化模型在處理復(fù)雜語音信號時的表現(xiàn)。CTC可以實現(xiàn)對齊輸入序列和輸出標(biāo)簽,但是若建模單元為互相獨立,沒有考慮到標(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)點,可以避免解碼時對齊過于隨機(jī),提高識別率[8]。
在解碼階段,結(jié)合了CTC解碼和語言模型解碼的策略。CTC損失的權(quán)重設(shè)置為1.0,而語言模型的權(quán)重設(shè)置為0.5。在解碼過程中,CTC解碼負(fù)責(zé)提供基礎(chǔ)的語音到文本的轉(zhuǎn)換,而語言模型則通過其語言建模能力對初步的解碼結(jié)果進(jìn)行修正和優(yōu)化。聯(lián)合解碼策略通過綜合利用CTC解碼的精確性和語言模型的上下文理解能力,顯著提升了解碼的準(zhǔn)確率。最終實驗結(jié)果如表2所示。
通過聯(lián)合損失[9]和聯(lián)合解碼策略的應(yīng)用,能夠在訓(xùn)練和解碼的不同階段充分利用各自的優(yōu)勢。聯(lián)合損失在訓(xùn)練過程中平衡了不同損失函數(shù)的影響,提升了模型的泛化能力和對復(fù)雜語音信號的處理能力。聯(lián)合解碼在解碼過程中結(jié)合了CTC和語言模型[10]的優(yōu)勢,顯著提高了最終的解碼準(zhǔn)確率。實驗結(jié)果表明,這種綜合策略在不同數(shù)據(jù)集上的表現(xiàn)均優(yōu)于單一損失或單一解碼策略,驗證了方法的有效性。
CTC、Attention的損失曲線圖如圖3所示,在藏語語音中,兩個損失函數(shù)都在訓(xùn)練初期迅速下降,表明模型在學(xué)習(xí)過程中逐漸提高了性能。Attention在整個訓(xùn)練過程中下降速度較快,且在中期達(dá)到穩(wěn)定狀態(tài),表明注意力機(jī)制在幫助模型捕捉數(shù)據(jù)中的相關(guān)模式方面非常有效。CTC下降速度較慢,并且在中期和后期出現(xiàn)了一些波動。由此看來,Attention損失相對CTC更小,且下降得更快。
結(jié)語
實驗結(jié)果表明,改進(jìn)后的LAS模型在多個衛(wèi)藏方言數(shù)據(jù)集上的表現(xiàn)優(yōu)于現(xiàn)有方法,驗證了方法的有效性。在實驗過程中,通過聯(lián)合損失和聯(lián)合解碼策略,充分利用了連接時序分類(CTC)和語言模型(LM)的優(yōu)勢,提高了語音識別的準(zhǔn)確率。具體來說,CTC解碼提供了基礎(chǔ)的語音到文本轉(zhuǎn)換,而語言模型則對初步的解碼結(jié)果進(jìn)行了優(yōu)化和修正。這種綜合策略不僅增強了模型對復(fù)雜語音信號的處理能力,也提升了其泛化能力。
本文研究為端到端ASR系統(tǒng)在少數(shù)民族語言識別中的應(yīng)用提供了新思路,并為衛(wèi)藏方言的數(shù)字化建設(shè)提供了實驗數(shù)據(jù),以期進(jìn)一步推動ASR技術(shù)在衛(wèi)藏方言識別中的發(fā)展及其實際應(yīng)用。
參考文獻(xiàn):
[1]Chan W,Jaitly N,Le Q,et al.Listen,Attend and Spell:A Neural Network for Large Vocabulary Conversational Speech Recognition[EB/OL].(2016-05-19)[2024-08-02].https://xueshu.baidu.com/usercenter/paper/show?paperid=70115bedb293ef7b4b3393d894c27a41&site=xueshu_se.
[2]楊麗,吳雨茜,王俊麗,等.循環(huán)神經(jīng)網(wǎng)絡(luò)研究綜述[J].計算機(jī)應(yīng)用,2018,38(S2):1-6,26.
[3]王之杰.基于遷移學(xué)習(xí)的跨語言藏語拉薩話語音識別研究[D].北京:中央民族大學(xué),2023.
[4]朱張莉,饒元,吳淵,等.注意力機(jī)制在深度學(xué)習(xí)中的研究進(jìn)展[J].中文信息學(xué)報,2019,33(6):1-11.
[5]ZHAO Y,XU X,YUE J,et al.An open speech resource for Tibetan multi-dialect and multitask recognition[J].International Journal of Computational Science and Engineering,2020,22(2/3):297-304.
[6]高耀榮,邊巴旺堆.基于端到端深度學(xué)習(xí)的藏語語音識別研究[J].現(xiàn)代計算機(jī),2023,29(17):25-30.
[7]劉曉鳳.藏語語音深度特征提取及語音識別研究[D].北京:中央民族大學(xué),2017.
[8]滕思航,王烈,李雅.融合音字特征轉(zhuǎn)換的非自回歸Transformer中文語音識別[J].計算機(jī)科學(xué),2023,50(8):111-117.
[9]王志峰,李軍,張曉平.基于聯(lián)合損失函數(shù)的深度學(xué)習(xí)模型訓(xùn)練方法研究[J].計算機(jī)科學(xué),2020,47(6):45-52.
[10]李明,王偉,劉杰.結(jié)合CTC和語言模型的語音識別系統(tǒng)研究與實現(xiàn)[J].軟件學(xué)報,2021,32(10):2378-2386.
作者簡介:彭楊,本科在讀,3311986574@qq.com,研究方向:語音處理和語音識別。