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
只是入口点和出口点,所以它们不需要 Mean
和 Variance
?
另外,在采样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 个?它们都代表什么?我相信:
1-12
是倒谱系数
14-25
是增量系数
26
也是第 13 个数字的增量系数
但我不知道每个样本中的第 13 个数字代表什么。它们应该采用开头显示的原型文件中定义的 <MFCC_0_D_N_Z>
格式, 而不是 在 HTK Manual 中有很好的解释。但我可以从手册的 第 80 页 中了解到:
MFCC_0
:MFCC 系数
_D
:增量系数
_N
:绝对能量抑制
_Z
:平均静态系数为零。
如有任何解释,我们将不胜感激。
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_D
和 Tutorial 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。
在使用 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
只是入口点和出口点,所以它们不需要 Mean
和 Variance
?
另外,在采样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 个?它们都代表什么?我相信:
1-12
是倒谱系数14-25
是增量系数26
也是第 13 个数字的增量系数
但我不知道每个样本中的第 13 个数字代表什么。它们应该采用开头显示的原型文件中定义的 <MFCC_0_D_N_Z>
格式, 而不是 在 HTK Manual 中有很好的解释。但我可以从手册的 第 80 页 中了解到:
MFCC_0
:MFCC 系数_D
:增量系数_N
:绝对能量抑制_Z
:平均静态系数为零。
如有任何解释,我们将不胜感激。
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_D
和 Tutorial 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。