機器學習&數據挖掘筆記_13(用htk完成簡單的孤立詞識別)


 

  最近在看圖模型中著名的HMM算法,對應的一些理論公式也能看懂個大概,就是不太明白怎樣在一個具體的機器學習問題(比如分類,回歸)中使用HMM,特別是一些有關狀態變量、觀察變量和實際問題中變量的對應關系,因此目前急需一個實際例子來加深對HMM算法的仰慕,大家如有好的例子來具體學HMM算法的話,歡迎分享!眾所周知,著名的HMM開源庫為Hidden Markov Model Toolkit(以下簡稱HTK),而HTK在語音識別領域應用很成功,這2天花了些時間學習了HTK的使用,完成的是最簡單孤立詞的識別,即Yes、No的語音識別,網上這方面的教程縱多,見參考資料部分。

  當然了,進行實驗的前提是正確安裝HTK,安裝過程可以結合HTK目錄下(HTK解壓后所在目錄)的readme文件和文章windows下安裝編譯HTK語音識別工具包

我主要是參考文章語音識別工具箱之HTK安裝與使用中的步驟來完成Yes/No語音識別的,大概的步驟和博主的差不多(這里不再重現該過程,因為這方面資料實在太多),下面主要講下一些細微的需要注意的地方:

  1. 錄音的原文件不能太少,不然在進行HMM初始化時很容易報錯。我這里Yes和No都錄的是25次。

  2. 在用HSLab.exe錄音時,由於這個小軟件實在是不太好用,有些bug。每次錄完2個音,把它標注好,重命名(即手動命名,按照一定順序,不要重名,下次錄音前需把該軟件給后重新打開,否則即使你是重新new了一個文件后錄的音,在你標注音頻文件后保存文件時該軟件很有可能會把以前標注過的音頻信息給重復過來,這樣在后面的HInit 步驟會老出錯。因此,在每次標注音頻文件.lab時,一定要保證其標注的信息只對應一個音頻文件.sig。注意標注時,htk時間后面的單位是10us,轉換成秒時需要除以10^7.

  3. 在進行Hcompv步驟時,只需運行一次來得到vFloors文件(不需要對yes,no,sil分別運行)。

  4. 如果在HRest步驟出現與vFloors有關的錯誤,則可以在HRest命令中省去與vFloors相關的內容,這樣一般不太會影響后面HMM的訓練和識別。

  5. 在HParse步驟時,在建立gram.txt文件時,文件的最后要有一個空行,否則HParse步會一直失敗。

  其它方面基本按照語音識別工具箱之HTK安裝與使用就可以了。另外,還HTK (v.3.1): Basic Tutorial和htkbook也是非常好的參考資料。

  由實驗可知,這里每個單詞都定義為一個HMM模型,HMM模型中狀態的個數是人為先驗設定的,這里統一采用4個(狀態數可以不相同),每個狀態的實際含義大致是該單詞發音的聲母、韻母等(也不一定嚴格對應),多個狀態的序列構成了一個單詞。每個狀態的輸出(即觀察變量)為GMM的參數向量,這些參數向量的長度和訓練語音斷的MFCC特征長度一致,這里都是39維。

 

  參考資料:

     語音識別工具箱之HTK安裝與使用

     利用HTK工具包快速建立一個語音命令識別系統 

     基於HTK語音工具包進行孤立詞識別的使用教程

     HTK工具搭建識別器的總體框架

     windows下安裝編譯HTK語音識別工具包

     HTK (v.3.1): Basic Tutorial.pdf

     htkbook.pdf

     http://htk.eng.cam.ac.uk/

 

 

 

 


免責聲明!

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



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