阿里雲語音識別模型端核心技術選講

這裏寫圖片描述
鄢志傑,阿里雲資深算法專家,人機交互首席科學家。研究領域主要包括語音識別、語音合成、說話人識別驗證、OCR/手寫識別、機器學習算法等。長期擔任語音領域頂級學術會議及期刊的專家評審,並擁有多項美國及PCT專利。

以下爲內容全文:

語音識別技術作爲人工智能技術中的重要組成部分,也作爲影響人機交互的核心組件之一,從各種智能家用IoT設備的語音交互能力,到公共服務、智慧政務等場合的應用,語音識別技術正在影響着人們生活的方方面面。本文將挑選阿里雲語音識別技術中的一些模型端技術進行簡要介紹。

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

隨着近幾年深度學習的火熱,語音識別領域也紛紛投入深度學習的大潮之中。將傳統HMM-GMM聲學模型替換成HMM-DNN聲學模型後,可以獲得超過20%的相對提升,在傳統N-Gram語言模型基礎上疊加NN-LM語言模型也可以獲得進一步的提高。在這過程中,聲學模型由於更適合採用深度神經網絡模型,從而受到研究者更多的關注。本文主要介紹阿里雲語音識別技術中採用的聲學模型技術和語言模型技術,包括LC-BLSTM聲學模型、LFR-DFSMN聲學模型和NN-LM語言模型,其中LC-BLSTM是對傳統BLSTM模型的一種改進,在保持了高準確率的同時,提供了低延時的特性;而LFR-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模型也存在兩個非常重要的問題:

句子級進行更新,模型的收斂速度通常較慢,並且由於存在大量的逐幀計算,無法有效發揮GPU等並行計算工具的計算能力,訓練會非常耗時;
由於需要用到整句遞歸計算每一幀的後驗概率,解碼延遲和實時率無法得到有效保證,很難應用於實際服務。
對於這兩個問題,學術界首先提出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同各個門之間都存在連接;input gate、forget gate同cell之間也存在連接,cell內部還有自連接。這樣通過控制不同門的狀態,可以實現更好的長短時信息保存和誤差傳播。
這裏寫圖片描述

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

image003

然而由於標準的BLSTM是對整句語音數據進行建模,訓練和解碼過程存在收斂慢、延遲高、實時率低等問題,針對這些弊端我們採用了Latency Controlled BLSTM進行解決,與標準的BLSTM使用整句語音進行訓練和解碼不同,Latency Control BLSTM使用類似truncated BPTT的更新方式,並在cell中間狀態處理和數據使用上有着自己的特點,如下圖所示,訓練時每次使用一小段數據進行更新,數據由中心chunk和右向附加chunk構成,其中右向附加chunk只用於cell中間狀態的計算,誤差只在中心chunk上進行傳播。時間軸上正向移動的網絡,前一個數據段在中心chunk結束時的cell中間狀態被用於下一個數據段的初始狀態,時間軸上反向移動的網絡,每一個數據段開始時都將cell中間狀態置爲0。該方法可以很大程度上加快網絡的收斂速度,並有助於得到更好的性能。解碼階段的數據處理與訓練時基本相同,不同之處在於中心chunk和右向附加chunk的維度可以根據需求進行調節,並不必須與訓練採用相同配置。

image005

LFR-DFSMN模型

FSMN是近期被提出的一種網絡結構,通過在前饋全連接神經網絡(Feedforward Fully-connected Neural Networks,FNN)的隱層添加一些可學習的記憶模塊,從而可以有效的對信號的長時相關性進行建模。FSMN相比於LCBLSTM不僅可以更加方便的控制時延,而且往往也能獲得更好的性能,需要的計算資源也更少。但是標準的FSMN很難訓練非常深層的結構,由於梯度消失問題導致訓練效果不好。而深層結構的模型目前在很多領域被證明具有更強的建模能力。因而針對此我們提出了一種改進的FSMN模型,稱之爲深層的FSMN(Deep FSMN, DFSMN)。進一步的我們結合低幀率(Low Frame Rate,LFR)技術構建了一種高效的實時語音識別聲學模型,相比於去年我們上線的LFR-LCBLSTM聲學模型可以獲得超過20%的相對性能提升,同時可以獲得2-3倍的訓練以及解碼的加速,可以顯著的減少我們的系統實際應用時所需要的計算資源。

image007

最早提出的FSMN的模型結構如上圖(a)所示,其本質上是一個前饋全連接神經網絡,通過在隱層旁添加一些記憶模塊(memory block)來對周邊的上下文信息進行建模,從而使得模型可以對時序信號的長時相關性進行建模。記憶模塊採用如上圖(b)所示的抽頭延遲結構將當前時刻以及之前 N 個時刻的隱層輸出通過⼀組係數編碼得到⼀個固定的表達。FSMN的提出是受到數字信號處理中濾波器設計理論的啓發:任何無限響應衝擊(Infinite Impulse Response, IIR)濾波器可以採用高階的有限衝擊響應(Finite Impulse Response, FIR)濾波器進行近似。從濾波器的角度出發,如上圖(c)所示的RNN模型的循環層就可以看作如上圖(d)的一階IIR濾波器。而FSMN採用的採用如上圖(b)所示的記憶模塊可以看作是一個高階的FIR濾波器。從而FSMN也可以像RNN一樣有效的對信號的長時相關性進行建模,同時由於FIR濾波器相比於IIR濾波器更加穩定,因而FSMN相比於RNN訓練上會更加簡單和穩定。

根據記憶模塊編碼係數的選擇,可以分爲:1)標量FSMN(sFSMN);2)矢量FSMN(vFSMN)。sFSMN 和 vFSMN 顧名思義就是分別使用標量和矢量作爲記憶模塊的編碼係數。

以上的FSMN只考慮了歷史信息對當前時刻的影響,我們可以稱之爲單向的FSMN。當我們同時考慮歷史信息以及未來信息對當前時刻的影響時,我們可以將單向的FSMN進行擴展得到雙向的FSMN。

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

這裏寫圖片描述

對於cFSMN,通過在網絡的隱層後添加一個低維度的線性投影層,並且將記憶模塊添加在這些線性投影層上。進一步的,cFSMN對記憶模塊的編碼公式進行了一些改變,通過將當前時刻的輸出顯式的添加到記憶模塊的表達中,從而只需要將記憶模塊的表達作爲下一層的輸入。這樣可以有效的減少模型的參數量,加快網絡的訓練。

image011

上圖是我們進一步提出的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的聲學模型性能對比。

Model BLSTM cFSMN DFSMN
WER% 10.9 10.8 9.4
從上表中可以看到,在2000小時這樣的任務上,DFSMN模型可以獲得比BLSTM聲學模型相對14%的錯誤率降低,顯著提高了聲學模型的性能。
傳統的聲學模型,輸入的是每幀語音信號提取的聲學特徵,每幀語音的時長通常爲10ms,對於每個輸入的語音幀信號會有相對應的一個輸出目標。最近有研究提出一種低幀率(Low Frame Rate,LFR)建模方案:通過將相鄰時刻的語音幀進行綁定作爲輸入,去預測這些語音幀的目標輸出得到的一個平均輸出目標。具體實驗中可以實現三幀(或更多幀)拼接而不損失模型的性能。從而可以將輸入和輸出減少到原來的三分之一甚至更多,可以極大的提升語音識別系統服務時聲學得分的計算以及解碼的效率。我們結合LFR和以上提出的DFSMN,構建了基於LFR-DFSMN的語音識別聲學模型,經過多組實驗我們最終確定了採用一個包含10層cFSMN層+2層DNN的DFSMN作爲聲學模型,輸入輸出則採用LFR,將幀率降低到原來的三分之一。識別結果和去年我們上線的最好的LCBLSTM基線比較如下表所示。
77

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

NN-LM語言模型

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

P(上海 的 工人 師傅 有 力量)>P(上海 的 工人 食腐 有 力量)
拿這句話做個例子。比如到底應該是“工人師傅有力量”,還是“工人食腐有力量”,哪句話更“合適”。我們容易判斷左邊這句的概率大一點。於是我們希望通過語言模型的建模,可以給出符合人類預期的概率分配。就像這句,“工人師傅”的概率,大於“工人食腐”的概率。

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

image013

一個典型的建模結構是遞歸神經網絡(recurrent neural 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) 準。自學習平臺優化效果在很多內外部合作伙伴和項目上得到了充分驗證,很多項目最終通過自學習平臺不光解決了效果可用性問題,還在項目中超過了競爭對手使用傳統優化方式所取得的優化效果。

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

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

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

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

image017

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

更多幹貨內容盡在阿里雲總監課,戳鏈接報名:https://yq.aliyun.com/promotion/689

阿里雲總監繫列課重磅上線!聚焦人工智能、彈性計算、數據庫等熱門領域,首次集齊12位阿里雲技術高管,耗時半年精心打磨,從理論到實踐傾囊相授,從零開始繪製技術大牛成長路徑,限時直播課程免費報名中!
原文鏈接https://yq.aliyun.com/articles/630528?spm=a2c4e.11155435.0.0.a5a43312pX2g7n

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章