TarsosDSP Android 应用低通滤波器并保存到 wav 会产生不稳定的结果

问题描述 投票:0回答:2

我正在使用 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 之间的不同缓冲区大小,但每次输出都不稳定或音频未过滤。有人可以指出我这里可能出了什么问题吗?

java android tarsosdsp
2个回答
1
投票

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


0
投票

对于单通道或多通道,您可以使用格式为(采样率 * 通道数)的采样率参数,并将通道数参数保留为 1。

© www.soinside.com 2019 - 2024. All rights reserved.