從寒假前的部落格:語音識別系統原理介紹---從gmm-hmm到dnn-hmm,最近有時間的時候我還是在不斷的去理解gmm-hmm這個基準模型。下面我講從提玩mfcc特徵開始說起,希望可以讓你有所收穫吧。
提完mfcc特徵,就相當於剩下乙個13維*幀數的矩陣。接下來,就是用混合高斯模型了。怎麼用?就用多維的高斯模型區模擬我們得到的矩陣,相當於擬合。相當於我們假設其服從高斯分布,然後我們尋找均值和方差矩陣。可以理解為下圖吧。
我們可以看到特徵後用乙個多維高斯函式去模擬。此外,這裡還有個重要的東西,首先我們在訓練階段,我們是知道這段語音所表示的句子吧。我們通過句子,然後分詞,然後分成每個音素,在隱馬爾科夫(hmm)模型中一般用3-5個上述的單元表示乙個音素。簡單的理解就是我們每個音素的均值和方差矩陣知道,通過我們的句子我們也知道每個音素間的轉移概率矩陣。當然,這些是hmm裡的事情。提取特徵後的第一步就完成了,簡單的說就是為了擬合多維高斯函式。再貼兩個圖,便於理解:
下面繼續說,接下來就得說隱馬爾科夫模型了。如果你不清楚,建議你去看《hmm最佳學習範例》。
一開始,我們設定每個音素的均值和方差分別為0和1,轉移概率矩陣在htk裡也是可以設定兩頭小中間大,這個對於5個狀態的hmm,即每個音素分為5個狀態。這步就是初始化hmm。
然後,生成各個音素的hmm。這個可以根據發音字典和原始的hmm來生成。
最後,我們根據訓練資料來訓練音素級的hmm。這裡用到hmm的三大問題。通過訓練,我們會得到三個引數:初始狀態概率分布π、隱含狀態序列的轉移矩陣a(就是某個狀態轉移到另乙個狀態的概率觀察序列中的這個均值或者方差的概率)和某個隱含狀態下輸出觀察值的概率分布b(也就是某個隱含狀態下對應於)。
有人總結了語音識別就分為三步:第一步,把幀識別成狀態(難點)。第二步,把狀態組合成音素。第三步,把音素組合成單詞。第一步可以當做gmm做的,後面都是hmm做的。如果你能把單詞識別出來,那句子也就很簡單了。當然,識別句子就會有語言模型的作用。
今天先說這裡吧,hmm具體的怎麼操作,我想你應該可以理解了點。下次,希望我可以更加的詳細的說……
此外,dnn的作用無非是為了更好的去擬合那個函式,但已經不是高斯函式了。
語音識別系統原理介紹 dnn hmm
最近看到乙個asr的課程,很不錯吧。大家有時間可以去看下 接下來就開始說dnn hmm系統吧。所謂的這個就是把之前gmm這部分換成dnn,基於這個我們可以認為,深度學習模型可以更好的去模擬我們的語音頻號吧。先上個總圖吧 看到這個圖大家應該都可以很清楚地去理解了。下面分開介紹 1.特徵部分 一般在深度...
語音識別系統搭建
搭建語音識別實驗記錄 pip 快速安裝 國內清華源 命令 pip install i 庫名 阿里映象安裝tensorflow pip install i tensorflow gpu 1.13.1語音識別系統 別人的部落格中找到可能出現的問題所在,應該設定gpu按需分配,再看本系統的執行檔案。起初,...
PocketSphinx語音識別系統的程式設計
pocketsphinx語音識別系統的程式設計 zouxy09 qq.com 關於語音識別的基礎知識和sphinx的知識,具體可以參考我的另外的博文 語音識別的基礎知識與cmusphinx介紹 article details 7941585 pocketsphinx語音識別系統的編譯 安裝和使用 a...