gpt4 book ai didi

java - 如何在 Java 中提取 MFCC 特性

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:31 27 4
gpt4 key购买 nike

我正在将语音识别项目从 MATLAB 转换为 Java 代码。我已经能够使用提供的 Java 示例读取 .wav 文件(作为值在 -1 到 1 范围内的 vector )here .这与 MATLAB 中的 wavread 函数完全一样。

我的下一个任务是从原始样本 vector 中提取MFCC 特征向量。在 MATLAB 中,我使用了 Voicebox很容易实现这一点,但一直无法找到 Java 的等价物。使用 Voicebox,我有如下代码:

a = melcepst(samples(1,:), 44100)

其中每行“samples”包含表示每个 .wav 样本的 vector 。该方法返回每个样本的 MFCC 特征的二维矩阵。

我见过 Sphinx,但无法理解如何将它用于此任务。对于使用 Sphinx 或任何其他 java 解决方案的任何帮助,我们将不胜感激。

最佳答案

您可以使用 Sphinx 4 执行以下操作来获取 MFCC 帧:

AudioFileDataSource audioDataSource = new AudioFileDataSource(3200, null);
audioDataSource.setAudioFile(new URL("file:///path/to/my.wav", "source");

final ArrayList<DataProcessor> pipeline = new ArrayList<DataProcessor>();

pipeline.add(audioSource);
pipeline.add(new DiscreteFourierTransform());
pipeline.add(new MelFrequencyFilterBank(minFreq, maxFreq, numFilters));
pipeline.add(new DiscreteCosineTransform2(numFilters, 12));
FrontEnd f = new FrontEnd(pipeline);

Data mfccs;
do {
mfccs = f.getData();
} while(mfccs != null);

关于java - 如何在 Java 中提取 MFCC 特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23669627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com