BLOG + NEWS

HOME BLOG
自動語音辨識 ASR 的前世今生
BLOG・Algorithm 演算法
SHARE
自動語音辨識 ASR 的前世今生
自動語音辨識 ASR 的前世今生
28
SEP
2020
3495
Yvette Bo-Hao Su


言辭是行動的影子。 ——德謨克利特
 

 

你是否習慣在找尋手機的時候喊:嘿,Siri? 你打字不夠快嗎?用 Google 輸入法可以讓你用説的! 聽不懂外語的時候,是不是很希望能用手機即時翻譯呢?

 

以上這些功能和工具都是用語言來控制機器以完成目標事項,它們背後的技術就是自動語音辨識(Automatic Speech Recognition, ASR)。

 

ASR是以電腦自動將人類的語言内容轉換爲相應文字的一種技術。它的應用很廣泛,像是室内裝置控制、Siri、語音輸入法等等,這些都使得我們的生活更加便捷。尤其是在智慧型 3C 產品大量普及的現代,人們用聲音進行人機互動的需求看可以說是越來越高了。

 

本文參考2019年的一篇綜述論文[1],將簡單地介紹ASR的歷史,並著重描述最新的end-to-end技術。

 

目錄

  • ASR簡史
    • Pre-NN的ASR
    • 基於HMM的ASR
    • 端到端ASR
  • ASR的未來

 

ASR簡史

 


圖一,ASR的流變

 

如上圖所示,ASR的流變大致可以劃分3大部分,分別是應用神經網絡之前(下稱pre-NN)、應用神經網絡的HMM時代和最新的end-to-end時代。

 

Pre-NN的ASR

 

ASR的應用最早可追溯到 100年 前,在 1922 年,有一款名爲 Radio Rex 的玩具狗,它聽到「Rex」的時候會從底座彈出來。Radio Rex 用聲碼器來實現語音辨識,被認爲是 ASR 最初的應用。

 

Radio Rex
圖片引用自 A New Yorker State of Mind

 

1952年,AT&T 貝爾實驗室跟蹤語音中的共振峰,開發了 Audrey 語音辨識系統,該系統能夠辨識用英文說的0~9的 10 個英文數字,正確率達 98%。

 

1966年,日本電信電話公社的 S. Saito 和 F. Itakura 描述了一種自動音素識別的方法,稱爲線性預測編碼(Linear Predictive Coding,LPC)[2],這種方法第一次使用了針對語音編碼的最大似然估計實現。1968 年 Vintsyuk 等人則提出了動態時間規整(Dynamic Time Warp,DTW)[3],它使用時間序列中所有相似點之間的距離的和歸整路徑距離(Warp Path Distance),來衡量兩個時間序列之間的相似性。

 

這兩個技術的出現大大加速了ASR的發展進程。但這階段的ASR只能辨識特定説話者的聲音,且只能辨識一個單字或單一音節[1:1],能理解的詞匯量也較少。

 

基於HMM的ASR

 

1966年,Leonard E. Baum[4]等人基於馬可夫鏈(Markov chain)提出了隱藏式馬可夫模型(Hidden Markov Model,HMM)[5],用來從語音序列中提取音素(phonemes)。

 

一段語音中,將能被觀察到的語音序列 X={x_1, ..., x_T} 分割以後,表示為 T 個特徵向量,對應由N個標簽(通常是字母、單字)組成的序列L={l_1, ..., l_N}。HMM在給定語音序列X的情況下求最有可能對應的標籤序列 Lhat{L}=argmax(p(L|X))

 

如圖一所示,一個基於HMM的ASR模型大多按如下步驟進行:

 

  1. 用聲學模型(acoustic model)提取語音輸入的特徵,常見的特徵如梅爾頻率倒譜系數 (Mel-Frequency Cepstral Coefficients,MFCCs)[6]
  2. 將特徵交由一個解碼器處理,解碼器可分爲以下兩個模型:
    • 發音模型(pronunciation model),將音素序列和詞庫對比,產生可能對應的單詞。該詞庫一般由人類語言學家建立。
    • 語言模型(language model)利用概率分佈來辨識由單詞所組成的合理的文字序列(sequence)。
  3. 輸出文本内容

 

ASR從此由原先的模板匹配轉向基於統計模型的辨識,隨後便開始有了許多基於 HMM 的 ASR 模型的研究,研究人員們針對 HMM-based 模型的 3 各模組做了各種優化。

 

1988年,李開復等人基於 HMM 實現了第一個大詞彙量語音辨識 系統Sphinx[7],該系統使用高斯混合模型(Gaussian Mixture Model,GMM)對 HMM 的狀態觀察值進行建模,從而可以辨識長的語音序列。2011,Yu Dong 等人結合深度神經網絡(Deep Neural Network,DNN)提出了HMM-DNN模型[8],它相比於HMM-GMM有更好的表現。其中,GMM和DNN是兩種用來計算HMM隱藏狀態的輸出概率的方法。

 

然而,基於HMM的ASR模型的訓練過程通常十分複雜,三個模組都用不同的資料集、訓練方式來單獨訓練,無法用同一個指標來最佳化;此外,三個模組相互獨立訓練是出於條件獨立性假設,而沒有考慮到它們之間、音素與音素之間、單字與單字之間的關係,比較不符合大詞彙連續語音辨識(Large Vocabulary Continuous Speech Recognition,LVCSR)。

 

端到端ASR(end-to-end)

 

由於 HMM-based 的模型的種種弊端,再加上深度學習技術的蓬勃發展,更多人開始關注並研究端到端模型(end-to-end)。End-to-end ASR 將特徵也交給模型去學習,語音訊號直接經由一個DNN模型輸出成文本,因此稱爲端到端(end-to-end)。

 

End-to-end ASR的流程大致如圖一所示,實際上各部分可能不會有明顯區分:

 

  1. encoder 提取語音序列的特徵
  2. aligner 將特徵序列與目標文本序列對齊
  3. decoder 最終解碼輸出文本

 

相較於基於HMM的模型,End-to-end ASR有以下特點:

 

  • 將多個模組用一個網絡聯合訓練,使用同一個評價指標更容易找到全局最優解
  • 直接從聲音輸出成文字,不需要額外的文本處理模型
  • 不要求語音序列與標簽序列一一對齊

 

在 HMM-based 的 ASR 模型中,語音資料需要先分段(同上文的幀),並且我們需要知道每一幀對應的音素作爲標簽才能訓練,而通常文本序列要比語音序列短,所以還會有同一個音素占用很多幀的情況,所以還需要對齊,整個過程是非常耗時耗力的。

 

End-to-end ASR 主要改善這個對齊的問題,根據對齊方式的不同,end-to-end 模型可分爲以下三類:

 

基于 CTC 的 end-to-end 模型

 

2006年,Alex Graves 等人提出了連接時序分類(Connectionist Temporal Classification, CTC)[9][10],在2014年提出了 RNN-CTC[11]。CTC 的流程如下:

 

  1. encoder將語音序列 X={x_1, ..., x_T}映射到特徵序列F={f_1, ..., f_T}
  2. 用softmax將特徵序列 F={f_1, ..., f_T}轉化為一個概率分佈序列Y={y_1, ..., y_T}
  3. 計算在給定語音序列的情況下,任意文本序列 pi 的條件概率為p(pi|X)=Pi^{T}_{t=1}{y_t^{pi t}}

 

CTC 中運用 path aggregation 的概念,包含以下兩個操作:

 

  • 對於沒有訊息的特徵幀,引入了 blank 標籤來表示
  • 對於相鄰的相同的音素,應用了臨近去重的方法去重

 

例如,我們有一段說「你好」的語音,標籤即 {nihao},那麽對一個長度為 N 的文本序列有音素個數^{N} 種可能的輸出,經過鄰近去重變成 {nihao} 的就是有效的 path。例如,假設 N=6,那{-nihao},{niihao},{nihaao},{ni-hao} 都是有效的 path,都可以通過上述操作得到 {nihao}。

 

CTC 本質上是一種損失函數,它用來衡量輸入資料經過神經網絡之後,和真實的輸出相差有多少,所以基於 CTC 的模型可以讓網絡在任意點進行標籤預測,而只要求標籤的總體順序正確,不需要預先分段對齊,因此節省了巨大的訓練成本。

 

但 CTC 不能學習到標籤中各序列之間的相互依賴關係,因爲它假設各序列是獨立的;此外,受限於它的對齊方式,CTC的輸出一定不會會比輸入長。

 

基于 RNN-Transducer 的 end-to-end 模型

 

2012年,Alex Graves 提出的 RNN-Transducer[12] 用不一樣的方法解決基於 HMM 的 ASR 中的强制對齊問題。它包含 3 個子網絡,各自有自己的函數:

 

  • Transcription network (F(x)) 對應為 encoder,起到聲學模型的作用,同 CTC 的 encoder
  • Prediction network(P(y, g)) 對應為 decoder,起到語言模型的作用,它將隱藏狀態表示為 h_u,輸出標籤為g_uuin [1,N]N 為標籤長度,計算過程表示爲
h_u=H(W_{ih}l_{u-1}+W_{hh}h_{u-1})+b_h

g_u=W_{h0}h_u+b_0
 
 
  • joint network (J(f,g)) 對應 aligner,將輸入輸出的序列對齊,位置 u 上的標籤分佈表示為
p(kin V'|t,u)=frac{e(k,t,u)}{sum_{k'in V'}e(k',t,u)}

其中
 
e(k,t,u)=exp(f_t^k+g_u^k)

 

和 CTC 類似,RNN-Transducer 也使用了 blank 標籤對應沒有訊息的特徵幀;都計算所有可能路徑的概率,來聚合得到文本序列。RNN-Transducer 比較難訓練,而且可能會出現奇怪的結果。不過它沒有上述 CTC 的問題:它可以對輸出序列的依賴關係建模,也支持任意長度的輸出。

 

基于 Attention 的 end-to-end 模型

 

2014 年,注意力機制(Attention Mechanism)被提出用來做機器翻譯,注意力機制(Attention Mechanism),是指使用一個注意力向量來表示所預測的詞與其他詞的相關程度,對 sequence 的特徵進行加權描述,即一個提取重點的概念。因爲基於 Attention 的翻譯模型效果不錯,所以 2016 年有了基於 Attention 的 end-to-end 模型[13]。它本質上是一個翻譯模型,也不需要資料對齊,對長文本有不錯的效果。

 

Dong Wang 等人在論文[1:2]中也對上述三個方法從延遲(delay)、計算複雜度(computation complexity)、語言模型(language model ability)、訓練複雜度(training difficulty)、辨識準確率(recognition accuracy)五個方面進行比較,如下圖。

 

三種方法效果比較(截圖自論文[1])
三種方法效果比較(截圖自論文)

 

End-to-end ASR 還使得串流(streaming)辨識成爲可能,串流辨識是指即時地根據語音輸出文本的技術。只有基於 CTC 和 RNN-Transducer 的 end-to-end 模型可以應用於串流(streaming),因爲它們不依賴後續的解碼結果,而基于 Attention 的 end-to-end 模型一般不行,因爲它要求全部語料都編碼完後,才能進行辨識、解碼。這一點在它們的延遲程度中也可以看出來(如上圖)。

 

本文最開始提到的Apple公司的Siri就是用end-to-end的ASR模型,再結合圖神經網絡(GNN)[15]所實現的語音助手,而Google的Gboard則使用了end-to-end的架構結合RNN-T傳感器[16],有效減少了延遲。此外,目前市面上很暢銷的旅行口譯機基本上是基于 Attention 機制實現的ASR模型。

 

ASR 的未來

 

End-to-end ASR 的效果已經超越了 HMM-GMM模 型,但對比 HMM-DNN 模型還只是堪堪能比肩而已,有時候甚至會有更差的效果,但它的一個很大的優勢是可以串流辨識。online streaming 要求延遲小,相應地就要犧牲一定的辨識度,因此,如何在保證高辨識準確度的情況下有效降低延遲,這是目前 ASR 研究的一大方向。

 

此外,基於 HMM 的 ASR 模型優勢在於它有額外的語言模型來提供充沛的語言學知識,但 End-to-end ASR 的所有語言知識都是從訓練資料所得,所以要用 End-to-end ASR 做多領域語音的辨識就不適合。因此,另一個可能的研究方向是,如何能在保有 end-to-end 的結構優勢的情況下,提升 ASR 模型的語言知識。

SHARE
Article Tags
Privacy 隱私 Federated Learning 聯合式學習 ASR 語音辨識 Emotion Recognition 情緒辨識 Psychology 心理學 Healthcare 醫療 Algorithm 演算法 Edge Computing 終端運算 Human Behavior 人類行為 Multimedia 多媒體 NLP 自然語言處理 Signal Processing 訊號處理