对于Java的MP3 /声音库有什么好的建议吗?[已关闭]

2022-09-01 01:10:42

我正在寻找库来:

  • 读取和写入元数据(例如 mp3 和 all 中的 ID3v2 标签)
  • 将压缩转换为原始音频数据,如果可能的话,将原始音频数据转换为mp3,ogg,aac,...
  • 对音频数据进行数字处理(能量、音色、Mel 频率信号系数 - 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:一些有趣的功能,但根本不完整。

这是我自己的一些调查所发现的。我将不胜感激所有的意见,建议,批评,...


答案 1

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


答案 2

你可以试试Suggler。以下是它在测试中执行的操作:

* 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模块,所以你需要找到另一个库。但旭格勒会给你原始数据。


推荐