基於Transformer的高效、低延時、流式語音識別模型

2021-01-15 騰訊網

編者按:Transformer 模型在自然語言領域被提出後,目前已經擴展到了計算機視覺、語音等諸多領域。然而,雖然 Transformer 模型在語音識別領域有著更好的準確率,但在流式的語音識別場景下,Transformer 模型的速度和延時往往阻礙其實際的應用。為了解決這個問題,微軟 Azure 語音團隊與微軟亞洲研究院的研究員們一起提出了一套結合 Transformer 家族的編碼器和流式 Transducer 框架的解決方案,並提出了 Mask is all you need 的方法對模型進行快速訓練以及解碼,讓 Transformer 模型能夠在普通的計算設備上進行快速的語音識別。

從場景上,語音識別可以分為流式語音識別和非流式語音識別。非流式語音識別(離線識別)是指模型在用戶說完一句話或一段話之後再進行識別,而流式語音識別則是指模型在用戶還在說話的時候便同步進行語音識別。流式語音識別因為其延時低的特點,在工業界中有著廣泛的應用,例如聽寫轉錄等。

Transformer流式語音識別挑戰

目前,Transformer 模型雖然在離線場景下可以進行準確的語音識別,但在流式語音識別中卻遭遇了兩個致命的問題:

1)計算複雜度和內存儲存開銷會隨著語音時長的增加而變大。

由於 Transformer 使用自注意力模型時會將所有的歷史信息進行考慮,因此導致了存儲和計算的複雜度會隨著語音時長線性增加。而流式語音識別往往本身就有很長的語音輸入,所以原生的 Transformer 很難應用於流式語音識別之中。

圖1:流式語音識別 Transformer 自注意力示意圖

2)Transformer 模型由於層數過多會導致未來窗口大小(lookahead window)傳遞。

如下圖所示,Transformer 模型如果每層往後看一幀,那麼最終的向前看(lookahead)會隨著 Transformer 層數的增加而累積。例如,一個18層的Transformer,最終會積累18幀的延時,這將在實際應用中帶來很大的延時問題,使得語音識別反應速度變慢,用戶體驗不佳。

圖2:Transformer 的未來窗口隨層數而增加

基於塊和基於記憶的解決方案

為了解決上述 Transformer 模型在流式語音識別中的問題,科研人員提出了基於塊(chunk)和基於記憶(memory)的兩種解決方案。

1) 基於塊(chunk)的解決方案

第一種方案為基於塊的解決方案,如下圖所示,其中虛線為塊的分隔符。其主體思想是把相鄰幀變成一個塊,之後根據塊進行處理。這種方法的優點是可以快速地進行訓練和解碼,但由於塊之間沒有聯繫,所以導致模型準確率不佳。

圖3:基於塊的流式語音識別解決方案

2) 基於記憶(memory)的解決方案

基於記憶的解決方案的主體思想則是在塊的基礎上引入記憶,讓不同塊之間可以聯繫起來。然而,此方法會破壞訓練中的非自循環機制,使得模型訓練變慢。

圖4:基於記憶的流式語音識別解決方案

工業界中往往有著大量的訓練數據,基於記憶的解決方案會讓模型訓練開銷增大。這就促使研究人員需要去尋找可以平衡準確率、訓練速度和測試速度的方案。

快速訓練和解碼

Mask is all you need

針對上述問題,微軟的研究員們提出了一種快速進行訓練和解碼的方法。該方法十分簡單,只需要一個掩碼矩陣便可以讓一個非流的 Transformer 變成流的 Transformer。

下圖為非流和0延時的掩碼矩陣,其為一個全1矩陣,或者一個下三角陣。

圖5:離線語音識別編碼器掩碼矩陣

圖6:0延時的流式語音識別編碼器掩碼矩陣

研究員們希望將基於塊的方法中的不同塊連接起來,並保持 Transformer 並行訓練的特點。為了達到這個目的,研究員們提出了一種基於塊的流式 Transformer,具體算法如下:

首先,在當前幀左側,讓每一層的每一幀分別向前看 n 幀,這樣隨著層數的疊加,Transformer 對歷史的視野可以積累。如果有 m 層,則可以看到歷史的 n*m 幀。雖然看到了額外的 n*m 幀,但這些幀並不會拖慢解碼的時間,因為它們的表示會在歷史計算時計算好,並不會在當前塊進行重複計算。與解碼時間相關的,只有每一層可以看到幀的數目。

因為希望未來的信息延時較小,所以要避免層數對視野的累積效應。為了達到這個目的,可以讓每一個塊最右邊的幀沒有任何對未來的視野,而塊內的幀可以互相看到,這樣便可以阻止延時隨著層數而增加。

最後,在每個塊之間讓不同幀都可以相互看到,這樣平均延時即塊長度的二分之一。

此方法可以讓 Transformer 保持並行訓練的優勢,快速進行訓練,其得到的掩碼矩陣如下。

圖7:所提出方法的編碼器掩碼矩陣

在解碼過程中,解碼時間主要由塊的大小而決定。將之前的 key 和 value 進行緩存,這樣可以避免重複計算,以加速解碼。該方法的公式如下,歷史的 key 和 value(標紅)在進行注意力權重(attention weight)計算中被緩存。

實驗

數據集與模型設置

研究員們的實驗在微軟內部進行了6.5萬小時以上的訓練,並在微軟內部約180萬詞的測試集上進行了測試。實驗使用了32個 GPU,以混合精度的方式訓練了約兩天可以使模型收斂,並且使用 torchjit 進行測速。研究員們使用 Transducer 框架實現語音識別流式識別,實驗對比了 Transformer Transducer (T-T)、Conformer Transducer (C-T)以及 RNN Transducer(RNN-T),其中 Transformer 和 Conformer 的編碼部分使用了18層,每層 hidden state(隱藏狀態)= 512的參數量。而 Transducer 中的預測網絡(predictor network)則使用了 LSTM 網絡結構,並包含兩層,每層 hidden state = 1024。RNN-T 也與其大小相似。

低延時解碼效果

表1:低延時解碼效果

從表1可以看到:1)在低延時的情況下,T-T 和 C-T 會比 RNN-T 消除10% 的詞錯率( Word Error Rate,WER);2)如果每層向左看60幀(1.8s),它和看全部歷史的結果相比,性能損失不大,約1%左右;3)然而 T-T 的速度卻比 RNN-T 慢了一些,在四線程的情況下 Transformer 速度比 RNN 慢了3倍左右。這個問題可以嘗試利用批(batch)的方法來解決,即把相鄰的幾幀一起進行解碼,再利用 Transformer 的並行能力,加速解碼。

表2:Transformer 的實時率

表2是根據批(batch)中幀的數目的不同,所對應的不同的 Transformer 的實時率。可以看到在兩幀一起解碼時,Transformer 就已經達到了 RTF

低延時解碼效果

表3:低延時解碼效果

而在低延時的情況下,Transformer Transducer 家族的優勢更是得以突顯。對比傳統混合(hybrid)模型,T-T有著13%的 WER改 善,對比流式的 S2S 模型(參數量一致),Transducer 模型往往會達到更好的效果(對比 RNN S2S 和 Trans S2S)。而在同樣的 Transducer 框架下,Transformer 模型會比 RNN 模型達到更好的效果,並且速度上也有顯著的優勢。令人驚訝的是,通過上述方法,目前 T-T 的離線和流式的距離不足10%,這就證明了研究員們提出的流式方法的有效性,可以最大程度避免精度的損失。

8比特量化

表4:8比特量化結果

經過8比特量化,可以得到更快的 Transducer 模型。在單線程的情況下,Transformer 可以提升一倍的速度,不過,RNN-T 可以提升約4倍的速度。其中,Transformer 速度提升有限的原因是,SoftMax 和 Layer Norm 等操作,難以通過8比特進行加速。

結語

在本文中,微軟 Azure 語音團隊與微軟亞洲研究院的研究員們一起提出了一套結合 Transformer 家族的編碼器和流式 Transducer 框架的流式語音識別方案解決方案。該方案利用 Mask is all you need 的機制,可以對流式語音識別模型進行快速訓練以及解碼。在六萬五千小時的大規模訓練數據的實驗中,可以看到 Transformer 模型比 RNN 模型在識別準確率上有著顯著地提高,並在低延時的場景下,解碼速度更快。

未來,研究員們將繼續研究基於 Transformer 的語音識別模型,力爭進一步降低解碼的運算消耗,在0延時的場景下,讓 Transformer 模型可以與 RNN 模型達到相同的解碼速度。

更多技術細節,詳見論文:Developing Real-time Streaming Transformer Transducer for Speech Recognition on Large-scale Dataset

論文連結:https://arxiv.org/abs/2010.11395

相關焦點

  • 團隊新作 | CIF:基於神經元整合發放的語音識別新機制
    基於CIF的模型不僅有效地支持了在線識別、邊界定位及聲學Embedding提取,而且在兩個中文基準語音識別集(HKUST、AISHELL-2)上創造了SOTA的性能。相關成果被ICASSP 2020錄用為Oral論文。基於注意力機制的端到端模型正深刻影響著語音識別技術的發展。
  • 基於Julius的機器人語音識別系統構建
    只需要對幾十個字或詞的命令行進語音識別,便可使得原本需要手工操作的工作由語音輕鬆完成。本文針對現有機器人平臺,設計一個非特定人的孤立詞語音識別系統。  1 語音識別原理及JuliUS簡介  1.1 基於HMM的語音識別原理  語音識別系統是一種模式識別系統,系統首先對語音信號進行分析,得到語音的特徵參數,然後對這些參數進行處理,形成標準的模板。這個過程稱為訓練或學習。
  • 谷歌研究院出品:高效 Transformer 模型最新綜述
    這種機制可以被看做是一種類似於圖的歸納偏置,它通過一種基於相關性的池化操作將序列中所有的token聯繫起來。眾所周知,自注意機制存在平方階的時間與存儲複雜度,這在許多情況下都阻礙了模型的可擴展性。近期,為了解決該問題,出現了各種各樣的模型變體。在下文中,我們將這類模型稱為「高效 Transformer」。  在不同的語境下,我們可以對模型的效率有不同的理 解。
  • 語音識別技術簡史
    因此,進入 80 年代後,研究思路發生了重大變化,從傳統的基於模板匹配的技術思路開始轉向基於統計模型(HMM)的技術思路。HMM 的理論基礎在 1970 年前後就已經由 Baum 等人建立起來,隨後由 CMU 的 Baker 和 IBM 的 Jelinek 等人將其應用到語音識別當中。
  • 基於DSP的語音識別計算器電路設計
    根據實際的應用,語音識別可以分為:特定人與非特定人的識別、孤立詞與連續詞的識別、中小詞彙量與無限詞彙量的識別。 考慮到成本及使用範圍因素,本文中應用的是基於TMS320VC5509 DSP的非特定人、孤立詞、小詞彙量的語音識別系統。
  • 基於DSP的語音識別系統的實現及分析
    尤其在會話任務上,自動語音識別系統遠不及人類。因此,語音識別技術的應用已成為一個極具競爭性和挑戰性的高新技術產業。  隨著DSP技術的快速發展及性能不斷完善,基於DSP的語音識別算法得到了實現,並且在費用、功耗、速度、精確度和體積等方面有著PC機所不具備的優勢,具有廣闊的應用前景。
  • Facebook AI的DETR,一種基於Transformer的目標檢測方法
    目標檢測在計算機視覺中,目標檢測是一項任務,我們希望我們的模型將對象與背景區分開,並預測圖像中存在的對象的位置和類別。當前的深度學習方法試圖解決作為分類問題或回歸問題或綜合兩者的目標檢測任務。例如,在RCNN算法中,從輸入圖像中識別出幾個感興趣的區域。
  • 熱門的模型跨界,Transformer、GPT做CV任務一文大盤點
    其實不然,現階段已出現好多研究,它們通過算法的改進,將在 NLP 領域表現良好的模型,如 Transformer、GPT 等進行改進並應用於視覺任務,不僅實現了模型跨界,而且取得了不錯的性能。模型跨界效果如何呢?人工智慧的快速發展已經淋漓盡致地體現在我們的日常生活中,從人臉識別、語音識別到機器翻譯等等,無不展示著 AI 帶來的便利。
  • 從語音、視覺、語義到算法,百度大腦 5.0 全方位升級
    語音識別及合成技術升級,推出遠場語音交互晶片百度語音技術部高級總監高亮介紹,識別方面,百度提出流式多級的截斷注意力模型SMLTA,這是國際上首次實現局部注意力建模超越整句的注意力模型,也是國際上首次實現在線語音大規模使用注意力模型。SMLTA在大幅提升識別速度的同時,也提高了識別準確率。
  • 一種基於地面遙感延時圖像的咖啡花識別方法
    10月,Plant Phenomics刊發了浙江大學遙感與信息技術應用研究所題為」Coffee Flower Identification Using Binarization Algorithm Based on Convolutional Neural Network for Digital Images「的研究論文,本文介紹了一種基於地面遙感延時圖像的咖啡花識別方法
  • 今日Paper|隨機微分方程;流式自動語音識別;圖像分類等
    此外,作者將其方法與基於梯度的隨機變分推斷相結合,以解決潛在的隨機微分方程。 作者使用這種方法來擬合由神經網絡定義的隨機動力學,從而在50維運動捕獲數據集上實現競爭性能。使用轉換器模型進行流式自動語音識別論文名稱:Streaming automatic speech recognition with the transformer model作者:Moritz Niko /Hori Takaaki /Roux Jonathan Le發表時間:2020/1/8論文連結:https://paper.yanxishe.com
  • 大熱的麥克風陣列語音識別系統的設計和輕鬆實現,提供軟硬體解決方案
    1、研究方案1.1 總統研究方案當前基於隱馬爾可夫模型(HMM)的麥克風陣語音識別系統,主要包括陣列信號處理和特徵識別兩個階段,原理圖如圖1.1所示:是基於語言模型的經驗值,而假設似然概率的計算則基於識別系統的統計模型。本文聯合空時處理和語音識別過程,目的就在於搜索出一組FIR濾波器參數矢量
  • 基於DL的中文語音識別系統ASRT開源
    2月11日消息,一套基於深度學習實現的語音識別系統ASRT(全稱Auto Speech Recognition Tool),由AI檸檬博主開發並在GitHub上開源(GPL 3.0 協議)。本項目聲學模型通過採用卷積神經網絡和連接性時序分類方法,使用大量中文語音數據集進行訓練,將聲音轉錄為中文拼音,並通過語言模型,將拼音序列轉換為中文文本。
  • 基於嵌入式Linux的語音識別系統硬軟體設計
    本文引用地址:http://www.eepw.com.cn/article/278135.htm  1.引言  語言是人類傳播信息的重要手段,語音識別則是實現語音控制的關鍵技術。採用嵌入式語音識別技術使得設備具有功耗低、使用簡便、靈活等優點,擺脫了複雜按鍵和按鈕的困擾,在服務機器人、智能家居及消費電子等領域發揮著重要作用。
  • 語音識別算法有哪些_語音識別特徵提取方法
    第一種:基於動態時間規整(Dynamic Time Warping)的算法   在連續語音識別中仍然是主流方法。   該方法的運算量較大,但技術上較簡單,識別正確率高。   在小詞彙量、孤立字(詞)識別系統中,也已有許多改進的DTW算法被提出。例如,利用頻率尺度的DTW算法進行孤立字(詞)識別的方法。
  • AI浪潮下,語音識別建模技術的演進 | 雷鋒網公開課
    這種方法儘管取得了非常低的誤喚醒率,但是缺點也很明顯,喚醒詞無法自定義,因此知音引擎中,我們使用DNN提取Bottleneck Feature,用於基於HMM的喚醒模型訓練,較傳統基於MFCC的方式也取得了較好的效果。
  • 基於DSP的漢字語音識別系統的實現方式解析
    語音識別是機器通過識別和理解過程把語音信號轉變為相應的文本文件或命令的高技術。作為專門的研究領域,語音識別又是一門交叉學科,它與聲學、語音學、語言學、數位訊號處理理論、資訊理論、計算機科學等眾多學科緊密相連。語音識別經過四十多年的發展,已經顯示出巨大的應用前景。本文從實現原理入手,介紹語音識別系統的實現方式。
  • Transformer在CV領域有可能替代CNN嗎?
    首先我們應該了解為什麼CNN會在圖像領域被大規模應用,我們可以從三個主要點說起,比如基於傳統的方法,基於模式識別的方法,基於深度學習的方法。 1. 另一方面,受制於數據採集的環境,設備等影響,比如光照,拍攝視角,遮擋,陰影,背景等等,這些因素會嚴重製約模型的性能,即手工設計的特徵並不具備魯棒性。 2. 基於模式識別的方法大多數是一些與機器學習相關的技術,比如隨機森林,支持向量機,感知機等。
  • 從原理入手,解析基於DSP的漢字語音識別系統的實現方式
    輸入的模擬語音信號首先要進行預處理,包括預濾波、採樣和量化、加窗、端點檢測、預加重等。語音識別系統的模型通常由聲學模型和語言模型兩部分組成,分別對應於語音到半音節概率的計算和半音節到字概率的計算。3 特徵提取目前通用的特徵提取方法是基於語音幀的,即將語音信號分為有重疊的若干幀,對每一幀提取語音特徵。
  • 基於Arduino的文本語音轉換器和語音控制燈
    語音識別技術在自動化中非常有用,它不僅可以讓您免提控制設備,還可以提高系統的安全性。除了製造語音控制小工具外,語音識別還為患有各種殘疾的人們提供了重要幫助。 在之前的帖子中,我們製作了基於Arduino的文本到語音(TTS)轉換器和語音控制燈。