摘要: 語音識別技術做爲人工智能技術中的重要組成部分,也做爲影響人機交互的核心組件之一,從各類智能家用IoT設備的語音交互能力,到公共服務、智慧政務等場合的應用,語音識別技術正在影響着人們生活的方方面面。本文將挑選阿里雲語音識別技術中的一些模型端技術進行簡要介紹。
鄢志傑,阿里雲資深算法專家,人機交互首席科學家。研究領域主要包括語音識別、語音合成、說話人識別驗證、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模型也存在兩個很是重要的問題:測試
對於這兩個問題,學術界首先提出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,其結構以下圖所示,網絡中沿時間軸存在正向和反向兩個信息傳遞過程,每個時間幀的計算都依賴於前面全部時間幀和後面全部時間幀的計算結果,對於語音信號這種時序序列,該模型充分考慮了上下文對於當前語音幀的影響,可以極大的提升音素狀態的分類準確率。
然而因爲標準的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-connected Neural 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)濾波器能夠採用高階的有限衝擊響應(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對記憶模塊的編碼公式進行了一些改變,經過將當前時刻的輸出顯式的添加到記憶模塊的表達中,從而只須要將記憶模塊的表達做爲下一層的輸入。這樣能夠有效的減小模型的參數量,加快網絡的訓練。
上圖是咱們進一步提出的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來進行語言模型建模。
一個典型的建模結構是遞歸神經網絡(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) 類熱詞定製
不少時候,相同的發音相同的屬性在不一樣上下文上會須要不一樣的識別效果。聯繫人和地名就是典型的案例,對於不一樣人的好友,「張陽」和「章揚」咱們就必須能準確地識別出相應的名字。一樣,相隔千里的安溪跟安西若是識別錯誤會給導航帶來大麻煩。智能語音自學習平臺相信「每一個人都值得被尊重」,提供聯繫人類和地名類的定製能力,「讓天下沒有難識的路」。
c) 業務專屬模型定製
用戶經過輸入對應領域的相關文本,如行業或公司的基本介紹、客服聊天記錄、領域經常使用詞彙和專有名詞等,便可快速自行生成該行業下的定製模型,整個定製過程無需用戶人工干預。
經過這些手段,阿里雲使得開發者沒必要關心語音技術的算法和工程服務細節,專一於他們擅長的垂直領域的知識和數據收集,實現全新的語音技術雲端供給模式,造福於廣大的開發者及其業務結果。
更多幹貨內容盡在阿里雲總監課,戳連接報名:https://yq.aliyun.com/promoti...
阿里雲總監繫列課重磅上線!聚焦人工智能、彈性計算、數據庫等熱門領域,首次集齊12位阿里雲技術高管,耗時半年精心打磨,從理論到實踐傾囊相授,從零開始繪製技術大牛成長路徑,限時直播課程免費報名中!
本文做者:雲攻略小攻
本文爲雲棲社區原創內容,未經容許不得轉載。