2

在按照Voxforge 的使用 HTK(隐藏马尔可夫模型工具包)的语音转文本系统教程创建 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只是进入和退出点,所以它们不需要 aMeanVariance?

此外,在获取样本 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 个系数而不是 25 个?它们都代表什么?我相信:

  • 1-12是倒谱系数
  • 14-25是 Delta 系数
  • 26也是第 13 个数字的 Delta 系数

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

  • MFCC_0: MFCC 系数
  • _D: 增量系数
  • _N:绝对能量抑制
  • _Z:具有零平均静态系数。

任何解释将不胜感激。

4

1 回答 1

2

此外,为什么我们在 5 时有 3 个状态?1 和 5 是否只是进入和退出点,因此它们不需要均值和方差?

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

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

MFCC 类型MFCC_0_D教程步骤 5中的一样,因此它们是 13 个 ceps 和 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,当你计算时你转换它MFCC_0_D_N_Z通过降低能量和归一化平均值来得到 25 个系数。

我不太明白为什么每个州都有 25 个“均值”和“方差”。它们代表每个特征向量的均值和方差吗?

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

于 2017-05-24T07:45:46.760 回答