作者簡(jiǎn)介:趙勇(1974— ),男,陜西高陵人,高級(jí)工程師,學(xué)士;研究方向:衛(wèi)星通信。
摘要:當(dāng)前,很多場(chǎng)合急需實(shí)現(xiàn)從語(yǔ)音翻譯為文本的功能,如視頻字幕制作、實(shí)時(shí)語(yǔ)譯等。文章介紹了一種ESPnet語(yǔ)音識(shí)別框架架構(gòu),并基于ESPnet框架,訓(xùn)練得到最優(yōu)模型,該架構(gòu)模型能將語(yǔ)音識(shí)別過(guò)程擴(kuò)展為網(wǎng)頁(yè)在線識(shí)別,對(duì)目前主流語(yǔ)音識(shí)別框架進(jìn)行對(duì)比試驗(yàn)并總結(jié)其優(yōu)缺點(diǎn)。
關(guān)鍵詞:ESPnet;語(yǔ)音識(shí)別;CTC
中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)志碼:A
0 引言
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,基于深度學(xué)習(xí)的翻譯軟件應(yīng)運(yùn)而生,但這些軟件大多只能實(shí)現(xiàn)文本翻譯功能,無(wú)法直接對(duì)語(yǔ)音進(jìn)行翻譯、轉(zhuǎn)錄為文字信息。事實(shí)上,在很多場(chǎng)合中急需從語(yǔ)音翻譯為文本的功能,比如視頻字幕制作、實(shí)時(shí)語(yǔ)譯等。本文基于ESPnet框架,給出了一套網(wǎng)頁(yè)端的語(yǔ)音翻譯軟件設(shè)計(jì)思路[1],該方案能夠?qū)崟r(shí)對(duì)上傳到網(wǎng)頁(yè)的語(yǔ)音進(jìn)行翻譯識(shí)別。本研究重點(diǎn)介紹了基于ESPnet框架實(shí)現(xiàn)語(yǔ)音識(shí)別翻譯的原理及框架組成,將結(jié)果與其他主流框架進(jìn)行對(duì)比,為后續(xù)其他學(xué)者研究提供參考方案。
1 系統(tǒng)整體流程
系統(tǒng)整體實(shí)現(xiàn)流程如圖1所示,整個(gè)系統(tǒng)流程可分為以下步驟。
1.1 特征提取
在數(shù)據(jù)預(yù)處理步驟時(shí),對(duì)音頻數(shù)據(jù)提取80維MFCC特征、三維基音特征歸一化。
1.2 數(shù)據(jù)準(zhǔn)備
在對(duì)音頻數(shù)據(jù)進(jìn)行特征提取之后,須對(duì)整個(gè)數(shù)據(jù)集音頻中所包含的文字內(nèi)容進(jìn)行整合,提取數(shù)據(jù)集對(duì)應(yīng)的轉(zhuǎn)錄信息,并保存為字典文件dict,后續(xù)對(duì)新語(yǔ)音翻譯時(shí)所輸出的文字內(nèi)容也基于該字典文件,另外需要將每個(gè)訓(xùn)練語(yǔ)音的文字轉(zhuǎn)錄內(nèi)容、發(fā)音者ID、音頻編號(hào)等信息保存為json文件。
1.3 模型訓(xùn)練
首先訓(xùn)練語(yǔ)音模型(RNNLM),其網(wǎng)絡(luò)結(jié)構(gòu)能利用文字的上下文序列關(guān)系,更好地對(duì)語(yǔ)句進(jìn)行建模,其次訓(xùn)練聲學(xué)模型(AM),訓(xùn)練出基于CTC和attention混合的語(yǔ)音編解碼器[2]。
1.4 網(wǎng)頁(yè)端翻譯服務(wù)
網(wǎng)頁(yè)部分在接收到語(yǔ)音后,將會(huì)調(diào)用預(yù)設(shè)好的語(yǔ)音翻譯程序,在語(yǔ)音翻譯程序中對(duì)未知語(yǔ)音進(jìn)行與模型訓(xùn)練時(shí)同樣的預(yù)處理、特征提取過(guò)程,然后調(diào)用已訓(xùn)練好的最佳模型,對(duì)新的音頻特征進(jìn)行解碼,得到最終預(yù)測(cè)結(jié)果,網(wǎng)頁(yè)端在接收到反饋回來(lái)的結(jié)果后,將顯示于網(wǎng)頁(yè)上的翻譯欄作為最終結(jié)果。
通過(guò)上述流程,實(shí)現(xiàn)數(shù)據(jù)處理、特征提取、模型訓(xùn)練、網(wǎng)頁(yè)端語(yǔ)音翻譯的整個(gè)系統(tǒng)性工作。
2 ESPnet網(wǎng)絡(luò)架構(gòu)
ESPnet的架構(gòu)核心包括編碼器、CTC機(jī)制、注意力機(jī)制、解碼器4個(gè)部分[3]。
2.1 編碼器
編碼器網(wǎng)絡(luò)采用雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(BLSTM),它能夠更全面、準(zhǔn)確地兼容語(yǔ)義信息,由兩層LSTM構(gòu)成,一個(gè)用于正向傳遞語(yǔ)義信息,一個(gè)用于反向傳遞語(yǔ)義信息,結(jié)構(gòu)如圖2所示。
2.2 CTC機(jī)制
傳統(tǒng)的語(yǔ)音識(shí)別在訓(xùn)練聲學(xué)模型時(shí),因?yàn)樾枰恳粠臄?shù)據(jù)都有其對(duì)應(yīng)的標(biāo)簽,所以在訓(xùn)練前需要對(duì)語(yǔ)音數(shù)據(jù)進(jìn)行語(yǔ)音對(duì)齊預(yù)處理。語(yǔ)音對(duì)齊過(guò)程是一個(gè)需要反復(fù)迭代才能保證其正確性的過(guò)程,這一過(guò)程十分耗費(fèi)時(shí)間。
CTC的制定遵循貝葉斯決策理論,并加入了空白符號(hào)‘來(lái)規(guī)定字母邊界及替代重復(fù)字符。其表示如公式(1):
對(duì)于c′,當(dāng)l為奇數(shù)時(shí),其一直為擴(kuò)展的空白字符‘,當(dāng)l為偶數(shù)時(shí)其始終為有效字母。引入CTC機(jī)制,可以將語(yǔ)音在時(shí)間上的幀序列和相應(yīng)的轉(zhuǎn)錄文字序列在模型訓(xùn)練過(guò)程中自動(dòng)對(duì)齊。無(wú)須對(duì)每個(gè)字符或音素出現(xiàn)的起止時(shí)間段做標(biāo)注,以實(shí)現(xiàn)直接在時(shí)間序列上進(jìn)行分類,免去了傳統(tǒng)算法較為復(fù)雜的對(duì)齊操作。CTC模塊占用了大部分的訓(xùn)練時(shí)間,本文采用PyTorch中經(jīng)過(guò)優(yōu)化的warp-ctc庫(kù),該庫(kù)中的CTC模塊較Chainer的CTC模塊可節(jié)約5%~10%的訓(xùn)練時(shí)間。
2.3 注意力機(jī)制
與HMM / DNN和CTC方法相比,基于注意力的方法根據(jù)概率鏈規(guī)則直接估算后驗(yàn)概率P(C|X),如公式(2)所示:
其中patt(C|X)是基于注意力的目標(biāo)函數(shù)。
傳統(tǒng)的注意力機(jī)制主要用于改善機(jī)器翻譯時(shí)輸入輸出位置不一致的問(wèn)題,但在語(yǔ)音識(shí)別過(guò)程中,每個(gè)詞發(fā)音時(shí)位置已經(jīng)固定,不存在位置不一致的問(wèn)題。本文使用位置感知注意力機(jī)制,相較傳統(tǒng)注意力機(jī)制來(lái)說(shuō),位置感知注意力機(jī)制無(wú)須考慮語(yǔ)音位置關(guān)系,更容易訓(xùn)練,其結(jié)構(gòu)如圖3所示。
2.4 解碼器
在解碼時(shí),系統(tǒng)將參考從CTC、注意力機(jī)制的得分,采用集束算法來(lái)進(jìn)行聯(lián)合解碼,進(jìn)一步消除不規(guī)則對(duì)齊現(xiàn)象。給定歷史輸出y1:n-1和編碼器輸出h1:T′,使yn為n處輸出標(biāo)簽的假設(shè)。在進(jìn)行集束算法時(shí),將注意力機(jī)制得分patt和CTC機(jī)制得分Pctc做log加和概率。計(jì)算過(guò)程如公式(3):
2.5 實(shí)現(xiàn)方法
在訓(xùn)練過(guò)程中,首先訓(xùn)練出編碼器作為共享編碼器,其輸出結(jié)果可供CTC、注意力機(jī)制使用,在經(jīng)過(guò)CTC和注意力算法后,再將其輸出結(jié)果通過(guò)集束算法進(jìn)行聯(lián)合解碼得到最終結(jié)果。EPSnet整體網(wǎng)絡(luò)實(shí)現(xiàn)架構(gòu)如圖4所示。
對(duì)于CTC、注意力機(jī)制所得結(jié)果分別計(jì)算其相應(yīng)的loss值后,需將兩者loss值合并,其表示如公式(4)。
3 對(duì)比實(shí)驗(yàn)
分別采用CTC和注意力機(jī)制時(shí),獲得了不同的結(jié)果,如圖5所示,可以看出采用注意力方案時(shí),模型在訓(xùn)練集的損失更小,但在測(cè)試集下?lián)p失較大,其魯棒性不如CTC機(jī)制。本次實(shí)驗(yàn)數(shù)據(jù)集較小,對(duì)于更大的數(shù)據(jù)集,可以嘗試注意力機(jī)制。
本文將ESPnet框架下的模型訓(xùn)練結(jié)果與其他框架、網(wǎng)絡(luò)架構(gòu)所得結(jié)果進(jìn)行同條件下的語(yǔ)音識(shí)別正確率對(duì)比。這里使用到來(lái)自百度的Deepspeech深度學(xué)習(xí)語(yǔ)音識(shí)別框架,Kaldi語(yǔ)音識(shí)別框架。測(cè)試數(shù)據(jù)來(lái)自aishell數(shù)據(jù)集,結(jié)果如表1所示。從表1中看,采用ESPnet框架所得結(jié)果明顯優(yōu)于Kaldi和Deepspeech模型結(jié)果,但模型較大,須經(jīng)過(guò)壓縮、剪枝、稀疏化算法量化后才能具備可移植性。Kaldi模型雖然準(zhǔn)確率稍低,模型稍大,但該框架中腳本大部分代碼采用C++編寫,效率更高,產(chǎn)出模型更小,更易于移植擴(kuò)展。Deepspeech框架結(jié)構(gòu)模型更大,受眾面小。雖然基于百度的大數(shù)據(jù)優(yōu)勢(shì),在超大型數(shù)據(jù)集上可能才會(huì)有更優(yōu)的表現(xiàn)。
4 結(jié)語(yǔ)
從上述實(shí)驗(yàn)結(jié)果來(lái)看,ESPnet的準(zhǔn)確性最高,Kaldi居中,但Kaldi的模型最小,易于移植,Deepspeech框架準(zhǔn)確率稍低,模型最大。Kaldi的使用者雖眾多,但Kaldi的自行調(diào)試較為復(fù)雜,其底層語(yǔ)音使用C++語(yǔ)音開發(fā),代碼量繁雜,不易調(diào)試;Deepspeech框架的使用者較少,代碼調(diào)試過(guò)程復(fù)雜,其開發(fā)社區(qū)中可供參考的方案較少,使用起來(lái)專業(yè)門檻要求高。
ESPnet框架在數(shù)據(jù)處理時(shí)采用Kaldi工具庫(kù),依托于Kaldi活躍的開發(fā)社區(qū),在數(shù)據(jù)處理時(shí)遇到問(wèn)題可以十分快速找到解決方案。深度神經(jīng)網(wǎng)絡(luò)部分采用Pytorch框架進(jìn)行編寫,Pytorch是目前深度學(xué)習(xí)工作者都了解的深度學(xué)習(xí)框架。這些工作者根據(jù)自身任務(wù)不同對(duì)ESPnet的網(wǎng)絡(luò)架構(gòu)和模型參數(shù)進(jìn)行修改,以達(dá)到最優(yōu)結(jié)果。
參考文獻(xiàn)
[1]SHINJI A, NANXIN C, ADITHYA R, et al. ESPnet: end-to-end speech processing toolkit[J]. Proc. Interspeech, 2018(18):2207-2211.
[2]GRAVES A, JAITLY N. Towards end-to-end speech recognition with recurrent neural networks[C]. Beijing: International Conference on Machine Learning(ICML), 2014.
[3]DUGGAN J, BROWNE J. Espnet: expert-system-based simulator of petri nets[J].IEE Proceedings D-Control Theory and Applications, 1988(4):239-247.
(編輯 傅金睿)
Abstract: At present, many occasions urgently need to translate from speech to text function, such as video subtitle production, real-time translation, etc.This paper introduces a speech translation based on ESPnet framework. Its optimal training model extends voice recognition to web page online recognition. It compares the current mainstream speech recognition framework and summarizes its advantages and disadvantages.
Key words: ESPnet; speech recognition; CTC