【问题标题】:Why do Mel-filterbank energies outperform MFCCs for speech commands recognition using CNN?为什么 Mel-filterbank 能量在使用 CNN 的语音命令识别方面优于 MFCC?
【发布时间】:2020-06-11 20:24:47
【问题描述】:

上个月,一位名叫@jojek 的用户在comment 中告诉我以下建议:

我敢打赌,如果有足够的数据,关于 Mel 能量的 CNN 将优于 MFCC。你应该试试看。对梅尔谱图而不是去相关系数进行卷积更有意义。

是的,我在 Mel-filterbank 能量上尝试了 CNN,它的性能优于 MFCC,但我仍然不知道原因!

尽管许多教程(例如 Tensorflow 的 this 之一)鼓励在此类应用中使用 MFCC:

由于人耳对某些频率比其他频率更敏感,因此在语音识别中,传统的做法是对该表示进行进一步处理,以将其转化为一组梅尔频率倒谱系数,简称 MFCC。

另外,我想知道 Mel-Filterbank 能量是否仅在使用 CNN 时优于 MFCC,或者对于 LSTM、DNN 等也是如此,如果您添加参考,我将不胜感激。


更新 1

虽然我对@Nikolay 回答的评论包含相关细节,但我将在此处添加:

如果我错了,请纠正我,因为在这种情况下,对 Mel-filterbank 能量应用 DCT 等效于 IDFT,在我看来,当我们保留 2-13(包括)倒谱系数并丢弃休息,相当于一个低时间的提升,以隔离声道成分,并丢弃源成分(例如 F0 尖峰)。

那么,既然语音命令识别模型只关心声道组件,我为什么要使用所有 40 个 MFCC?

更新 2

另一种观点(link)是:

请注意,仅保留 26 个 DCT 系数中的 12 个。这是因为较高的 DCT 系数代表滤波器组能量的快速变化,事实证明这些快速变化实际上降低了 ASR 性能,因此我们通过放弃它们获得了小的改进。

参考资料:

https://tspace.library.utoronto.ca/bitstream/1807/44123/1/Mohamed_Abdel-rahman_201406_PhD_thesis.pdf

【问题讨论】:

    标签: deep-learning conv-neural-network speech-recognition feature-extraction mfcc


    【解决方案1】:

    问题是 MFCC 是通过简单的矩阵乘法和降维从 mel 能量计算得出的。该矩阵乘法不会影响任何事情,因为任何其他神经网络之后都会应用许多其他操作。

    重要的是减少维度,而不是 40 梅尔能量,您需要 13 梅尔系数,其余部分减少。这会降低 CNN、DNN 等的准确性。

    但是,如果您不放弃并仍然使用 40 个 MFCC,您可以获得与 mel 能量相同的准确度,甚至更高的准确度。

    因此,MEL 或 MFCC 无关紧要,重要的是您在特征中保留了多少系数。

    【讨论】:

    • 如果我错了,请纠正我,因为在这种情况下,对 Mel-filterbank 能量应用 DCT 等效于 IDFT,在我看来,当我们保持 2-13(含)时倒谱系数并丢弃其余部分,相当于一个低时间的提升以隔离声道成分,并丢弃源成分(例如具有 F0 尖峰)。那么,既然我对语音命令识别模型关心的只是声道组件,为什么还要使用所有 40 个 MFCC?但是,我使用 26 Mel-filterbank 作为常见选择,但我不确定是否应该使用 40。谢谢。
    • 26 或 40,这取决于您的选择。对于神经网络,系数越多越好。
    • 好的,谢谢。请编辑您的答案以添加有关我评论第一部分的更多详细信息。
    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 2016-12-14
    • 2017-04-22
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多