Подтвердить что ты не робот

Любые хорошие рекомендации для MP3/звуковых библиотек для java?

Я ищу библиотеки для:

  • чтение и запись метаданных (например, теги ID3v2 в mp3 и все)
  • конвертировать сжатые в необработанные аудиоданные и, если возможно, исходные аудиоданные в mp3, ogg, aac,...
  • цифровая обработка аудиоданных (энергия, тембр, коэффициенты Мел-частоты Cepstral - MFCC, FFT, LPC, автокорреляция, вейвлет,...)

Я уже знаю и не доволен:

  • JMF: оригинал от Sun, читает mp3 и превращает его в WAV. Но не читает метаданные и не предоставляет каких-либо усовершенствованных функций цифровой обработки.
  • FMJ: Альтернативная реализация для JMF с теми же ограничениями.
  • jAudio: Нестабильно и хотя потенциально, в настоящее время не поддерживается.
  • Marsyas: в цифровой обработке именно то, на что я надеялся, но на С++. Может быть, какой-то порт/интеграция уже имеется?
  • JID3: API для метаданных, но кажется мертвым (последняя версия 2005/12/10).
  • JLayer: API для чтения и воспроизведения, также мертв (последнее обновление 2004/11/28).
  • MetaMusic: API программы является опрятным, но не является официальным автономным проектом с открытым исходным кодом. Поэтому нет сообщества, будущей поддержки и всех...
  • Light Dev: Некоторые интересные функции, но не полностью завершены.

Вот что произошло с моим собственным расследованием. Я был бы очень признателен за все материалы, предложения, критики,...

4b9b3361

Ответ 1

JLayer должен делать все, что вам нужно. Он не мертв, он просто стабилен. Автор закончил его довольно давно, и формат MP3 с тех пор не изменился. Вы заметите, что его базовая MP3SPI немного более новая. Что такое MP3SPI, это то, что переводит возможности JLayer в API JavaSound. Таким образом, вы можете взять любой код JavaSound, добавить MP3SPI в путь к классам и ожидать, что файлы MP3 начнут работать. Это довольно изящно.:)

Ответ 2

Вы можете попробовать 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 предоставит вам необработанные данные.

Ответ 3

Вы должны попытаться заглянуть в gstreamer-java, у меня был успех с воспроизведением медиа через него, и должно быть возможно преобразование аудио файлы с ним. Существует также JFFMpeg, который интегрируется в JMF, я не так много думал об этом, поэтому не знаю, о его возможностях и состоянии, но о чем-то более пристальном взгляде.

Ответ 4

Кстати, я только что перевел мой проект MetaMusic в http://github.com/cpesch/MetaMusic/, так как инфраструктура там намного лучше.