4

どこでも検索しましたが、Android で TarsosDSP を使用して MFCC 機能を抽出する方法がわかりませんでした。ファイルからFFTを取得する方法を知っています。何か助けはありますか?

4

2 に答える 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 に答える