44

我正在寻找图书馆:

  • 读取和写入元数据(例如 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

4 回答 4

8

JLayer 应该做你需要的一切。它没有死,它只是稳定的。作者在很久以前就完成了,MP3 格式从那以后就没有太大的变化。你会注意到他的MP3SPI代码库更新了一些。MP3SPI 所做的是将 JLayer 的功能转换为 JavaSound API。因此,您可以获取任何 JavaSound 代码,将 MP3SPI 添加到类路径中,并期望 MP3 文件将开始工作。这很漂亮。:)

于 2008-09-17T18:23:58.113 回答
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 会给你原始数据。

于 2009-11-06T06:01:05.433 回答
1

您应该尝试查看gstreamer-java,我已经成功通过它播放媒体,并且应该可以使用它转换音频文件。还有集成到 JMF 中的JFFMpeg,我没有过多地研究它,所以我不知道它的功能和状态的总体范围,但它需要更仔细地研究。

于 2008-09-17T18:27:25.700 回答
1

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

于 2009-06-20T14:00:28.700 回答