任何良好的build议为MP3 /声音库的Java?

我正在寻找图书馆:

  • 读取和写入元数据(例如mp3和所有的ID3v2标签)
  • 将压缩转换为原始audio数据,如果可能的话,原始audio数据转换成mp3,ogg,aac,…
  • 数字处理audio数据(能量,音色,梅尔频率倒谱系数 – MFCC,FFT,LPC,自相关,小波…)

我已经知道,并不满足于:

  • JMF:来自Sun的原创,读取mp3并将其转换为WAV。 但不读取元数据,也不提供任何先进的数字处理function。
  • FMJ :对JMF的替代实现具有相同的限制。
  • jAudio :不稳定,虽然有潜力,目前维护得不好。
  • Marsyas :数字处理就是我所希望的,但在C ++中。 也许有一些端口/集成已经可用?
  • JID3 :元数据的API,但似乎已经死了(最新版本2005/12/10)。
  • JLayer :用于阅读和播放的API也已经死了(最新更新2004/11/28)。
  • MetaMusic :该程序的API是整洁,但没有官方独立的开源项目。 因此没有社区,未来的支持和所有…
  • Light Dev :一些有趣的function,但并不完整。

这是我自己的一些调查结果。 我将不胜感激所有的input,build议,批评,…

JLayer应该做你需要的一切。 它没有死,它只是稳定。 笔者很早以前就完成了这个工作,MP3格式自此以后没有多less变化。 你会注意到他的MP3SPI代码库更近一点了。 什么MP3SPI做的是将JLayer的能力转化为JavaSound API。 因此,您可以使用任何JavaSound代码,将MP3SPI添加到类path,并期望MP3文件将开始工作。 这很漂亮。 🙂

你可以试试Xuggler 。 以下是testing过程的方法:

* read and write meta data (for example ID3v2 tags in mp3 and all): 

如果底层容器types在FFmpeg中支持元数据,则Xuggler支持它。

 * convert compressed to to raw audio data and if possible raw audio data to mp3, ogg, aac, ... 

Xuggler支持mp3,ogg(vorbis或speex),speex,vorbis,flac,aac等。

 * digitally process the audio data (energy, timbre, Mel Frequency Cepstral Coefficients - MFCC, FFT, LPC, Autocorrelation, Wavelet, ...) 

Xuggler没有DSP模块,因此您需要为此find另一个库。 但是Xuggler会给你原始数据。

你应该尝试调查gstreamer-java ,我已经通过它播放媒体已经取得了成功,应该可以用它来转换audio文件。 还有JFFMpeg与JMF相结合,我没有那么深入,所以我不知道它的能力和状态的总体程度,而是更密切地关注的东西。

顺便说一句,我刚刚把我的MetaMusic项目移到http://github.com/cpesch/MetaMusic/,因为基础设施好得多。;