使用 MFCC 和 DTW(动态时间扭曲)进行语音识别?

信息处理 语音识别 mfcc
2022-02-02 06:34:54

我了解 DSP 的基础知识,现在正在尝试完成一个语音识别项目。所以我阅读了尽可能多的资源,并得到了一些想法。它们就像:

  • 采样声音并将其分成小帧

  • 计算每帧的 MFCC(其中 13 个)

  • 使用 DTW 来匹配测试和模板模式。

    现在,这是我遇到麻烦的事情-

  • n 帧的 13 个 MFCC 给我留下了 13*n 个 MFCC。我究竟如何在这里使用 DTW?

  • DTW 给了我两个模式之间的距离。我如何确定它们是否匹配?

1个回答

一开始让我警告您,DTW 方法仅适用于口语单词识别。尽管如此,作为一项基本练习还是很有趣的。

我假设您有一个培训文件(模板)数据库,并且您已经为这些文件提取了 MFCC。每个训练文件包含一个给定词类的话语,即“Hello”、“Bye”。我还想象每个班级都有不止一个例子(似是而非)。

以下是您在识别阶段应该做的事情:

  • 一旦你有了整个单词的录音,你就可以计算每一帧的 MFCC。你想要整个单词的录音,而不仅仅是它的一部分。
  • 现在您计算您的录音与数据库中每个模板之间的距离。在 DTW 的情况下,您将计算 13 维框架(简单距离度量/标准,即欧几里得、曼哈顿等)之间的成本。一旦 DTW 算法完成,您将得到测试样本和每个模板之间的距离值(如下所示的右上矩阵条目)。
  • 最后一步是做出决定:您的测试样本实际上属于哪个类别?您可以通过选择具有最小 DTW 距离的模板类别来做到这一点。但更好的是,您可以为此使用 k-Nearest Neighbors。

在此处输入图像描述