投影片:http://speech.ee.ntu.edu.tw/~tlkagk/courses/DLHLP20/ASR%20(v10).pdf
1969 年,文章:語音辨識應該何去何從 ~ J.R. PIERCE (電晶體發明人) 為語音辨識下評論,當時懷疑語音辨識是否可能成真,把語音辨識和水變汽油、大海中濤金、治療癌症與登上月球,但今天已經能在每個人的手機中實現。
輸出文字:為 token 的 sequence,長度為 N,V 種不同 tokens
T 遠比 N 還大
輸出:文字想像成一個一個 Token,Token 有多種樣貌,常用的其中一種叫做 Phoneme
Phoneme:發音的基本單位 (可想像成音標,但有些音標超一個 Phoneme),但 Phoneme 人看不懂所以要一個 Lexicon (詞典) 記錄文字和 Phonemes 的關係,如 cat 有三個 Phonemes 組成。在機器學習還未發達前,Phoneme 是常見的選擇,缺點是需要一個 Lexicon 由懂語言學的人來建立,而一個語言有哪些 Phoneme 更不是一般人容易取得。
Grapheme :第二種單位,為書寫的基本單位,即英文字母,把字母當 Token 不足因為需要空白分隔單字,還要有標點符號,則英文的 Token 至少 > 26,以 one punch man 來看這句就有 13 個 token,中文可用全型字做為 Token,而中文的字一般常用為 4000 (康熙字典超過一萬),而中文是沒有空白的。Grapheme 好處:1) 新的語言用 Grapheme 做 Token 只收集該語言的字就能做語音辨識,2) 某些辭彙沒在訓練資料也可期待機器靠聽力拼出辭彙 (可能指像是學過羅碼拼音,不會的就用羅碼拼音先表示,之後再找出文字是羅碼拼音的是什麼字) 。缺點 : 1) ㄎ的音在英文可能是 [k] or [c],則模型需要能靠上下文, 2) 機器自己學會辭彙有哪些 Grapheme ,可能拼錯字,較難有風險。
最狂的方法,以 Bytes 做單位,每一個符號都可以用 UTF-8 表示,把所有不同語言、符號都用 Bytes Sequence 來描敘他,語音辨識的輸出即可是 Language Independence,也許不同單位適用於不同語言,但用 bytes 他即 Language Independence,聽到中文語音轉成 UTF-8,再查表後轉成文字,且 Token 的 size 不會太大 (V is always 256),藍色 ICASSP'19 的文章即是這樣使用 link。
Token 統計表由 INTERSPEECH'19, ICASSP'19, ASRU'19, ASLT 發表的論文統計使用的 Token ,最多用的是 Grapheme,收集語言的文字即可得知,不需要找語言學家,第二是 Phoneme 與聲音之間關係較明確,接續 Morpheme 和 Word
其他語音辨識輸出的想法:
1. 用聲音訊號,直接轉 Word Embeddings (詞向量)
2. 語音和翻譯直接結合
3. 語音輸入後,透過語音辨識去判段你的意圖
4. 語音辨識和 Slot filling (給段文字判斷哪些東西是你要的) ,如買票的對話要知時間和地點
語音辨識輸入的部份,為一向量的序列,長度為 T,高度為 d,一段聲音訊號取一段 window 長度為 25 milliseconds,用一個向量來描敘這 25 milliseconds 的特徵,稱為 frame 音框,有什麼方法來描敘他:
1. 在 16KHz 的音訊檔,25 ms 的 window 內會有 400 sample points 與數值,排成一排向量 (不建議)
2. Deep Learning 未流行前會用 MFCC 39 dimension (未細講)
3. 目前流行的是 filter bank output 有 80 dimension (維)
取樣時,移動 window 時一次只移 10 ms,是有重疊,1 s 會有 100 個 frames。
硬 Training 一發最重要的是收集資料,大量聲音訊號以及文字標駐,要多少才足夠,以下列出英文常用來訓練的語音資料庫,最小 TIMIT,最大 Fisher,Librispeech 為免費可以下載,TIMIT 小 (類似語音的 MNIST 手寫數字辨識) 分期確認自己的模型是否可行。
假想圖型的訓練集為音訊,比較看看音訊與圖像常用的訓練集大小差別:MNIST 的數據為 28*28*1*60000 (長 * 寬 * 單色 * 訓練集),語音是每一秒中有 16K 的 Sample point,即 1 秒中有 16000 個數字,如果把 MNIST 當音訊看 (最後都是轉成一個連續數字的向量),長度只有 49 分鐘,是 TIMIT 1/4 再更小。CIFAR-10 的圖是 32*32*3*50000,換算後約 2 小時 40 分鐘,都小於 TIMIT。最後是 google / FB 發表的文獻上說明使用的音訊長度,但教授認為至少實際上數據量使用至少大於十倍。
接下來會從 Seq-to-seq 開始說起,如何一步步進行改造,以及 HMM 的說明
分享五個模型,LAS (Seq-to-Seq 大家熟悉的 model)、CTC 和 RNN-T 為常用的模型,較新的是 Neural Transducer 和 Monotonic Chunkwise Attention,以下為 19 年大家愛用的模型,LAS + CTC 也可進行,RNN-T 還未有大量文件因此未來可能大量成長,HMM-hybrid 為 HMM + Deep Learning。
沒有留言:
張貼留言