用HTK來提取語音檔案的mfcc特徵

2021-09-23 20:33:34 字數 1357 閱讀 2305

一 htk簡介

htk(hmm tools kit)是乙個劍橋大學開發的專門用於建立和處理hmm的實驗工具包[1],主要應用於語音識別領域,也可以應用於語音合成、字元識別和dna排序等領域。htk經過劍橋大學、entropic公司及microsoft公司的不斷增強和改進,使其在語音識別領域處於世界領先水平,另外,htk還是一套源**開放的工具箱,其基於ansi c的模組化設計方式可以方便地嵌入到使用者系統中。

二 htk的使用方法

htk目錄結構

htk是乙個開源的軟體,解壓之後的目錄如下:

此外,幾個重要的檔案說明如下:

env:編譯的環境變數設定。

hlmlib:hmm語言模型庫。

hlmtools:hmm語言模型工具。

htkbook:開發幫助文件。

htklib:htk的聲學庫檔案。

htktools:htk的聲學開發工具。

對於聲學部分來說,比較重要兩個資料夾是後面的兩個資料夾。

htk原理

htk軟體的體系結構如下圖所示:

整個htk是使用hmm作為語音識別的核心,當hmm應用於孤立詞語音識別時,它用不同的隱含狀態來描述不同的語音發音,對於連續語音識別系統,多個孤立詞hmm子模型按一定的語言模型組成的復合hmm模型序列來刻畫連續的語音頻號,在序列中每個模型直接對應於相關的發音,並且每乙個模型都有進入和退出狀態,這兩個狀態沒有對應的觀察向量,只用於不同模型的連線。

上圖中的 htk tool周邊的一些庫都是htklib,這些庫是語音頻號處理時必須的資源或者通用庫檔案,htk tool正是利用htklib資料夾中的庫檔案(如hmem,hsigp等庫檔案),鏈結生成一些可執行程式。如hsigp庫完成訊號的預加重,訊號加窗,fft等方面的計算。

htk工具使用

htk工具的使用主要分布在使用過程中的四個階段:

1.資料準備;

2.模型訓練;

3.模式識別/結果測試;

4.模型分析

如圖所示:

每乙個htk命令列工具都在特定的階段完成特定的任務。整個入口就是原始的聲音檔案和對聲音檔案的文字記錄資訊。

恩,後續再補。。。

用file來識別檔案的編碼方式

以前其實也有些類似的需求,就是需要判斷乙個檔案的編碼方式到底是什麼,知道file命令可以,但是遇到某些檔案,比如php它只會顯示這是乙個php檔案,並不會顯示它的編碼方式。今天又重新遇到這個問題,因此仔細看了一下file的手冊。原來file會先根據 usr share file magic裡的一些定...

MFC下用CFile類進行檔案的寫入

因為cfile類預設是英文寫入檔案,所以如果不設定的話是不會在檔案中寫入中文的。需要進行以下設定 需加標頭檔案 include 確保能讀寫中文 tchar old locale tcsdup tsetlocale lc ctype,null tsetlocale lc ctype,t chs 在cf...

用expand命令提取系統安裝盤中的檔案

有時因為病毒修改或人為刪除了某個系統檔案,造成系統無法正常執行的時候,如果知道被修改或丟失的檔案的檔名,我們就可以試著用光碟來修復,但是修復的時間很長,我們可以直接用expand命令來提取所需要的那個檔案.其用法如下 expand r source destination expand r sour...