1

在使用HTK(隱馬爾可夫模型工具包)爲Speech to Text System創建Voxforge's tutorial之後創建MFCC時,我們需要爲我們的手機定義原型模型。我正試圖把這個文件包裹起來。HTK - HMM模型和輸入WAV文件的MFCC代表什麼?

~o <VecSize> 25 <MFCC_0_D_N_Z> 
~h "proto" 
<BeginHMM> 
    <NumStates> 5 
    <State> 2 
    <Mean> 25 
     0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
    <Variance> 25 
     1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
<State> 3 
    <Mean> 25 
     0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
    <Variance> 25 
     1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
<State> 4 
    <Mean> 25 
     0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
    <Variance> 25 
     1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 
<TransP> 5 
    0.0 1.0 0.0 0.0 0.0 
    0.0 0.6 0.4 0.0 0.0 
    0.0 0.0 0.6 0.4 0.0 
    0.0 0.0 0.0 0.7 0.3 
    0.0 0.0 0.0 0.0 0.0 
<EndHMM> 

在這種情況下,我們使用長度爲25的特徵矢量來表示HMM的每個狀態。但是,我不太明白爲什麼我們每個州都有25個「手段」和「差異」。它們代表每個特徵向量的均值和方差嗎?

此外,爲什麼我們有5個州時是3個州? <State>1<State>5是簡單的入口和出口點,所以它們不需要MeanVariance

此外,同時採取樣本wav文件,我印這下面顯示的MFCC:

0:  -15.769 -2.168 8.605 4.979 5.283 1.012 9.631 -0.619 3.622 10.977 
      5.733 3.260 44.447 -0.153 -0.281 -0.810 -1.176 0.363 -0.658 0.676 
      -1.569 1.363 -1.221 0.815 -0.759 1.427 
    1:  -18.345 -3.220 7.177 0.293 7.232 3.111 17.942 -6.957 8.197 6.579 
      9.102 -0.569 49.537 0.378 -0.337 -1.277 -1.709 0.623 -0.450 0.162 
      0.315 2.088 -1.175 0.624 0.762 1.018 
    2:  -15.244 -3.046 5.269 1.441 6.121 -3.326 8.854 -5.297 8.151 7.072 
      8.122 1.379 49.036 0.543 -0.119 -1.162 -1.263 1.261 -0.388 -0.234 
      0.816 1.195 -1.237 -0.288 1.600 0.244 
    3:  -14.143 -3.413 3.887 -1.796 7.981 0.930 10.826 3.294 11.797 7.055 
      7.661 8.011 47.243 0.613 -0.020 -0.568 -0.364 1.034 -0.165 -0.812 
      2.525 0.351 -1.670 -1.086 1.493 -0.716 
    4:  -15.156 -2.669 4.440 -0.293 11.213 0.162 12.020 -1.667 7.794 4.553 
      5.013 6.968 46.813 -0.050 -0.092 -0.050 -0.329 0.325 0.585 0.751 
      1.253 -0.008 -1.852 -0.845 0.058 -0.430 
    5:  -15.323 -3.510 4.750 -0.660 9.856 0.545 12.301 3.855 10.132 -0.511 
      5.224 4.104 47.068 0.073 0.151 0.163 -0.180 -0.186 -0.242 -0.335 
      -0.577 -0.479 -0.745 -0.167 -1.565 0.013 

對於每一個「窗口」,爲什麼我們有26個coeffieincts而不是25?他們都代表什麼?我相信:

  • 1-12是倒頻Coeffiecients
  • 14-25是三角洲係數
  • 26也是三角洲Coeffieienct第13屆數

但我不知道在每個什麼第13號這些樣本代表。它們的格式應該是<MFCC_0_D_N_Z>,如開頭顯示的原型文件中所定義的那樣,而不是HTK Manual中有很好的解釋。

  • MFCC_0:MFCC係數
  • _D:三角洲係數
  • _N:絕對能量壓抑
  • _Z:但我可以從頁80的手冊,手冊的爭取有零均值靜態Coef中。

任何解釋將不勝感激。

回答

2

此外,爲什麼我們有5個狀態是5? 1和5是簡單的入口和出口點,所以它們不需要均值和方差?

是的,邊界狀態是假的。

對於每個「窗口」,爲什麼我們有26個coeffieincts而不是25?他們都代表什麼?我相信:

MFCC類型是MFCC_0_DTutorial step 5,所以那些是13次和13次三角洲。您還可以使用HList -o -h打印的精確佈局:

---------------------------------- Source: ar-03.mfc ----------------------------------- 
    Sample Bytes: 52  Sample Kind: MFCC_D_C_K_0 
    Num Comps:  26  Sample Period: 10000.0 us 
    Num Samples: 648  File Format: HTK 
-------------------------------- Observation Structure --------------------------------- 
x:  MFCC-1 MFCC-2 MFCC-3 MFCC-4 MFCC-5 MFCC-6 MFCC-7 MFCC-8 MFCC-9 MFCC-10 
     MFCC-11 MFCC-12  C0 Del-1 Del-2 Del-3 Del-4 Del-5 Del-6 Del-7 
     Del-8 Del-9 Del-10 Del-11 Del-12 DelC0 

類型的存儲在MFC文件功能可能來自於HMM訓練使用的功能類型不同,HMM特徵從MFC計算上根據飛proto規格,所以在你有的磁盤上,當你計算時,你可以通過降低能量和規格化平均值,將它轉換成25個係數MFCC_0_D_N_Z

我不太明白爲什麼我們每個州有25個「手段」和「差異」。它們代表每個特徵向量的均值和方差嗎?

均值和方差是每個HMM狀態的HMM發射分佈的高斯參數,它們不是特徵向量的均值。檢查HMM是什麼。

+0

哦好吧。在26個係數中,第13個是「C0」。 'C0'代表什麼?爲什麼這個數字遠高於MFCC? –

+0

c0是零倒譜系數。預計會更高,倒頻譜通常會下降 –