ASR語音識別筆記總結

基本原理

語音識別(Automatic Speech Recognition),一般簡稱ASR;是將聲音轉化爲文字的過程,相當於人類的耳朵。

文本w 發音S 音素q 特徵向量v

文本|發音 直觀左右等價再展開多事件貝葉斯 音素 | 特徵向量

文本|發音 ----> 文本 | 特徵向量 ----> 文本, 音素|特徵向量 ----> (貝葉斯) **p(特徵向量|音素)p(音素|文本)p(文本)

語音識別原理流程:“輸入——編碼——解碼——輸出”

這裏寫圖片描述

大體可分爲**“傳統”識別方式與“端到端”識別方式,其主要差異就體現在聲學模型上**。

“傳統”方式的聲學模型一般採用隱馬爾可夫模型(HMM),而“端到端”方式一般採用深度神經網絡(DNN)

聲學模型

如上圖所示,原始語音信號S(不穩定信號所以要交叉分幀),切割成多個短時的近似平穩信號後,經過特徵提取轉換成特徵向量V, 聲學模型就是對該特徵向量的一種建模。

(1)混合聲學模型–都是爲了算HMM中的發射概率矩陣

混合高斯-隱馬爾科夫模型 GMM-HMM詳解

深度神經網絡-隱馬爾科夫模型 DNN-HMM

深度循環神經網絡-隱馬爾科夫模型 RNN-HMM

深度卷積神經網絡-隱馬爾科夫模型 CNN-HMM

(2)端到端的聲學模型

連接時序分類-長短時記憶模型CTC-LSTM

注意力模型Attention

各個模型的優缺點介紹

(1)基於GMM-HMM的聲學模型

優點:GMM訓練速度快

       聲學模型較小,容易移植到嵌入式平臺
       GMM把所有的訓練樣本學習一遍。把類似離散馬爾科夫中的發射矩陣訓練出來。也就是狀態->觀察值(可以是數,向量等)。這樣HMM再訓練自己的狀態轉移矩陣等,這樣HMM就可以用了。

缺點:GMM沒有利用幀的上下文信息

        GMM不能學習深層非線性特徵變換

(2)基於DNN-HMM模型

優點: DNN能利用幀的上下文信息,比如前後個擴展5幀

         DNN能學習深層非線性特徵變換,表現優於GMM

缺點: 不能利用歷史信息來輔助當前任務

(3)基於RNN-HMM模型:

優點: RNN能有效利用歷史信息,將歷史消息持久化

          在很多任務上,RNN性能變現優於DNN

缺點: RNN隨着層數的增加,會導致梯度爆炸或者梯度消失

(4)基於CNN-HMM聲學模型

優點:CNN對於語音信號,採用時間延遲卷積神經網絡可以很好地對信號進行描述學習

        CNN比其他神經網絡更能捕捉到特徵的不變形

語言模型

MFCC特徵提取

MFCC是在Fbank的基礎上做DCT變換,去除特徵維度之間的相關性,同時也可以起降維的作用,得到一般40維或13維梅爾頻率,現在隨着數據量的增大,這種傳統機器學習逐漸被神經網絡特徵提取代替(CLD)。

各個組件

1)語音激活檢測(voice active detection,VAD)

A)需求背景:在近場識別場景,比如使用語音輸入法時,用戶可以用手按着語音按鍵說話,結束之後鬆開,由於近場情況下信噪比(signal to noise ratio, SNR))比較高,信號清晰,簡單算法也能做到有效可靠。
但遠場識別場景下,用戶不能用手接觸設備,這時噪聲比較大,SNR下降劇烈,必須使用VAD了。

B)定義:判斷什麼時候有語音什麼時候沒有語音(靜音)。
後續的語音信號處理或是語音識別都是在VAD截取出來的有效語音片段上進行的。

3)麥克風陣列(Microphone Array)

A)需求背景:在會議室、戶外、商場等各種複雜環境下,會有噪音、混響、人聲干擾、回聲等各種問題。特別是遠場環境,要求拾音麥克風的靈敏度高,這樣才能在較遠的距離下獲得有效的音頻振幅,同時近場環境下又不能爆音(振幅超過最大量化精度)。另外,家庭環境中的牆壁反射形成的混響對語音質量也有不可忽視的影響。

B)定義:由一定數目的聲學傳感器(一般是麥克風)組成,用來對聲場的空間特性進行採樣並處理的系統。

2)語音喚醒 (voice trigger,VT)

A)需求背景:在近場識別時,用戶可以點擊按鈕後直接說話,但是遠場識別時,需要在VAD檢測到人聲之後,進行語音喚醒,相當於叫這個AI(機器人)的名字,引起ta的注意,比如蘋果的“Hey Siri”,Google的“OK Google”,亞馬遜Echo的“Alexa”等。

B)定義:可以理解爲喊名字,引起聽者的注意。
VT判斷是喚醒(激活)詞,那後續的語音就應該進行識別了;否則,不進行識別。

C)難點:語音識別,不論遠場還是進場,都是在雲端進行,但是語音喚醒基本是在(設備)本地進行的,要求更高——

4)全雙工(Full-Duplex)

A)需求背景:在傳統的語音喚醒方案中,是一次喚醒後,進行語音識別和交互,交互完成再進入待喚醒狀態。但是在實際人與人的交流中,人是可以與多人對話的,而且支持被其他人插入和打斷。

B)定義:
單工:a和b說話,b只能聽a說
半雙工:參考對講機,A:能不能聽到我說話,over;B:可以可以,over
全雙工:參考打電話,A:哎,老王啊!balabala……;B:balabala……

5)糾錯
A)需求背景:做了以上硬件、算法優化後,語音識別就會OK了嗎?還不夠。因爲還會因爲同音字(詞)等各種異常情況,導致識別出來的文字有偏差,這時,就需要做“糾錯”了。

B)用戶主動糾錯。
比如用戶語音說“我們今天,不對,明天晚上吃啥?”,經過雲端的自然語言理解過程,可以直接顯示用戶真正希望的結果“我們明天晚上吃啥”。

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