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


深度學習與人類語言處理課程筆記,上節回顧深度學習與人類語言處理-introduction。這節課將會簡單介紹語音識別的最新研究方法,請看正文


語音識別該何去何從?

1969年,J.R. PIERCE:“語音識別就像把水變成汽油、從大海中淘金、治療癌症、人類登陸月球”

當然,這是50年前的想法,那么語音識別該如何做呢?

一個典型的語音識別系統如下,輸入一段語音到模型,模型輸出一段文本

Speech:表示一個長度為T,維度為d的向量序列
Text:一個token序列,長度為N,V個不同的token,通常T>N

接下來看看輸入可以有哪些可能,輸出有哪些可能,首先看下輸出部分

輸出Token

  • 音位(phoneme,發音的基本單位)

在深度學習沒有流行之前,以音位為輸出是很常見的,因為音位和聲音的對應關系比較強,那輸出是一系列音位,怎么變成我們能看懂的文字呢?需要一個詞典,需要語言學家標出來,音位同樣也需要語言學家幫忙

  • 字母(Grapheme,書寫的基本單位)
  1. 英文(基本書寫單位:字母)

總的token:26個英文字母+一個空格+標點符號

one_punch_man;N=13,V=26+?
  1. 中文(基本書寫單位:單個漢字)

總的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編碼表示:

那么哪個Token最受歡迎呢,統計了19年語音三大頂會paper ( INTERSPEECH’19, ICASSP’19, ASRU’19 )。發現最多人使用的是grapheme

除了上述形式,還有哪些輸出呢?

  1. 輸入語音,輸出word embedding
  2. 和翻譯系統結合,直接輸出另一種語言文本
  3. 加入意圖識別,輸出對應的意圖
  4. 輸出輸入中所包含的關鍵詞

輸入部分(聲學特征,acoustic feature)

對輸入的聲音信號,使用25ms的時間窗取出一個frame,對應就有400個采樣點(16KHz)(使用MFCC會得到39維向量、filter bank輸出是80維),通常的每個時間窗的間隔為10ms,那么1s內就有100個frame,如何處理每個frame呢,請看下圖

輸入聲音信號 經過 離散傅里葉變換 變成 頻譜圖,經過多個不同的 filter bank (古聖先賢們設計出來的) 處理后, 得到向量 使用對數變換,經過 離散余弦變換,使用MFCC方法得到向量

同樣我們看下哪種輸入信號最受歡迎,19年filter bank成為主流

  • 訓練一個語音識別系統需要多少數據?

很多很多,google語音識別系統用了上十萬的語音數據。。。

語音識別模型的兩個不同的角度

seq-to-seq將要被介紹的模型

  • Listen, Attend, and Spell (LAS)
  • Connectionist Temporal Classification (CTC)
  • RNN Transducer (RNN-T)
  • Neural Transducer
  • Monotonic Chunkwise Attention (MoChA)

同樣我們看下,19年的趨勢

下節課。我們將會依次介紹上述提到的模型
接下來深度學習與人類語言處理-語音識別(part2)

references:

http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM