【问题标题】:How can I deal with different length of speech files in Matlab如何在 Matlab 中处理不同长度的语音文件
【发布时间】:2014-02-03 23:38:05
【问题描述】:

我使用 TIDigits 数据库进行语音识别,该数据库包含来自不同说话者的从零到九的数字(许多文件)。

我需要从每一帧中提取 39 个 MFCC 特征,并将它们组合在一个矩阵(Features Matrix)中进行分类。我为每个文件进行了框架和窗口化,这为每个文件产生了不相等的帧数。

我面临的问题是由于语音文件的长度不同而导致的帧数不同。

如何在不使用统计公式的情况下处理此问题?

【问题讨论】:

    标签: matlab speech


    【解决方案1】:

    我最近在处理音频时也遇到了这个问题。我所做的基本上是通过修剪长的 MFCC 特征来匹配较短的特征。这对我来说很有用。

    【讨论】:

    • 感谢您的回答。但是通过修剪长的 MFCC 特征,它们是否会影响分类器的准确性?还是你没试过?
    • @Sayf 肯定会影响分类器的准确性,因为它会丢失一些特征。但是,虽然我没有很详细地比较它们,但差异应该相对较小。
    • 当你说你修剪了长的 MFCC 这意味着你丢弃了一些帧的特征。我最短的文件包含 17 帧(25ms),最长的是 87 帧......所以如果我从最长的一帧中删除了60帧,大部分信号都会被忽略。
    【解决方案2】:

    假设问题是您想将不同长度的向量存储在一起,您有几个合乎逻辑的选择:

    1. 修剪向量,您的结果将是一个 39 乘以最小向量长度的矩阵
    2. 填充向量,您的结果将是一个 39 乘以最大向量长度的矩阵
    3. 使用元胞数组,您的结果将是具有相应长度的 39 个向量

    【讨论】:

    • 感谢您的回答,第一个选项会丢失一些信息,第二个选项我尝试填充零但是当我阅读有关神经网络分类器以及它如何处理向量中的零值时,我排除了第二个选项。第三个如果我只想存储矢量,这是可行的。我还有另一个分类阶段,这就是为什么我认为我需要一个相等的 MFCC 向量矩阵。
    猜你喜欢
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多