本站內容均來自興趣收集,如不慎侵害的您的相關權益,請留言告知,我們將盡快刪除.謝謝.

語音識別問題的數學建模

從圖中可以看到,語言信號可以表示爲一個d T的matrix。其中,d爲向量的維度(不同的表示方法,維度不一樣), T爲向量的個數。 同理,文本也可以表示爲一個V N的matrix,N表示組成text的token(不同的表示方法,token的含義不一樣)的個數,V表示token集合的大小(即token去重後的數量)。 語音信號的預處理通常採用重疊的稠密採樣機制,通常T >> N。語音識別問題的輸入輸出都是matrix,輸入vector及輸出token的選取,不同的算法有不同的方式。整體來看,語音識別問題就是一個Seq2Seq的變換問題

輸出Token有哪幾種選擇

簡單的說,有以下五種選擇:

Phoneme 發音的最小單位

將語音信號轉化爲Phoneme之後,還需要進一步將Phoneme信號轉化爲Text。所以該方法並不是end-to-end的,需要後處理步驟。那幺如何將Phoneme轉化爲Text呢?需要用到一個詞表,我們通常稱之爲Lexicon。形式如下

以英文爲例:該表包含了所有單詞的Phoneme表示,英文單詞有多少個,該表就有多少行。可想而知,表的條目是很多的。通過查表,我們才能進一步將Phoneme轉化爲text

對於英文和中文來說,這種token的選取方式都是適用的,英語有音標,漢語有漢語拼音。兩者的Phoneme集合和Lexicon不一樣

Grapheme 書寫的最小單位

對於英文來說,Grapheme指的就是26個英文字母;對於中文來說,Grapheme指的就是約4000+個常用漢字。由於在英文書寫系統中,包括了標點符號和空格,所以,實際的英文Grapheme集合的數量爲26(英文字母,不區分大小寫)+ 1(空格)+ 12(常用標點符號)。中文Grapheme集合的數量爲3755(一級漢字)+ 3008(二級漢字)+ 16(標點符號)

值得一提的是,這種選取方式是Lexicon free的,它不需要語音學家的幫忙來制定複雜專業的Lexicon; 從流程上來看,做到了end-to-end

Word 單詞

對於中文和英文來說,都有詞的概念。英文裏面,’a’爲一個字符,’and’爲一個單詞;中文裏面,”中”是一個漢字,”中國”是一個詞

英語單詞個數在17萬~100萬之間,一個普通美國大學生懂的單詞大概有3萬個,經常使用的詞彙約3000-5000個左右。漢語約有詞語36萬個,常用詞語約爲28770個

Morepheme 單位大於Grapheme,小於word,是組成單詞的最小有意義的單元

這種表示方式存在於英語、土耳其語中。但凡有詞根、詞綴的語言,都可以用這種表示方 式。中文是沒有這種表示方式的,中文只有漢字和詞語,並沒有詞根、詞綴

顯然,從通用性的角度來說,這種表示方式不是很好

Bytes 世界上所有的字符都有對應的utf-8編碼,字符集其實就是Byte集

這種表示方式,一個顯而易見的好處就是,它是language independent的!如果能夠work的話,General Speech Recognition就得以實現。另外,由於一個Byte只有256個取值,因此Bytes集合並不會像word集合那幺大。看起來,確實非常有前景!

哪種輸出Token的選取方式比較好呢?

好不好依賴於語言,依賴於實際問題,也依賴於算法,沒法一言概括。但某些方式的弊端卻是顯而易見的:Phoneme方式,需要lexicon的輔助,並不是end-to-end的;word方式,token集合的個數通常 > 100k,解碼複雜;Byte方式,想做到大一統,需要的訓練語料必然異常龐大;Morpheme,只適用於某些有詞根、詞綴的語種,中文即不適用

那幺,目前最新的研究中,一般是如何選取的呢?

通過對19年語音識別頂會100多篇論文的分析,得到了上圖。可以看到,使用grapheme方式的人是最多的,佔到了41%;使用phoneme的也有不少,約爲32%, 而使用word和 morpheme的人則分別只有10%和17%

輸入Token有哪幾種表示方式

其實,語音信號可以表示爲2維矩陣,也可以表示爲1維向量,不過從實際應用來看,表示爲2維矩陣的比較多

語音信號的一維表示方式如下: 以一段1s, 16kHz採樣, 8bit量化的語音信號爲例,它可以表示爲一個長度爲16000的向量,向量中每個元素的取值爲[-128, 127]

語音信號的二維表示方式如下:一段語音信號由若干幀組成,每一幀對應25ms的語音信號,幀與幀之間的步長爲10ms. 假設一段語音信號時長爲1s, 則 T = 1s / 10ms = 100. 每一幀經過運算,得到一個dimension爲d的vector. 計算方法不同,則得到的單幀向量的含義、維度也不一樣

常用的表示方式有如下三種:

Raw:不做任何處理,d=400

MFCC:計算其MFCC值,d=39

Filter bank output:計算其Filter bank output值,d=80

輸入vector選取哪種方式比較好

通過對19年語音識別頂會100多篇論文的分析,得到下圖

目前來看,MFCC已成昨日黃花,filter bank output大有一統江湖之勢

相關文章