Любые хорошие рекомендации для 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: Некоторые интересные функции, но не полностью завершены.
Вот что произошло с моим собственным расследованием. Я был бы очень признателен за все материалы, предложения, критики,...
Ответы
Ответ 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/, так как инфраструктура там намного лучше.