问题描述
我正在使用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的不同缓冲区大小,但是每次输出不稳定或音频未过滤时。有人可以指出我这里可能出问题了吗。
解决方法
此问题现已解决! TarsosDSP不支持双通道音频处理,因此该算法与两个音频通道混淆了,因此产生了断断续续的结果。