0

我正在使用 TarsosDSP 库在 wav 文件上应用低通滤波器。这是代码。

private void eq2(File file) throws FileNotFoundException {
    new AndroidFFMPEGLocator(this);

    InputStream inputStream = new FileInputStream(file);
    TarsosDSPAudioFormat format =  new TarsosDSPAudioFormat(16000,16,2,true,false);
    AudioDispatcher adp = new AudioDispatcher(new UniversalAudioInputStream(inputStream,format),2048,0);

    adp.addAudioProcessor(new LowPassFS(100,16000));
    RandomAccessFile raf = null;
    raf = new RandomAccessFile(Environment.getExternalStorageDirectory()+ "/cibiodLogs/audioFiltered1.wav", "rw");
    adp.addAudioProcessor(new WriterProcessor(format,raf));
    adp.run();

    Thread audioThread = new Thread(adp, "Audio Thread");
    audioThread.start();
}

它提供输出,但输出断断续续,甚至没有过滤。这里看看原始的wav文件和输出的wav文件。

原来的

过滤

我尝试了从 2 到 4096 的不同缓冲区大小,但每次输出都是断断续续的,或者音频没有被过滤。有人可以指出我这里可能出了什么问题。

4

1 回答 1

0

这个问题现在解决了!TarsosDSP 不支持双通道音频处理,因此该算法与两个音频通道混淆,从而给出了断断续续的结果。

于 2020-09-16T03:49:40.513 回答