編者按:過(guò)去十年,,得益于人工智能與機(jī)器學(xué)習(xí)的突破、算法與硬/軟件能力的進(jìn)步,,以及擁有既多樣又大量的語(yǔ)音數(shù)據(jù)庫(kù),,用以訓(xùn)練多參數(shù)的、大規(guī)模的語(yǔ)音識(shí)別與合成模型,,使得語(yǔ)音處理技術(shù)獲得飛躍性進(jìn)展,。 隨著端到端神經(jīng)網(wǎng)絡(luò)在機(jī)器翻譯、語(yǔ)音生成等方面的進(jìn)展,,端到端的語(yǔ)音識(shí)別也達(dá)到了和傳統(tǒng)方法可比的性能,。不同于傳統(tǒng)方法將語(yǔ)音識(shí)別任務(wù)分解為多個(gè)子任務(wù)(詞匯模型,聲學(xué)模型和語(yǔ)言模型),,端到端的語(yǔ)音識(shí)別模型基于梅爾語(yǔ)譜作為輸入,,能夠直接產(chǎn)生對(duì)應(yīng)的自然語(yǔ)言文本,,大大簡(jiǎn)化了模型的訓(xùn)練過(guò)程,從而越來(lái)越受到學(xué)術(shù)界和產(chǎn)業(yè)界的關(guān)注,。 本文將通過(guò)六篇論文,,從建模方法、響應(yīng)時(shí)間優(yōu)化,、數(shù)據(jù)增強(qiáng)等不同方面講解端到端語(yǔ)音模型的發(fā)展,,并探討不同端到端語(yǔ)音識(shí)別模型的優(yōu)缺點(diǎn)。 在講述語(yǔ)音識(shí)別建模之前,,首先明確端到端語(yǔ)音識(shí)別的輸入和輸出,。 輸入:目前端到端語(yǔ)音識(shí)別常用的輸入特征為 fbank。fbank 特征的處理過(guò)程為對(duì)一段語(yǔ)音信號(hào)進(jìn)行預(yù)加重,、分幀,、加窗、短時(shí)傅里葉變換(STFT),、mel 濾波,、去均值等。一個(gè) fbank 向量對(duì)應(yīng)往往對(duì)應(yīng)10ms的語(yǔ)音,,而一段十秒的語(yǔ)音,,即可得到大約1000個(gè) fbank 的向量描述該語(yǔ)音。除了 fbank,,MFCC 以及 raw waveform 在一些論文中也被當(dāng)做輸入特征,,但主流的方法仍然采用 fbank。 輸出:端到端的輸出可以是字母,、子詞(subword),、詞等等。目前以子詞當(dāng)做輸出比較流行,,和 NLP 類似,,一般用 sentence piece 等工具將文本進(jìn)行切分。 Seq2Seq 參考論文:Listen, Attend and Spell: A Neural Network for Large Vocabulary Conversational Speech Recognition. ICASSP 2016(William Chan, Navdeep Jaitly, Quoc V. Le, Oriol Vinyals) 給定序列 X,,輸出 Y,,最直白的一種辦法就是延伸在機(jī)器翻譯中所使用的 Seq2Seq 模型。Seq2Seq 模型由兩部分組成:編碼器和帶有注意力機(jī)制的解碼器,。在解碼每個(gè)詞語(yǔ)的時(shí)候,,注意力機(jī)制會(huì)動(dòng)態(tài)計(jì)算每個(gè)輸入隱狀態(tài)的權(quán)重,并通過(guò)加權(quán)線性組合得到當(dāng)前的注意力向量,。在此處的語(yǔ)音識(shí)別任務(wù)中,,Seq2Seq 模型與機(jī)器翻譯中的 Seq2Seq 模型異曲同工,可以使用不同的模型作為編碼器和解碼器,例如 RNN,、Transformer 模型等,。 圖1:Listen, attend and spell 模型結(jié)構(gòu)圖 為了訓(xùn)練更好的 Seq2Seq 語(yǔ)音識(shí)別模型,一些優(yōu)化策略也被提出: 引入增強(qiáng)學(xué)習(xí)策略,,將最小詞錯(cuò)率(minimum word error rate)當(dāng)作模型訓(xùn)練的獎(jiǎng)勵(lì)函數(shù),,更新模型參數(shù)。 由于語(yǔ)音的輸入和輸出有著單調(diào)性,,并不存在機(jī)器翻譯的調(diào)序問(wèn)題,,所以使用單調(diào)注意力策略,在一些實(shí)驗(yàn)中可以提升語(yǔ)音識(shí)別的性能,。 引入覆蓋(coverage)機(jī)制,,緩解語(yǔ)音識(shí)別的漏詞問(wèn)題。 與 CTC 聯(lián)合訓(xùn)練以及聯(lián)合解碼,,可大幅提升 Seq2Seq 模型性能,。
CTC 參考論文:Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks. ICML 2006(AlexGraves, SantiagoFernández,FaustinoGomez) 除了簡(jiǎn)單易懂的 Seq2Seq 模型之外,還需要關(guān)注另一個(gè)經(jīng)典之作 CTC 模型,。CTC 模型是端到端語(yǔ)音識(shí)別的開(kāi)山始祖,,提出時(shí)間遠(yuǎn)早于 Seq2Seq 模型,其建模思想也與 Seq2Seq 模型相去甚遠(yuǎn),。CTC 模型可以看作自動(dòng)學(xué)習(xí)輸入 X 與 Y 的對(duì)齊,由于 Y 的長(zhǎng)度遠(yuǎn)小于 X,,所以 CTC 引入空和 y_i 的重復(fù)來(lái)讓 X 和 \{y}_hat 一一對(duì)應(yīng),。 圖2:CTC 輸入音頻與文本對(duì)應(yīng)關(guān)系 例如,在圖2中,,CTC 引入空和重復(fù)使得句子 THE CAT (Y)和輸入音頻(X)做對(duì)齊,。這種對(duì)齊方式有三個(gè)特征: (1)X 與 Y 映射是單調(diào)的,即如果 X 向前移動(dòng)一個(gè)時(shí)間片,,Y 保持不動(dòng)或者也向前移動(dòng)一個(gè)時(shí)間片,。 (2)X 與 Y 的對(duì)齊是多對(duì)一的。一個(gè) X 可以有很多種方式和 Y 進(jìn)行對(duì)應(yīng),。 (3)X 的長(zhǎng)度大于 Y 的長(zhǎng)度,。 為了求得該映射,需要最大化后驗(yàn)概率 P(Y|X) 這里 A 是一條合法的 x 和 y 的對(duì)應(yīng)路徑,,a_t 代表 t 時(shí)刻 X 所對(duì)應(yīng)的輸出,。如有興趣可參見(jiàn) https:///2017/ctc/ 了解更多的推導(dǎo)細(xì)節(jié)。 在訓(xùn)練中 CTC 與 Seq2Seq 模型相比,,CTC 模型有如下不同: CTC 在解碼時(shí),,對(duì)于每一幀都可以生成一個(gè)對(duì)應(yīng)的子詞,因此 CTC 比 Seq2Seq 可以更好地支持流式語(yǔ)音識(shí)別。 CTC 的建模并沒(méi)有直接建模 Y 中不同詞語(yǔ)之間的依賴關(guān)系,,所以生成的文本從語(yǔ)言模型的角度來(lái)看質(zhì)量較差,。為了解決這個(gè)問(wèn)題,CTC 往往要和外部的語(yǔ)言模型一起進(jìn)行解碼才可以生成更好的結(jié)果,。
Transducer 參考論文:Sequence Transduction with Recurrent Neural Networks. arXiv 2012(Alex Graves) 由于 CTC 模型無(wú)法顯示建模 Y 中詞與詞的依賴關(guān)系,,Transducer 模型在2012年被提出。Transducer 可以被看作是 CTC 模型的延伸,,由文本預(yù)測(cè)網(wǎng)絡(luò)(text prediction network)來(lái)建模語(yǔ)言模型,,彌補(bǔ)了 CTC 的缺點(diǎn)。之后語(yǔ)言模型的隱狀態(tài)和語(yǔ)音編碼器的隱狀態(tài)傳遞給聯(lián)合網(wǎng)絡(luò)(joint network),,以預(yù)測(cè)當(dāng)前時(shí)刻的輸出,。 圖3:Transducer 結(jié)構(gòu)圖 值得注意的是,Transducer 的狀態(tài)轉(zhuǎn)移矩陣和 CTC 稍有不同,,在 CTC 中一個(gè)詞連續(xù)出現(xiàn)兩次會(huì)在后處理時(shí)被合并,,而 Transducer 不支持這種表示,其主要原因?yàn)?Transducer 對(duì)語(yǔ)言模型進(jìn)行了建模,,每輸出一個(gè)詞它的 prediction network 的隱狀態(tài)就會(huì)變化一次,。并且 Transducer 支持同一幀對(duì)應(yīng)多個(gè)輸出單元,而 CTC 不支持,。因?yàn)?CTC 和 Transducer 都是逐幀解碼,,語(yǔ)音結(jié)束解碼過(guò)程結(jié)束,他們也被稱作是幀同步(frame synchronized) 模型,。與之相反的是 Seq2Seq 模型是逐詞解碼,,直到出現(xiàn) EOS 才結(jié)束,所以被稱作詞同步(word synchronized)模型,。 圖4:Transducer 轉(zhuǎn)移矩陣 有了大致的模型結(jié)構(gòu)之后,,科研人員們又從不同的方面對(duì)端到端模型進(jìn)行了優(yōu)化。 數(shù)據(jù)增強(qiáng) 參考論文:SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition. INTERSPEECH 2019(Daniel S. Park, William Chan, Yu Zhang, Chung-Cheng Chiu, Barret Zoph, Ekin D. Cubuk, Quoc V. Le) 由于端到端模型需要大規(guī)模數(shù)據(jù)訓(xùn)練,,而很多場(chǎng)景并沒(méi)有那么多的數(shù)據(jù),,因此數(shù)據(jù)增強(qiáng)算法在端到端語(yǔ)音識(shí)別系統(tǒng)里最近被多次研究。其中最著名的數(shù)據(jù)增強(qiáng)算法為 Spec Augmentation,。該方法簡(jiǎn)單實(shí)用,,可以被看作是一種用于頻譜的增強(qiáng)方法,來(lái)幫助神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)有用的特征,。為了使模型更加魯棒,,研究者采用了3種方法,對(duì)數(shù)據(jù)進(jìn)行增強(qiáng): Time-warp: 可通俗理解為在梅尓譜中沿著時(shí)間軸把任意一幀向左或向右扭曲隨機(jī)距離,。 Frequency mask:添加在頻率 f 的連續(xù)梅爾譜上,,將 [f0, f0+f]mask,。其中 f是一個(gè)統(tǒng)一的0到 F 的參數(shù),f0 是選自 [0,v-f] 中的,。v 則代表了梅爾頻譜圖的通道數(shù)量,。 Time mask:添加在 t 的連續(xù)時(shí)間上,將譜圖 [t0,t0+t] 全部掩蓋掉,。t 是一個(gè)0到 T 的均勻分布,。
這其中 Time mask 和 Frequency mask 對(duì)模型魯棒性的貢獻(xiàn)最大。 延遲優(yōu)化 參考論文:Towards Fast and Accurate Streaming End-to-End ASR. ICCASP 2019(Bo Li, Shuo-yiin Chang, Tara N. Sainath, Ruoming Pang, Yanzhang He, Trevor Strohman, Yonghui Wu) 端到端模型由于模型小,,不需要額外的語(yǔ)言模型,,所以很容易部署到移動(dòng)設(shè)備之上。而在移動(dòng)設(shè)備上的語(yǔ)音場(chǎng)景往往需要一個(gè)延時(shí)非常小的語(yǔ)音識(shí)別模型,。例如,,當(dāng)用戶說(shuō)完“請(qǐng)為我查找歌曲晴天”時(shí),系統(tǒng)應(yīng)該盡可能快的進(jìn)行響應(yīng),,壓縮延遲,。迄今為止,有一系列工作對(duì)壓縮 Transducer 的延遲展開(kāi)了研究,。其中比較著名的是 Google 所提出的 Endpointer 和其對(duì)應(yīng)的關(guān)于延遲的懲罰,。Endpointer 可以當(dāng)做 Transducer 模型的句子結(jié)束符 EOS,研究員們希望這個(gè) EOS 可以盡早出現(xiàn),,然而過(guò)早的出現(xiàn)可能導(dǎo)致刪除錯(cuò)誤,,所以 Google 的研究員提出了 Early and Late Penalties 去建模 EOS 出現(xiàn)位置。 在公式中,,首先需要知道 EOS 所出現(xiàn)的真實(shí)時(shí)刻,,之后如果 EOS 早出現(xiàn)或者晚出現(xiàn)(允許晚 t_buffer)都要進(jìn)行相應(yīng)的懲罰。然而,,此種方法往往會(huì)帶來(lái)對(duì)精度的損失,在語(yǔ)音識(shí)別任務(wù)中,,往往更好的延遲會(huì)以犧牲精度為代價(jià),。 參考論文:On the Comparison of Popular End-to-End Models for Large Scale Speech Recognition. InterSpeech 2020(Jinyu Li, Yu Wu, Yashesh Gaur, Chengyi Wang, Rui Zhao, Shujie Liu) 在今年的 InterSpeech 的論文中,微軟亞洲研究院和微軟 Azure Speech 團(tuán)隊(duì)的研究員們對(duì)比了主流的 E2E 模型,,其中包括 Transformer 和 RNN 的結(jié)構(gòu)對(duì)比,,以及在流式場(chǎng)景下 Transducer 和流式 S2S 的框架對(duì)比,所有試驗(yàn)均在超大規(guī)模數(shù)據(jù)集上進(jìn)行,。實(shí)驗(yàn)的結(jié)論為,,Transformer 模型比 RNN 模型效果稍好,而 Transducer 模型在流式場(chǎng)景下要好于流式的 S2S 模型,。在此之后,,研究員們?cè)谡撐?span>“Developing Real-time Streaming Transformer Transducer for Speech Recognition on Large-scale Dataset”中又探討了 RNN 和 Transformer 模型在 Transducer 的優(yōu)劣比較,,實(shí)驗(yàn)結(jié)果表明,Transformer 在精度上要好于 RNN,,在允許幾百毫秒的延遲時(shí)從精度,、速度上都要好于 RNN。然而 Transformer 模型在0延遲時(shí)計(jì)算代價(jià)要遠(yuǎn)遠(yuǎn)大于 LSTM,,需要良好的計(jì)算設(shè)備才能支持實(shí)時(shí)運(yùn)行,。 你也許還想看:
|