Chapter1-1_Speech_Recognition(Overview)
文章目錄
- 1 古人看語音辨識
- 2 什么是語音辨識
- 2.1 輸出部分 - Token
- 2.2 輸入部分 - 聲音信號特征
- 3 數據集
- 4 模型
本文為李弘毅老師【Speech Recognition - Overview】的課程筆記,課程視頻youtube地址,點這里👈(需翻墻)。
下文中用到的圖片均來自于李宏毅老師的PPT,若有侵權,必定刪除。
文章索引:
下篇 - 1-2 LAS
總目錄
1 古人看語音辨識
50年前的人們是如何看待語音辨識的?有一位比較有權威的人物認為語音辨識就像是把水變成汽油,從海底撈金,治愈癌癥或者登上月球。該觀點也讓那個時代的許多人放棄了進行語音辨識方向的相關研究。
而如今,已經無需置疑語音辨識的可行性,幾乎每一只手機里都有著語音辨識。
2 什么是語音辨識
簡而言之,語音辨識就是輸入一段聲音信號,經過模型處理后,輸出對應的文字信息。
其中的輸入的聲音信號是由TTT個長度為ddd的vector組成,而輸出的文本則是NNN個token,token的種類會被限制,種類的數量為vvv,可以理解為一個大小為vvv的詞庫。通常來說,TTT要遠大于NNN。
2.1 輸出部分 - Token
目前被使用的token可以歸為五類:
- Phoneme: 發音的基本單元
- Grapheme: 書寫的基本單元
- Word: 詞
- Morpheme: 語義的基本單元
- Byte: 字節😲
Phoneme可以看成是音標,比如英文可以轉化成如下的樣子。在深度學習還不怎么流行的時候,Phoneme是一個不錯的選擇,因為它和聲音的關系十分直接,但它有一個缺點就是在模型得到Phoneme之后,還需要將其再轉換成word,這需要額外的語言學知識。
Grapheme是書寫的基本單元,比如在英文當中就是字母。當然,對于模型來說,只有字母是不夠的,還需要有空白符,甚至需要一些標點符號。在中文當中,Grapheme就是方塊字,中文和英文不同的在于,中文不需要空白符。Grapheme有一個好處就是,它不需要額外的語言學知識,模型的輸出即是最終的結果。不過,Grapheme對模型來說也是一個挑戰,因為它和聲音信號之間沒有直接的關系。
Word就是詞匯,對于英文來說,用空格分隔的就是一個Word,但對中文來說就不太好分了。用Word來做是一個不推薦的選擇,因為對于語言來說Word實在是太多了!
Morpheme是可以傳達語義的最小單位,它比Word要小,比Grapheme要大。如下圖就是幾個例子,但Morpheme的定義也比較模糊,局限性很大。
還有一種很狂的方法,就是直接用Byte!比如所有的語言都用UTF-8來表示,這樣就不需要考慮是什么語言了。個人認為這是一種特殊的Grapheme。
李宏毅老師的助教們收集了2019年INTERSPEECH’19, ICASSP’19, ASRU’19中超過100篇論文中使用token的比例,如下圖所示,感謝助教們!👍
2.2 輸入部分 - 聲音信號特征
通常利用滑窗法將聲音信號變為一個T×dT \times dT×d的向量。如下圖所示,我們使用長度為25ms的窗口,在一個16KHz的的聲音信號上進行滑動,每次滑動的間隔為10ms,得到的截片被稱為是frame,那么一個1s的聲音信號就可以被分為100個frames(T=100T=100T=100)。每個frame中有400個采樣點,可以直接使用這400個點的數值作為這個frame的特征(d=400d=400d=400),但不推薦這樣做。目前都會采用MFCC(d=39d=39d=39)或者filter bank output(d=80d=80d=80)的方法將這個原始信號進行轉換。
聲音信號在進行特征抽取時,需要進行多個變換,每一個步驟得到的結果都可以直接被用于模型的輸入。離散傅里葉變換將原始聲音信號轉換成頻譜圖,據李老師說,可以用人眼從頻譜圖中看出來這個信號是什么🙈!得到頻譜圖后,對其進行采樣,經過多個設計過的filter,得到了filter bank output的特征結果,一般會取一個log。log的結果再進行離線余弦變換后可以得到MFCC的特征結果。
同樣地,辛勤的助教們也在2019年INTERSPEECH’19, ICASSP’19, ASRU’19中統計了使用的輸入信號特征的結果。再次感謝助教們!👍
3 數據集
語音辨識的一些公開數據集如下圖所示,用于商業的模型使用的數據集是遠大于下面的數據集的。
4 模型
本課程會介紹的語音辨識模型有如下幾種:
- Listen, Attend, and Spell (LAS) (2015)
- Connectionist Temporal Classification (CTC) (2006)
- RNN Transducer (RNN-T) (2012)
- Neural Transducer (2016)
- Monotonic Chunkwise Attention (MoChA) (2018)
而目2019年的論文中,各個模型的使用情況如下如所示:
總結
以上是生活随笔為你收集整理的Chapter1-1_Speech_Recognition(Overview)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala 入门2(数组、List、Se
- 下一篇: LeetCode 1852. 每个子数组