4

MATLABからJavaコードへの音声認識プロジェクトの変換に取り組んでいます。ここで提供されている Java の例を使用して、 .wavファイルを ( -1 から 1の範囲の値のベクトルとして)読み取ることができました。これは、 MATLABの関数 wavread とまったく同じように機能します。

次のタスクは、元のサンプル ベクトルからMFCC特徴ベクトルを抽出することです。MATLAB ではVoiceboxを使用してこれを簡単に実現しましたが、同等のJavaを見つけることができませんでした。Voicebox を使用すると、次のようなコードがあります。

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

「サンプル」の各行には、各 .wav サンプルを表すベクトルが含まれています。このメソッドは、各サンプルのMFCC特徴の 2 次元マトリックスを返します。

Sphinxを見たことがありますが、このタスクでの使用方法を理解できませんでした。Sphinxまたはその他のJavaソリューションの使用に関するヘルプをいただければ幸いです。

4

1 に答える 1

5

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);
于 2015-08-13T22:11:01.800 に答える