使用 Mel 倒谱系数、Delta 系数和对数能量对向量进行归一化

信息处理 mfcc
2022-01-31 00:50:54

这是我的第一次信号处理练习,所以我对这个领域很陌生。话虽如此,目标是在识别某人说“是”和“否”时隔离语音识别。正如标题所示,我有一个 1x26 向量,如下所示:

  Columns 1 through 10

  (P)160.2504   66.7557  -35.9298  144.1598  -11.9133  -16.2184  -26.4730   78.0673   10.2075  -39.4318

  Columns 11 through 20

  -46.6702    5.9283  -42.9540    (P)0.2614    0.0382   -1.3315    0.1326   -1.4256    0.1936    0.4081

  Columns 21 through 26

   -1.4431   -1.6916   -1.1668   -0.2901   -0.4499   -0.4309

其中 (P) 分别表示梅尔倒谱系数和 Delta 系数的对数能量。话虽这么说,我想知道如何规范化这些值,但如何?我不确定将能量除以什么,更不用说系数了。就像我说的第一个项目一样,非常感谢指导我的真正帖子!

1个回答

您可以收集大量语音信号,提取 MFCC,并计算每个系数的均值和标准差。保留这些数字并一劳永逸地使用它们。

然后,您可以通过减去均值并除以您预先计算的标准偏差来标准化话语中的向量序列(不要重新计算每个话语的均值和标准偏差 - 因为每个文件话语的统计数据会略有不同) .

如果您使用欧几里德距离来比较 MFCC,这可能很有用 - 例如在使用 DTW 时。然而,更高级的统计建模技术不需要这个归一化步骤 - 例如,高斯模型实际上将学习系数的均值和协方差矩阵,而无需对数据进行预归一化(均值/标准归一化数据上的欧几里得距离为就像带有对角协方差矩阵的马氏距离一样)。

为了准确起见,我应该指出,这种归一化方案有一个缺陷......已知最后的 MFCC 系数非常嘈杂且信息量较少 - 这是从 DCT 的能量压缩特性得出的(相关性较低的东西在最高系数),或者从 DCT 的角度来看,它是对数 mel 光谱上的 PCA 的近似值。因此,我提出的均值/标准差方案可能会“夸大”最后一个系数的重要性。机器学习/特征选择算法可能对此很稳健,并且无论如何都会丢弃它们,但欧几里德距离不是。我在过去的研究中使用的一种折衷方案是用 < 1 的标准偏差的幂进行归一化;或在归一化后按比例缩小第 n 个 MFCC 系数αn在哪里α=0.95. 其他归一化方案实现“提升”——通过将 MFCC 的序列逐点乘以窗口函数。