天天看點

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

阿裡妹導讀:語音識别技術作為人工智能技術中的重要組成部分,成為影響人機互動的核心元件之一,從各種智能家用IoT裝置的語音互動能力,到公共服務、智慧政務等場合的應用,語音識别技術正在影響着人們生活的方方面面。

本文将全面介紹阿裡雲語音識别技術中的重要模型端技術,希望和業界同仁交流探讨。

聲學模型、語言模型和解碼器可以看作是現代語音識别系統最核心的三個組成部分。雖然最近有一些研究者嘗試建構End2end的語音識别系統,但包含聲學模型、語言模型和解碼器的現代語音識别系統依然是目前最主流和使用最廣泛的系統。在這其中,聲學模型主要用來建構輸入語音和輸出聲學單元之間的機率映射關系;語言模型用來描述不同字詞之間的機率搭配關系,使得識别出的句子更像自然文本;解碼器負責結合聲學單元機率數值和語言模型在不同搭配上的打分進行篩選,最終得到最可能的識别結果。

随着近幾年深度學習的火熱,語音識别領域也紛紛投入深度學習的大潮之中。将傳統HMM-GMM聲學模型替換成HMM-DNN聲學模型後,可以獲得超過20%的相對提升,在傳統N-Gram語言模型基礎上疊加NN-LM語言模型也可以獲得進一步的提高。

在這過程中,聲學模型由于更适合采用深度神經網絡模型,進而受到研究者更多的關注。本文主要介紹阿裡雲語音識别技術中采用的聲學模型技術和語言模型技術,包括LC-BLSTM聲學模型、LFR-DFSMN聲學模型和NN-LM語言模型,其中LC-BLSTM是對傳統BLSTM模型的一種改進,在保持了高準确率的同時,提供了低延時的特性;而DFSMN是一種新穎的非遞歸結構的神經網絡卻可以像RNN一樣對信号的長時相關進行模組化,同時可以獲得更穩定的訓練效果和更好的識别準确。NN-LM語言模型是近年來在傳統N-Gram語言模型基礎上獲得的進一步改進。

Latency-Controlled BLSTM模型

DNN(即fully connected DNN)模型的優點在于通過增加神經網絡的層數和節點數,擴充了網絡對于複雜資料的抽象和模組化能力,但同時DNN模型也存在一些不足,例如DNN中一般采用拼幀來考慮上下文相關資訊對于目前語音幀的影響,這并不是反映語音序列之間相關性的最佳方法。自回歸神經網絡(RNN)在一定程度上解決了這個問題,它通過網絡節點的自連接配接達到利用序列資料間相關性的目的。進一步有研究人員提出一種長短時記憶網絡(LSTM-RNN),它可以有效減輕簡單RNN容易出現的梯度爆炸和梯度消散問題,而後研究人員又對LSTM進行了擴充,使用雙向長短時記憶網絡(BLSTM-RNN)進行聲學模型模組化,以充分考慮上下文資訊的影響。

BLSTM模型可以有效地提升語音識别的準确率,相比于DNN模型,相對性能提升可以達到15%-20%。但同時BLSTM模型也存在兩個非常重要的問題:

1、句子級進行更新,模型的收斂速度通常較慢,并且由于存在大量的逐幀計算,無法有效發揮GPU等并行計算工具的計算能力,訓練會非常耗時;

2、由于需要用到整句遞歸計算每一幀的後驗機率,解碼延遲和實時率無法得到有效保證,很難應用于實際服務。

對于這兩個問題,學術界首先提出Context-Sensitive-Chunk BLSTM(CSC-BLSTM)的方法加以解決,而此後又提出了Latency Controlled BLSTM(LC-BLSTM)這一改進版本,更好、更高效地減輕了這兩個問題。我們在此基礎上采用LC-BLSTM-DNN混合結構配合多機多卡、16bit量化等訓練和優化方法進行聲學模型模組化,取得了相比于DNN模型約17-24%的相對識别錯誤率下降。

典型的LSTM節點結構由3個gate組成:input gate、forget gate、output gate和一個cell組成,輸入、輸出節點以及cell同各個門之間都存在連接配接;inputgate、forget gate同cell之間也存在連接配接,cell内部還有自連接配接。這樣通過控制不同門的狀态,可以實作更好的長短時資訊儲存和誤差傳播。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

LSTM可以像DNN一樣逐層堆積成為DeepLSTM,為了更好地利用上下文資訊,還可以使用BLSTM逐層堆積構造Deep BLSTM,其結構如下圖所示,網絡中沿時間軸存在正向和反向兩個資訊傳遞過程,每一個時間幀的計算都依賴于前面所有時間幀和後面所有時間幀的計算結果,對于語音信号這種時序序列,該模型充分考慮了上下文對于目前語音幀的影響,能夠極大提高音素狀态的分類準确率。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

然而由于标準的BLSTM是對整句語音資料進行模組化,訓練和解碼過程存在收斂慢、延遲高、實時率低等問題,針對這些弊端我們采用了Latency Controlled BLSTM進行解決,與标準的BLSTM使用整句語音進行訓練和解碼不同,Latency Control BLSTM使用類似truncated BPTT的更新方式,并在cell中間狀态處理和資料使用上有着自己的特點,如下圖所示,訓練時每次使用一小段資料進行更新,資料由中心chunk和右向附加chunk構成,其中右向附加chunk隻用于cell中間狀态的計算,誤差隻在中心chunk上進行傳播。

時間軸上正向移動的網絡,前一個資料段在中心chunk結束時的cell中間狀态被用于下一個資料段的初始狀态,時間軸上反向移動的網絡,每一個資料段開始時都将cell中間狀态置為0。該方法可以很大程度上加快網絡的收斂速度,并有助于得到更好的性能。解碼階段的資料處理與訓練時基本相同,不同之處在于中心chunk和右向附加chunk的次元可以根據需求進行調節,并不必須與訓練采用相同配置。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

LFR-DFSMN模型

FSMN是近期被提出的一種網絡結構,通過在前饋全連接配接神經網絡(Feedforward Fully-connectedNeural Networks,FNN)的隐層添加一些可學習的記憶子產品,進而可以有效地對信号的長時相關性進行模組化。

FSMN相比于LCBLSTM不僅可以更加友善的控制時延,而且往往也能獲得更好的性能,需要的計算資源也更少。但是标準的FSMN很難訓練非常深層的結構,由于梯度消失問題導緻訓練效果不好。而深層結構的模型目前在很多領域被證明具有更強的模組化能力。因而針對此我們提出了一種改進的FSMN模型,稱之為深層的FSMN(Deep FSMN, DFSMN)。

進一步的我們結合低幀率(Low Frame Rate,LFR)技術建構了一種高效的實時語音識别聲學模型,相比于去年我們上線的LFR-LCBLSTM聲學模型可以獲得超過20%的相對性能提升,同時可以獲得2-3倍的訓練以及解碼的加速,可以顯著的減少我們的系統實際應用時所需要的計算資源。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

最早提出的FSMN的模型結構如上圖(a)所示,其本質上是一個前饋全連接配接神經網絡,通過在網絡的某些隐層旁添加一些記憶子產品(memory block)來對目前時刻周邊的上下文資訊進行模組化,進而使得模型可以對時序信号的長時相關性進行模組化。記憶子產品采用如上圖(b)所示的抽頭延遲結構将目前時刻以及之前 N 個時刻的隐層輸出通過一組系數編碼得到一個固定的表達。

FSMN的提出是受到數字信号進行中濾波器設計理論的啟發:任何無限響應沖擊(Infinite Impulse Response, IIR)濾波器可以采用高階的有限沖擊響應(FiniteImpulseResponse, FIR)濾波器進行近似。

從濾波器的角度出發,如上圖(c)所示的RNN模型的循環層就可以看作如上圖(d)的一階IIR濾波器。而FSMN采用的采用如上圖(b)所示的記憶子產品可以看作是一個高階的FIR濾波器。進而FSMN也可以像RNN一樣有效的對信号的長時相關性進行模組化,同時由于FIR濾波器相比于IIR濾波器更加穩定,因而FSMN相比于RNN訓練上會更加簡單和穩定。

根據記憶子產品編碼系數的選擇,可以分為:

标量FSMN(sFSMN)

矢量FSMN(vFSMN)

sFSMN 和 vFSMN 顧名思義就是分别使用标量和矢量作為記憶子產品的編碼系數。

以上的FSMN隻考慮了曆史資訊對目前時刻的影響,我們可以稱之為單向的FSMN。當我們同時考慮曆史資訊以及未來資訊對目前時刻的影響時,我們可以将單向的FSMN進行擴充得到雙向的FSMN。

FSMN相比于FNN,需要将記憶子產品的輸出作為下一個隐層的額外輸入,這樣就會引入額外的模型參數。隐層包含的節點越多,則引入的參數越多。研究結合矩陣低秩分解(Low-rank matrix factorization)的思路,提出了一種改進的FSMN結構,稱之為簡潔的FSMN(Compact FSMN,cFSMN)。下圖是一個第l個隐層包含記憶子產品的cFSMN的結構框圖。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

對于cFSMN,通過在網絡的隐層後添加一個低次元的線性投影層,并且将記憶子產品添加在這些線性投影層上。進一步的,cFSMN對記憶子產品的編碼公式進行了一些改變,通過将目前時刻的輸出顯式的添加到記憶子產品的表達中,進而隻需要将記憶子產品的表達作為下一層的輸入。這樣可以有效的減少模型的參數量,加快網絡的訓練。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

上圖是我們進一步提出的Deep-FSMN(DFSMN)的網絡結構框圖,其中左邊第一個方框代表輸入層,右邊最後一個方框代表輸出層。我們通過在cFSMN的記憶子產品(紅色框框表示)之間添加跳轉連接配接(skip connection),進而使得低層記憶子產品的輸出會被直接累加到高層記憶子產品裡。這樣在訓練過程中,高層記憶子產品的梯度會直接指派給低層的記憶子產品,進而可以克服由于網絡的深度造成的梯度消失問題,使得可以穩定的訓練深層的網絡。

相比于之前的cFSMN,DFSMN優勢在于,通過跳轉連接配接可以訓練很深的網絡。對于原來的cFSMN,由于每個隐層已經通過矩陣的低秩分解拆分成了兩層的結構,這樣對于一個包含4層cFSMN層以及兩個DNN層的網絡,總共包含的層數将達到13層,進而采用更多的cFSMN層,會使得層數更多而使得訓練出現梯度消失問題,導緻訓練的不穩定性。

我們提出的DFSMN通過跳轉連接配接避免了深層網絡的梯度消失問題,使得訓練深層的網絡變得穩定。需要說明的是,這裡的跳轉連接配接不僅可以加到相鄰層之間,也可以加到不相鄰層之間。跳轉連接配接本身可以是線性變換,也可以是非線性變換。具體的實驗我們可以實作訓練包含數十層的DFSMN網絡,并且相比于cFSMN可以獲得顯著的性能提升。

從最初的FSMN到cFSMN不僅可以有效的減少模型的參數,而且可以獲得更好的性能。進一步的在cFSMN的基礎上,我們提出的DFSMN,可以更加顯著的提升模型的性能。如下表是在一個2000小時的英文任務上基于BLSTM,cFSMN,DFSMN的聲學模型性能對比。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

從上表中可以看到,在2000小時這樣的任務上,DFSMN模型可以獲得比BLSTM聲學模型相對14%的錯誤率降低,顯著提高了聲學模型的性能。

傳統的聲學模型,輸入的是每幀語音信号提取的聲學特征,每幀語音的時長通常為10ms,對于每個輸入的語音幀信号會有相對應的一個輸出目标。最近有研究提出一種低幀率(Low Frame Rate,LFR)模組化方案:通過将相鄰時刻的語音幀進行綁定作為輸入,去預測這些語音幀的目标輸出得到的一個平均輸出目标。具體實驗中可以實作三幀(或更多幀)拼接而不損失模型的性能。

進而可以将輸入和輸出減少到原來的三分之一甚至更多,可以極大的提升語音識别系統服務時聲學得分的計算以及解碼的效率。我們結合LFR和以上提出的DFSMN,建構了基于LFR-DFSMN的語音識别聲學模型,經過多組實驗我們最終确定了采用一個包含10層cFSMN層+2層DNN的DFSMN作為聲學模型,輸入輸出則采用LFR,将幀率降低到原來的三分之一。識别結果和去年我們上線的最好的LCBLSTM基線比較如下表所示。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

通過結合LFR技術,我們可以獲得三倍的識别加速。從上表中可以看到,在實際工業規模應用上,LFR-DFSMN模型比LFR-LCBLSTM模型可以獲得20%的錯誤率下降,展示了對大規模資料更好的模組化特性。

NN-LM語言模型

語言模型,顧名思義,對語言進行模組化的模型。語言表達可以看作一串字元序列,不同的字元序列組合代表不同的含義,字元的機關可以是字或者詞。語言模型的任務,可以看作是給定字元序列,如何估計該序列的機率,或者說,如何估計該序列的合理性。

P(上海 的 勞工 師傅 有 力量)>P(上海 的 勞工 食腐 有 力量)

拿這句話做個例子。比如到底應該是“勞工師傅有力量”,還是“勞工食腐有力量”,哪句話更“合适”。我們容易判斷左邊這句的機率大一點。于是我們希望通過語言模型的模組化,可以給出符合人類預期的機率配置設定。就像這句,“勞工師傅”的機率,大于“勞工食腐”的機率。

基于統計詞頻的傳統N元文法模型,通過馬爾可夫假設簡化了模型結構和計算,通過計數的方式計算,通過查找的方式使用。擁有估計簡單、性能穩定、計算快捷的優勢,有超過三十年的使用曆史。然而其馬爾科夫假設強制截斷模組化長度,使得模型無法對較長的曆史模組化;基于詞頻的估計方式也使得模型不夠平滑,對于低詞頻詞彙估計不足。随着神經網絡(Neural Networks,NNs)的第三次崛起,人們開始嘗試通過NN來進行語言模型模組化。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

一個典型的模組化結構是遞歸神經網絡(recurrentneural networks,RNNs),其遞歸的結構理論上可以對無窮長序列進行模組化,彌補了N元文法對于序列長度模組化的不足;同時其各層間的全向連接配接也保證了模組化的平滑。此外為了提升模型的性能,研究者們還嘗試了通過長短時記憶(Long Short-Term Memory,LSTM)結構來提升基本RNN本身模組化能力的不足,進一步提升模型性能。

NN用于大規模語言模組化的系統中,需要面對一些問題,例如大詞表帶來的存儲和計算增加。實際線上系統的詞表往往比較大,而随着詞表的增加,基本RNN結構的存儲和計算量都會幾何級數爆炸式增長。

為此,研究者們進行了一些嘗試,壓縮詞典尺寸成了一個最直接的解決方案,一個經典的方法是詞表聚類。該方法可以大幅壓縮詞表尺寸,但往往也會帶來一定的性能衰減。更直接的一個想法是直接過濾掉低頻詞彙,這樣依然會帶來一定的性能衰減,據此有一個改進政策,我們發現真正制約速度性能的主要是輸出層節點,輸入層節點大,借助projection層可以很好解決,于是輸入層采用大辭典,而僅對輸出層詞表進行抑制,這樣不僅盡可能地降低了損失,同時過濾掉過低的詞頻,也有利于模型節點的充分訓練,性能往往還會略有提升。

詞表的壓縮可以提升模組化性能,降低計算量和存儲量,但僅限于一定的量級,不可以無限制壓縮,如何繼續降低計算量依然是一個問題。一些方法被提了出來。例如LightRNN,通過類似聚類的方式,利用embedding的思想,把詞表映射到一個實值矩陣上,實際輸出隻需要矩陣的行加矩陣的列,計算量大概也能開個方。和節點數多一起造成計算量大的一個原因就是softmax輸出,需要計算所有的節點求個和,然後得到分母。若是這個分母能保持一個常數,實際計算的時候就隻算需要的節點,在測試環節就快的多了。

于是就有了正則項相關的方法,Variance Regularization,如果訓練速度可以接受的話,這種方法在基本不損失模型正确性的情況下可以大幅提升前向計算速度;如果訓練的時候也想提速,還可以考慮基于采樣,sampling的方法,比如NCE、Importance Sampling、Black Sampling等,本質上就是說,在訓練的時候不計算全部節點,隻計算正樣本(也就是标簽為1的節點),以及部分通過某種分布采樣的到的負樣本,避免高輸出造成的計算緩慢。速度上提升還是很明顯的。

從阿裡雲獲得開發者模型定制能力

想象一個做智能電話客服或是智能會議系統的開發者,需要為他的系統接入語音識别(将語音轉寫為文字)的能力。擺在他面前的會是這樣一個尴尬的局面:

一個選擇是自己從零開始學做語音識别,這可能要花費大量的時間和金錢。畢竟人工智能這種事情,各大網際網路巨頭投入大量的人力、物力、财力,也要花較長的時間才能積累下技術;

第二個選擇是用上述巨頭們在網際網路上提供的開箱即用的、one size fits all的語音識别接口,時間是省下了,但語音轉文字的準确率嘛,隻能碰碰運氣,畢竟巨頭們也很忙,沒有精力為你關注的場景進行優化。

那麼問題來了:有沒有一種手段能夠以最小的投入獲得業務上最佳的語音識别效果呢?答案是肯定的。

阿裡雲依托達摩院業界領先的語音互動智能,打破傳統語音技術提供商的供給模式,在雲計算時代讓普通開發者也能夠通過阿裡雲提供的語音識别雲端自學習技術,獲得定制優化自己所關心的業務場景的成套手段。阿裡雲讓廣大的開發者站在巨頭的肩膀上,通過自主可控的自學習,在短時間内實作對語音識别系統應用從入門到精通,并在開發者關心的場景下輕松擁有業界頂尖的語音識别準确率。這就是雲計算時代的語音識别技術全新的供給模式。

與其它人工智能技術一樣,語音識别技術的關鍵在于算法、算力和資料三個方面。阿裡雲依托達摩院語音互動智能,近年來持續在世界前沿進行“算法”演進,近期還将最新的研究成果DFSMN聲學模型開源,供全世界的研究者複現目前最佳的結果并進行持續提升。

在“算力”方面自不用說,這本身就是雲計算的天然強項。基于阿裡雲ODPS-PAI平台,我們建構了專為語音識别應用優化的CPU/GPU/FPGA/NPU訓練和服務混布平台,每天服務于阿裡雲上巨量的語音識别請求。在“資料”方面,我們提供通過海量資料訓練的、開箱即用的場景模型,包括電商、客服、政務、手機輸入等等。

同時應該看到,在具體的落地場景下往往會有一些非常特殊、領域相關的“說法”需要被識别,很多時候類似于“碎屑岩岩性地層”、“海相碳酸鹽岩”這種特定說法對于通用場景模型的識别率提出了挑戰。要獲得開發者關心的具體場景下最佳的準确率,開箱即用的模型一般還需要一定的定制優化工作才可以達到。傳統上,這樣的定制是通過語音技術服務提供商來完成的,在成本、周期、可控性等方面都存在明顯不足。

阿裡雲提供的語音定制“自學習”平台服務,可以提供多種手段,在很短的時間内、以較低的成本,讓開發者完全掌控模型定制優化及上線的工作。阿裡雲創新工具平台及服務技術,依托強大的基礎設施,使得在雲計算的大背景下進行大規模定制化語音服務成為可能。而開發者完全無需關心背景的技術和服務,隻需要使用阿裡雲提供的簡單易用的“自學習”工具,利用場景知識和資料,就可以獲得該特定場景下最優的效果,并按需要持續疊代提升。

阿裡雲的智能語音自學習平台具備以下優勢:

易:智能語音自學習平台颠覆性地提供一鍵式自助語音優化方案,極大地降低進行語音智能優化所需要的門檻,讓不懂技術的業務人員也可以來顯著提高自身業務識别準确率。

快:自學習平台能夠在數分鐘之内完成業務專屬定制模型的優化測試上線,更能支援業務相關熱詞的實時優化,一改傳統定制優化長達數周甚至數月的漫長傳遞弊端。

準:自學習平台優化效果在很多内外部合作夥伴和項目上得到了充分驗證,很多項目最終通過自學習平台不光解決了效果可用性問題,還在項目中超過了競争對手使用傳統優化方式所取得的優化效果。

舉例來說,開發者可以使用下述多種“自學習”手段來定制自己關心領域的模型:

a)業務熱詞定制

在許多特定場所,要求快速對特定詞的識别能力進行加強(注:包括兩種模式,模式一為其他詞易被識别成特定詞;模式二為特定詞易被識别成其他詞),采用實時熱詞加載技術,可以在實時場景下,通過設定不同的檔位,能夠實作熱詞識别能力的加強。

b)類熱詞定制

很多時候,相同的發音相同的屬性在不同上下文上會需要不同的識别效果。聯系人和地名就是典型的案例,對于不同人的好友,“張陽”和“章揚”我們就必須能準确地識别出相應的名字。同樣,相隔千裡的安溪跟安西如果識别錯誤會給導航帶來大麻煩。智能語音自學習平台相信“每個人都值得被尊重”,提供聯系人類和地名類的定制能力,“讓天下沒有難識的路”。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

c)業務專屬模型定制

使用者通過輸入對應領域的相關文本,如行業或公司的基本介紹、客服聊天記錄、領域常用詞彙和專有名詞等,即可快速自行生成該行業下的定制模型,整個定制過程無需使用者人工幹預。

重磅公開!阿裡語音識别模型端核心技術,讓你“聽”見未來

通過這些手段,阿裡雲使得開發者不必關心語音技術的算法和工程服務細節,專注于他們擅長的垂直領域的知識和資料收集,實作全新的語音技術雲端供給模式,造福于廣大的開發者及其業務結果。

原文釋出時間為:2019-01-15

本文作者:鄢志傑、薛少飛、張仕良、鄭昊、雷鳴

本文來自雲栖社群合作夥伴“

阿裡技術

”,了解相關資訊可以關注“

”。

繼續閱讀