どこでも検索しましたが、Android で TarsosDSP を使用して MFCC 機能を抽出する方法がわかりませんでした。ファイルからFFTを取得する方法を知っています。何か助けはありますか?
質問する
2310 次
2 に答える
1
プロセスイベントの下でmfccを取得できます。フレームごとだと思います
int sampleRate = 16000;
int bufferSize = 512;
int bufferOverlap = 128;
new AndroidFFMPEGLocator(this);
final List<float[]>mfccList = new ArrayList<>(200);
InputStream inStream = new FileInputStream(audioFilePath);
AudioDispatcher dispatcher = new AudioDispatcher(new UniversalAudioInputStream(inStream, new TarsosDSPAudioFormat(sampleRate, bufferSize, 1, true, true)), bufferSize, bufferOverlap);
final MFCC mfcc = new MFCC(bufferSize, sampleRate, 20, 50, 300, 3000);
dispatcher.addAudioProcessor(mfcc);
dispatcher.addAudioProcessor(new AudioProcessor() {
@Override
public void processingFinished() {
}
@Override
public boolean process(AudioEvent audioEvent) {
mfccList.add( mfcc.getMFCC());
return true;
}
});
dispatcher.run();
于 2017-10-30T08:08:56.517 に答える