任何良好的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/,因为基础设施好得多。;