对于MP3的MP3 /声音库有什么好的建议吗?

时间:2008-09-17 18:19:11

标签: java audio mp3 signal-processing

我正在寻找图书馆:

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

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

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

这是我自己的一些调查结果。我非常感谢所有的意见,建议,评论......,

4 个答案:

答案 0 :(得分:8)

JLayer应该做你需要的一切。它没死,它只是稳定的。很长一段时间以来,作者完成了它,MP3格式从那时起没有太大的变化。您会注意到他的MP3SPI代码库有点近了。 MP3SPI的作用是将JLayer的能力转换为JavaSound API。因此,您可以使用任何JavaSound代码,将MP3SPI添加到类路径,并期望MP3文件将开始工作。这很漂亮。 :)

答案 1 :(得分:3)

您可以尝试Xuggler。以下是它在测试中的作用:

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

如果底层容器类型在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模块,所以你需要找到另一个库。但是Xuggler会给你原始数据。

答案 2 :(得分:1)

您应该尝试调查gstreamer-java,我已经成功通过它播放媒体,应该可以用它转换音频文件。还有JFFMpeg整合到JMF中,我没有用它来探讨这么多,所以我不知道它的能力和状态的总体程度,但它需要更仔细地看待。

答案 3 :(得分:1)

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