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