來源:巨靈鳥軟件 作者:進銷存軟件 發布:2017/5/11 瀏覽次數:5492
端到端時代
語音識別的端到端方法主要是代價函數發生了變化,但神經網絡的模型結構并沒有太大變化。總體來說,端到端技術解決了輸入序列的長度遠大于輸出序列長度的問題。端到端技術主要分成兩類:一類是 CTC 方法,另一類是 Sequence-to-Sequence 方法。傳統語音識別 DNN-HMM 架構里的聲學模型,每一幀輸入都對應一個標簽類別,標簽需要反復的迭代來確保對齊更準確。
采用 CTC 作為損失函數的聲學模型序列,不需要預先對數據對齊,只需要一個輸入序列和一個輸出序列就可以進行訓練。CTC 關心的是預測輸出的序列是否和真實的序列相近,而不關心預測輸出序列中每個結果在時間點上是否和輸入的序列正好對齊。CTC 建模單元是音素或者字,因此它引入了 Blank。對于一段語音,CTC 最后輸出的是尖峰的序列,尖峰的位置對應建模單元的 Label,其他位置都是 Blank。
Sequence-to-Sequence 方法原來主要應用于機器翻譯領域。2017 年,Google 將其應用于語音識別領域,取得了非常好的效果,將詞錯誤率降低至5.6%。如下圖所示,Google 提出新系統的框架由三個部分組成:Encoder 編碼器組件,它和標準的聲學模型相似,輸入的是語音信號的時頻特征;經過一系列神經網絡,映射成高級特征 henc,然后傳遞給 Attention 組件,其使用 henc 特征學習輸入 x 和預測子單元之間的對齊方式,子單元可以是一個音素或一個字。最后,attention 模塊的輸出傳遞給 Decoder,生成一系列假設詞的概率分布,類似于傳統的語言模型。
端到端技術的突破,不再需要 HMM 來描述音素內部狀態的變化,而是將語音識別的所有模塊統一成神經網絡模型,使語音識別朝著更簡單、更高效、更準確的方向發展。
語音識別的技術現狀
目前,主流語音識別框架還是由 3 個部分組成:聲學模型、語言模型和解碼器,有些框架也包括前端處理和后處理。隨著各種深度神經網絡以及端到端技術的興起,聲學模型是近幾年非常熱門的方向,業界都紛紛發布自己新的聲學模型結構,刷新各個數據庫的識別記錄。由于中文語音識別的復雜性,國內在聲學模型的研究進展相對更快一些,主流方向是更深更復雜的神經網絡技術融合端到端技術。
2018年,科大訊飛提出深度全序列卷積神經網絡(DFCNN),DFCNN 使用大量的卷積直接對整句語音信號進行建模,主要借鑒了圖像識別的網絡配置,每個卷積層使用小卷積核,并在多個卷積層之后再加上池化層,通過累積非常多卷積池化層對,從而可以看到更多的歷史信息。
2018年,阿里提出 LFR-DFSMN(Lower Frame Rate-Deep Feedforward Sequential Memory Networks)。該模型將低幀率算法和 DFSMN 算法進行融合,語音識別錯誤率相比上一代技術降低 20%,解碼速度提升 3 倍。FSMN 通過在 FNN 的隱層添加一些可學習的記憶模塊,從而可以有效的對語音的長時相關性進行建模。而 DFSMN 是通過跳轉避免深層網絡的梯度消失問題,可以訓練出更深層的網絡結構。
2019 年,百度提出了流式多級的截斷注意力模型 SMLTA,該模型是在 LSTM 和 CTC 的基礎上引入了注意力機制來獲取更大范圍和更有層次的上下文信息。其中流式表示可以直接對語音進行一個小片段一個小片段的增量解碼;多級表示堆疊多層注意力模型;截斷則表示利用 CTC 模型的尖峰信息,把語音切割成一個一個小片段,注意力模型和解碼可以在這些小片段上展開。在線語音識別率上,該模型比百度上一代 Deep Peak2 模型提升相對 15% 的性能。
開源語音識別 Kaldi 是業界語音識別框架的基石。Kaldi 的作者 Daniel Povey 一直推崇的是 Chain 模型。該模型是一種類似于 CTC 的技術,建模單元相比于傳統的狀態要更粗顆粒一些,只有兩個狀態,一個狀態是 CD Phone,另一個是 CD Phone 的空白,訓練方法采用的是 Lattice-Free MMI 訓練。該模型結構可以采用低幀率的方式進行解碼,解碼幀率為傳統神經網絡聲學模型的三分之一,而準確率相比于傳統模型有非常顯著的提升。
遠場語音識別技術主要解決真實場景下舒適距離內人機任務對話和服務的問題,是 2015 年以后開始興起的技術。由于遠場語音識別解決了復雜環境下的識別問題,在智能家居、智能汽車、智能會議、智能安防等實際場景中獲得了廣泛應用。目前國內遠場語音識別的技術框架以前端信號處理和后端語音識別為主,前端利用麥克風陣列做去混響、波束形成等信號處理,以讓語音更清晰,然后送入后端的語音識別引擎進行識別。
語音識別另外兩個技術部分:語言模型和解碼器,目前來看并沒有太大的技術變化。語言模型主流還是基于傳統的 N-Gram 方法,雖然目前也有神經網絡的語言模型的研究,但在實用中主要還是更多用于后處理糾錯。解碼器的核心指標是速度,業界大部分都是按照靜態解碼的方式進行,即將聲學模型和語言模型構造成 WFST 網絡,該網絡包含了所有可能路徑,解碼就是在該空間進行搜索的過程。由于該理論相對成熟,更多的是工程優化的問題,所以不論是學術還是產業目前關注的較少。
語音識別的技術趨勢
語音識別主要趨于遠場化和融合化的方向發展,但在遠場可靠性還有很多難點沒有突破,比如多輪交互、多人噪雜等場景還有待突破,還有需求較為迫切的人聲分離等技術。新的技術應該徹底解決這些問題,讓機器聽覺遠超人類的感知能力。這不能僅僅只是算法的進步,需要整個產業鏈的共同技術升級,包括更為先進的傳感器和算力更強的芯片。
單從遠場語音識別技術來看,仍然存在很多挑戰,包括:
(1)回聲消除技術。由于喇叭非線性失真的存在,單純依靠信號處理手段很難將回聲消除干凈,這也阻礙了語音交互系統的推廣,現有的基于深度學習的回聲消除技術都沒有考慮相位信息,直接求取的是各個頻帶上的增益,能否利用深度學習將非線性失真進行擬合,同時結合信號處理手段可能是一個好的方向。
(2)噪聲下的語音識別仍有待突破。信號處理擅長處理線性問題,深度學習擅長處理非線性問題,而實際問題一定是線性和非線性的疊加,因此一定是兩者融合才有可能更好地解決噪聲下的語音識別問題。
(3)上述兩個問題的共性是目前的深度學習僅用到了語音信號各個頻帶的能量信息,而忽略了語音信號的相位信息,尤其是對于多通道而言,如何讓深度學習更好的利用相位信息可能是未來的一個方向。
(4)另外,在較少數據量的情況下,如何通過遷移學習得到一個好的聲學模型也是研究的熱點方向。例如方言識別,若有一個比較好的普通話聲學模型,如何利用少量的方言數據得到一個好的方言聲學模型,如果做到這點將極大擴展語音識別的應用范疇。這方面已經取得了一些進展,但更多的是一些訓練技巧,距離終極目標還有一定差距。
(5)語音識別的目的是讓機器可以理解人類,因此轉換成文字并不是最終的目的。如何將語音識別和語義理解結合起來可能是未來更為重要的一個方向。語音識別里的 LSTM 已經考慮了語音的歷史時刻信息,但語義理解需要更多的歷史信息才能有幫助,因此如何將更多上下文會話信息傳遞給語音識別引擎是一個難題。
(6)讓機器聽懂人類語言,僅靠聲音信息還不夠,“聲光電熱力磁”這些物理傳感手段,下一步必然都要融合在一起,只有這樣機器才能感知世界的真實信息,這是機器能夠學習人類知識的前提條件。而且,機器必然要超越人類的五官,能夠看到人類看不到的世界,聽到人類聽不到的世界。
來源:巨靈鳥 歡迎分享本文
上一個文章:技術一旦被用來作惡,究竟會有多可怕(一)
下一個文章:語音識別技術簡史(三)