【问题标题】:Simple word detector using MFCC使用 MFCC 的简单单词检测器
【发布时间】:2015-04-18 04:18:45
【问题描述】:

我正在使用梅尔频率倒谱系数实现语音识别软件。特别是系统必须识别单个指定的单词。由于音频文件,我在一个有 12 行(MFCC)和与语音帧数一样多的列的矩阵中获得了 MFCC。我取行的平均值,所以我得到一个只有 12 行的向量(第 i 行是所有帧的所有第 ith-MFCC 的平均值)。我的问题是如何训练分类器来检测单词?我有一个只有正样本的训练集,我从几个音频文件(同一个词的多个注册)中获得的 MFCC。

【问题讨论】:

    标签: machine-learning speech-recognition mfcc


    【解决方案1】:

    我对行进行平均,所以我得到了一个只有 12 行的向量(第 i 行是所有帧的所有第 i 个 MFCC 的平均值)。

    这是一个非常糟糕的主意,因为您丢失了有关单词的所有信息,您需要分析整个 mfcc 序列,而不是其中的一部分

    我的问题是如何训练分类器来检测单词?

    简单的形式是 GMM 分类器,您可以在这里查看:

    http://www.mathworks.com/company/newsletters/articles/developing-an-isolated-word-recognition-system-in-matlab.html

    在更复杂的形式中,您需要学习更复杂的模型,例如 HMM。您可以从像这样的教科书中了解更多关于 HMM 的信息

    http://www.amazon.com/Fundamentals-Speech-Recognition-Lawrence-Rabiner/dp/0130151572

    【讨论】:

    • 您好,非常感谢您的回答。我从语音帧中得到了 MFCC,并通过 matlab 函数 gmdistribution 构建了高斯混合模型。之后,我使用新音频测试模型。我再次从新音频中获得 MFCC,并使用后验函数获得每个 MFCC 的概率。现在系统如何决定这个概率?
    • 你得到你正在寻找的所有单词的概率,概率最高的单词就是答案。上面的链接说“测试语音被归类为 GMM 产生最大对数似然值的数字。”
    • 好的。现在我有一个词,我想知道它是否与我用来首先构建高斯混合模型的那个匹配。因此,我在输入该音频的 MFCC 时启动后验函数,并得到对数似然值。我需要将该值与阈值进行比较,以确定该单词是否与原始单词匹配?
    • 我怎样才能得到这个阈值?我正在考虑使用具有两个质心的聚类算法,但负样本很少。
    • 抱歉,我还有一个问题。后验函数的结果是似然的负对数,如果似然在[0,1]范围内,则负对数为正,但函数是矛盾的,说明最佳值是负对数似然接近0时。 这样对吗?另一个问题,我是否对每个单词都有一个 gmm 来检测?因此,当我从麦克风捕获音频时,我会将 MFCC 与我的所有 GMM 进行比较,结果是 GMM 给了我更大的可能性?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    相关资源
    最近更新 更多