HTK - HMM 模型和输入 WAV 文件的 MFCC 代表什么?

HTK - What do MFCCs of an HMM model and Input WAV File represent?

在使用 HTK(隐马尔可夫模型工具包)为语音到文本系统创建遵循 Voxforge's tutorial 的 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 "Means" 和 "Variances"。它们是否代表每个特征向量的均值和方差?

此外,为什么我们有3个状态,而5是? <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

对于每个 "window",为什么我们有 26 个系数而不是 25 个?它们都代表什么?我相信:

但我不知道每个样本中的第 13 个数字代表什么。它们应该采用开头显示的原型文件中定义的 <MFCC_0_D_N_Z> 格式, 而不是 HTK Manual 中有很好的解释。但我可以从手册的 第 80 页 中了解到:

如有任何解释,我们将不胜感激。

Furthermore, why Do we have 3 states when is 5? Are 1 and 5 simply entry and exit points so they do not require a Mean and Variance?

是的,边界状态是虚拟的。

For every "window", why do we have 26 coeffieincts instead of 25? What do they all represent? I believe:

MFCC 类型是 MFCC_0_DTutorial step 5 一样,所以它们是 13 个 cep 和 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 中动态计算的,所以在磁盘上你有 26 MFCC_0_D,当你计算时,你通过降低能量和标准化平均值将它转换为 25 个系数 MFCC_0_D_N_Z

I don't quite understand why we have 25 "Means" and "Variances" for every state. Do they represent the Mean and Variance of every Feature Vector?

均值和方差是每个 HMM 状态的 HMM 发射分布的高斯参数,它们不是特征向量的均值。检查什么是 HMM。