1. 程式人生 > >深度學習與人類語言處理-語音識別(part1)

深度學習與人類語言處理-語音識別(part1)

深度學習與人類語言處理課程筆記,上節回顧[深度學習與人類語言處理-introduction](https://www.cnblogs.com/gongyanzh/p/12485587.html)。這節課將會簡單介紹語音識別的最新研究方法,請看正文 -------------- ### 語音識別該何去何從? > 1969年,J.R. PIERCE:“語音識別就像把水變成汽油、從大海中淘金、治療癌症、人類登陸月球” 當然,這是50年前的想法,那麼語音識別該如何做呢? 一個典型的語音識別系統如下,輸入一段語音到模型,模型輸出一段文字 ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093029218-1029708106.png) ``` Speech:表示一個長度為T,維度為d的向量序列 Text:一個token序列,長度為N,V個不同的token,通常T>N ``` 接下來看看輸入可以有哪些可能,輸出有哪些可能,首先看下輸出部分 ### 輸出Token - 音位(phoneme,發音的基本單位) 在深度學習沒有流行之前,以音位為輸出是很常見的,因為音位和聲音的對應關係比較強,那輸出是一系列音位,怎麼變成我們能看懂的文字呢?需要一個詞典,需要語言學家標出來,音位同樣也需要語言學家幫忙 ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093041318-633675441.png) - 字母(Grapheme,書寫的基本單位) 1. 英文(基本書寫單位:字母) 總的token:26個英文字母+一個空格+標點符號 ``` one_punch_man;N=13,V=26+? ``` 2. 中文(基本書寫單位:單個漢字) 總的token:常用的漢字(和英文區別在於沒有空格) ``` "一",“拳”,“超人”,“人”;N=4,V=4000+ ``` - 詞(word) 英文:one punch man;N=3,通常V>100K 中文:“一拳 ”超人“;N=2,V=? 使用詞做為輸出單位很難,因為中文沒有空格,沒有詞的明確分界,對於一些語言,V可能超大,無法窮舉 - 語素(Morpheme,可以傳達意思的最小單位,小於詞,大於字母) 例如英文中:unbreakable可以拆成 “un“ ”break“ ”able” 那語素如何獲取呢? 請語言學家告訴我們;使用統計學方法 - 位元組(bytes) 使用位元組作為輸出系統是**language independent**,不受語言限制 所有的語言都用UTF-8編碼表示: ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093059573-447928886.png) 那麼哪個Token最受歡迎呢,統計了19年語音三大頂會paper ( INTERSPEECH’19, ICASSP’19, ASRU’19 )。發現最多人使用的是grapheme ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093125084-419560899.png) 除了上述形式,還有哪些輸出呢? ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093137994-1027402083.png) 1. 輸入語音,輸出word embedding 2. 和翻譯系統結合,直接輸出另一種語言文字 3. 加入意圖識別,輸出對應的意圖 4. 輸出輸入中所包含的關鍵詞 ### 輸入部分(聲學特徵,acoustic feature) ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093219678-494845877.png) 對輸入的聲音訊號,使用25ms的時間窗取出一個frame,對應就有400個取樣點(16KHz)(使用MFCC會得到39維向量、filter bank輸出是80維),通常的每個時間窗的間隔為10ms,那麼1s內就有100個frame,如何處理每個frame呢,請看下圖 ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093230853-548273458.png) 輸入聲音訊號 經過 離散傅立葉變換 變成 頻譜圖,經過多個不同的 filter bank (古聖先賢們設計出來的) 處理後, 得到向量 使用對數變換,經過 離散餘弦變換,使用MFCC方法得到向量 同樣我們看下哪種輸入訊號最受歡迎,19年filter bank成為主流 ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093244163-2055469553.png) - 訓練一個語音識別系統需要多少資料? 很多很多,google語音識別系統用了上十萬的語音資料。。。 ### 語音識別模型的兩個不同的角度 ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093254218-2026597801.png) **seq-to-seq**將要被介紹的模型 - Listen, Attend, and Spell (LAS) - Connectionist Temporal Classification (CTC) - RNN Transducer (RNN-T) - Neural Transducer - Monotonic Chunkwise Attention (MoChA) 同樣我們看下,19年的趨勢 ![](https://img2020.cnblogs.com/blog/1043283/202003/1043283-20200315093310258-255471730.png) 下節課。我們將會依次介紹上述提到的模型,下次再見啦 references: http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP