模型:
模型是用來描述一些數(shù)學對象的。這些數(shù)學對象描述了一些口語的共同屬性。在實際應用中,senone的音頻模型就是三態(tài)高斯混合模型。簡單的說,它就是一個最有可能的特征向量。對于模型,有幾個問題需要考慮:模型到底多大程度上可以描述實際情況?在模型本身的局限情況下模型能表現(xiàn)得更優(yōu)嗎?自適應模型如何改變條件?
匹配算法:
語音識別需要對所有的特征向量和所有的模型做比較匹配,這是一個非常耗時的工作。而在這方面的優(yōu)化往往是使用一些技巧,在每一點的匹配時,我們通過保留最好的匹配variants,然后通過它在下一幀產生最好的匹配variants。?
聲學模型acoustic model:
一個聲學模型包含每個senone的聲學屬性,其包括不依賴于上下文的屬性(每個音素phone最大可能的特征向量)和依賴于上下文的屬性(根據(jù)上下文構建的senone)。
語音學字典phonetic dictionary:
字典包含了從單詞words到音素phones之間的映射。
字典并不是描述單詞words到音素phones之間的映射的唯一方法。可以通過運用機器學習算法去學習得到一些復雜的函數(shù)去完成映射功能。
語言模型 language model:
語言模型是用來約束單詞搜索的。它定義了哪些詞能跟在上一個已經(jīng)識別的詞的后面(匹配是一個順序的處理過程),這樣就可以為匹配過程排除一些不可能的單詞。大部分的語言模型都是使用n-gram模型,它包含了單詞序列的統(tǒng)計。和有限狀態(tài)模型,它通過有限狀態(tài)機來定義語音序列。有時候會加入權值。為了達到比較好的識別準確率,語言模型必須能夠很好的約束空間搜索,也就是說可以更好的預測下一個詞。語言模型是約束詞匯包含的單詞的,這就出現(xiàn)一個問題,就是名字識別(因為名字可以隨便由幾個單詞組成)。為了處理這種情況,語言模型可以包含更小的塊,例如亞單詞,甚至音素。但是這種情況,識別準確率將會低于基于單詞的語言模型。
特征、模型和搜索算法三部分構成了一個語音識別系統(tǒng)。如果你需要識別不同的語言,那么就需要修改這三個部分。很多語言,都已經(jīng)存在聲學模型,字典,甚至大詞匯量語言模型可供下載了。
其他用到的概念
網(wǎng)格Lattice是一個代表識別的不同結果的有向圖。一般來說,很難去獲得一個最好的語音匹配結果。所以Lattices就是一個比較好的格式去存放語音識別的中間結果。
N-best lists和lattices有點像,但是它沒有l(wèi)attices那么密集(也就是保留的結果沒有l(wèi)attices多)。(N-best搜索和多遍搜索:為在搜索中利用各種知識源,通常要進行多遍搜索,第一遍使用代價低的知識源(如聲學模型、語言模型和音標詞典),產生一個候選列表或詞候選網(wǎng)格,在此基礎上進行使用代價高的知識源(如4階或5階的N-Gram、4階或更高的上下文相關模型)的第二遍搜索得到最佳路徑。)
單詞混淆網(wǎng)絡是從lattice的邊緣得到的一個嚴格的節(jié)點順序序列。
語音數(shù)據(jù)庫-一個從任務數(shù)據(jù)庫得到的典型的錄音集。如果我們開發(fā)的是一個對話的系統(tǒng),那么數(shù)據(jù)庫就是包含了多個用戶的對話錄音。而對于聽寫系統(tǒng),包含的就是朗讀的錄音。語音數(shù)據(jù)庫是來用訓練,調整和測試解碼系統(tǒng)的(也就是語音識別系統(tǒng))。
文本數(shù)據(jù)庫-為了訓練語言模型而收集的文本。一般是以樣本文本的方式來收集形成的。而收集過程存在一個問題就是誤把PDFs, web pages, scans等現(xiàn)成文檔也當成口語文本的形式放進數(shù)據(jù)庫中。所以,我們就需要把這些文件帶進數(shù)據(jù)庫里面的標簽和文件頭去掉,還有把數(shù)字展開為它們的語音形式(例如1展開為英文的one或者漢語的yi),另外還需要把縮寫給擴大還原為完整單詞。
語音的優(yōu)化
隨著語音識別技術的發(fā)展,最復雜的難題是如何使搜索(也就是語音解碼,可以認為是需要匹配盡可能多的語音變體)更加準確和快速。還有在模型并不完美的前提下如何匹配語音和模型。
一般來說系統(tǒng)需要通過一個測試數(shù)據(jù)庫來驗證準確性,也就是是否達到了我們的預定目標。
我們通過以下幾個參數(shù)來表征系統(tǒng)的性能:
單詞錯誤率:我們有一個N個單詞長度的原始文本和識別出來的文本。(對單詞串進行識別難免有詞的插入,替換和刪除的誤識)I代表被插入的單詞個數(shù),D代表被刪除的單詞個數(shù),S代表被替換的單詞個數(shù),那么單詞錯誤率就定義為:WER = (I + D + S) / N
單詞錯誤率一般通過百分百來表示。