Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Matlab中处理不同长度的语音文件_Matlab_Speech - Fatal编程技术网

如何在Matlab中处理不同长度的语音文件

如何在Matlab中处理不同长度的语音文件,matlab,speech,Matlab,Speech,我使用TIDigits数据库进行语音识别,该数据库包含来自不同说话人(许多文件)的从0到9的数字 我需要从每个帧中提取39个MFCC特征,并将它们组合到一个矩阵(特征矩阵)中进行分类。我为每个文件做了框架和窗口,这为每个文件产生了不等数量的帧 我面临的问题是,由于语音文件的长度不同,帧数也不同 如果不使用统计公式,我如何处理这个问题?我最近在处理音频时也遇到了这个问题。我所做的基本上是通过修剪长MFCC特性以匹配短MFCC特性。它对我很有效 假设问题是要将不同长度的向量存储在一起,则有几个逻辑选

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

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

我面临的问题是,由于语音文件的长度不同,帧数也不同


如果不使用统计公式,我如何处理这个问题?

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

假设问题是要将不同长度的向量存储在一起,则有几个逻辑选项:

  • 修剪向量,你的结果将是一个39乘最小向量长度的矩阵
  • 填充向量,你的结果将是一个39乘最大向量长度的矩阵
  • 使用单元格数组,您的结果将是39个向量及其相应的长度

  • 感谢您的回答,第一个选项将丢失一些信息,第二个选项我尝试填充零,但当我阅读有关神经网络分类器及其如何处理向量中的零值时,我排除了第二个选项。第三,如果我只想存储向量,那就行了。我还有另一个分类阶段,这就是为什么我认为我需要一个相等的MFCC向量矩阵。谢谢你的回答。但是,通过修剪长MFCC特征,它们是否会影响分类器的准确性?或者你没有尝试?@Sayf它肯定会影响分类器的准确性,因为它会丢失一些特征。不过,虽然我没有详细比较,但差异应该相对较小。当你说你修剪了长MFCC时,这意味着你放弃了某些帧的特征。。我最短的文件包含17帧(25ms),最长的是87帧…因此,如果我从最长的文件中删除60帧,则大多数信号将被忽略。