Java 如何合并MFCC

Java 如何合并MFCC,java,audio,feature-extraction,mfcc,tarsosdsp,Java,Audio,Feature Extraction,Mfcc,Tarsosdsp,我正在从一些音频文件中提取MFCC功能。我目前使用的程序为每个文件提取一系列MFCC,其参数为1024缓冲区大小。我在一篇论文中看到了以下内容: 通过计算每个特征向量元素的平均值和方差(合并),在音频数据的一秒钟内提取的特征向量被组合 我当前的代码使用TarsosDSP提取mfcc,但我不确定如何将数据分割为“一秒钟的音频数据”以合并mfcc 我的MFCC提取代码 缓冲区的具体大小是多少?它可以用来将音频分割成1秒的窗口吗?是否有方法将MFCC序列划分为一定的时间量 任何帮助都将不胜感激。经过更

我正在从一些音频文件中提取MFCC功能。我目前使用的程序为每个文件提取一系列MFCC,其参数为1024缓冲区大小。我在一篇论文中看到了以下内容:

通过计算每个特征向量元素的平均值和方差(合并),在音频数据的一秒钟内提取的特征向量被组合

我当前的代码使用TarsosDSP提取mfcc,但我不确定如何将数据分割为“一秒钟的音频数据”以合并mfcc

我的MFCC提取代码 缓冲区的具体大小是多少?它可以用来将音频分割成1秒的窗口吗?是否有方法将MFCC序列划分为一定的时间量


任何帮助都将不胜感激。

经过更多的研究,我发现了一个网站,它清楚地展示了为Weka使用MFCC的步骤。它显示了一些具有各种统计信息的数据文件,每个数据文件在Weka中作为单独的属性列出。我相信当报纸说

计算均值和方差

这意味着每个MFCC系数的平均值和方差被用作组合数据文件中的属性。当我按照网站上的示例合并MFCC时,我使用了最大、最小、范围、最大位置、最小位置、平均值、标准偏差、偏度、峰度、四分位和四分位间距


为了将音频输入分割为秒,我相信会以输入的采样率作为参数提取多个MFCC,因此如果我将其设置为100,我会等待100个周期来合并多个MFCC。如果我错了,请纠正我。

经过更多的研究,我发现了一个网站,它清楚地展示了为Weka使用MFCC的步骤。它显示了一些具有各种统计信息的数据文件,每个数据文件在Weka中作为单独的属性列出。我相信当报纸说

计算均值和方差

这意味着每个MFCC系数的平均值和方差被用作组合数据文件中的属性。当我按照网站上的示例合并MFCC时,我使用了最大、最小、范围、最大位置、最小位置、平均值、标准偏差、偏度、峰度、四分位和四分位间距

为了将音频输入分割为秒,我相信会以输入的采样率作为参数提取多个MFCC,因此如果我将其设置为100,我会等待100个周期来合并多个MFCC。如果我错了,请纠正我

int sampleRate = 44100;
int bufferSize = 1024;
int bufferOverlap = 512;
inStream = new FileInputStream(path);
AudioDispatcher dispatcher = new AudioDispatcher(new UniversalAudioInputStream(inStream, new TarsosDSPAudioFormat(sampleRate, 16, 1, true, true)), bufferSize, bufferOverlap);
final MFCC mfcc = new MFCC(bufferSize, sampleRate, 13, 40, 300, 3000);
dispatcher.addAudioProcessor(mfcc);
dispatcher.addAudioProcessor(new AudioProcessor() {
    @Override
    public void processingFinished() {
        System.out.println("DONE");
    }
    @Override
    public boolean process(AudioEvent audioEvent) {
        return true;  // breakpoint here reveals MFCC data
    }
});
dispatcher.run();