Java音频频率滤波器

3
我正在开发一个简单的Java音频播放器。我需要的唯一高级功能是频率过滤器。它不一定是具有特定频率范围不同增益的全功能均衡器函数:一个低通滤波器可以截止高于指定值的频率。
我研究了jlGui,它有一个均衡器,但它只适用于MP3数据,而我将要播放的文件是OGG。
通过浏览各种答案,我发现像XugglerJave这样的ffmpeg包装器可能是一个解决方案。但我没有找到任何教程,甚至没有处理使用ffmpeg进行频率过滤的起点。
此外,JMF被描述为实现这种功能的有效选择,但我没有找到足够具体的东西。

如果您有PCM音频数据,您可以实现自己的滤波器。虽然这通常是由工程师执行的任务,但您可以使用“食谱”资源,例如http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt或http://www.amazon.com/Digital-Audio-Java-Craig-Lindley/dp/0130876763。 - Bjorn Roche
3个回答

1

我最终使用了这个解决方案(适用于Windows应用程序): Equalizer APO

它利用了Windows Vista及更高版本上可用的音频处理对象技术。我的应用程序只需要编辑一个配置文本文件,APO就会完成剩下的工作。

显然,它是平台相关的,我必须安装一个外部应用程序才能使我的过滤器工作,但在我的情况下是可以接受的,并且很容易实现。


1

http://www.cs.ubc.ca/~kvdoel/jass/doc/index.html

这是由加拿大不列颠哥伦比亚大学开发的JASS项目的JavaDoc。它可以免费用于非商业用途。您应该能够使用它来实现大多数类型的过滤器。请检查上面几个级别的URL以获取实际源代码下载。

谢谢。我花了几个小时分析这个有趣的项目,但是据我所理解,它只提供了对动态生成的声音频率成分的过滤。我无法将相同的过滤器应用于加载的音频文件。如果能证明我错了,我会很高兴,但看起来JASS不是我需要的东西。 - Giuseppe
我在实际项目中使用过这个,用于对PCM数据进行滤波。它的效果非常好...特别是BiQuad滤波器,自己实现起来也相当简单。以下是一些更多的链接,可以帮助你:http://www.arachnoid.com/BiQuadDesigner/index.html --- 这个网站非常有用,可以获取BiQuad系数。...还有:http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt ...因为你想制作一个EQ。我有时会在代码中使用这两个网站的内容,实践证明效果非常好。 - ManabuKun

0

我找到了一个叫做JEQ的旧项目
它基于javax.sound并使用IIR来创建10/15/25/31频段均衡器。它可以处理PCM数据(不仅仅是像其他一些工具只能处理MP3),所以我希望我能够让它与OGG一起使用。我的唯一担忧是输出质量,在我的一些测试中并不是很好。我需要进行调查。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接