Qualche buona raccomandazione per le librerie MP3 / Sound per java?

Sto cercando librerie per:

  • leggere e scrivere metadati (ad esempio tag ID3v2 in mp3 e tutti)
  • convertire dati compressi in dati audio grezzi e, se ansible, dati audio grezzi in mp3, ogg, aac, …
  • elaborare digitalmente i dati audio (energia, timbro, coefficienti Cepstral Mel Frequency – MFCC, FFT, LPC, Autocorrelation, Wavelet, …)

Conosco già e non mi accontento di:

  • JMF: originale di Sun, legge mp3 e lo trasforma in WAV. Ma non legge i metadati né fornisce alcuna funzionalità di elaborazione digitale avanzata.
  • FMJ : implementazione alternativa a JMF con gli stessi limiti.
  • jAudio : non stabile e sebbene potenziale, attualmente non ben mantenuto.
  • Marsia : nell’elaborazione digitale proprio quello che speravo, ma in C ++. Forse qualche porta / integrazione è già disponibile?
  • JID3 : API per metadati, ma sembra essere morto (ultima versione 2005/12/10).
  • JLayer : API per lettura e riproduzione, anche morto (ultimo aggiornamento 2004/11/28).
  • MetaMusic : l’API del programma è ordinata, ma nessun progetto open source autonomo ufficiale. Quindi non ha comunità, supporto futuro e tutto …
  • Light Dev : alcune caratteristiche interessanti, ma per nulla complete.

Questo è ciò che hanno rivelato alcune delle mie indagini. Apprezzerei molto tutti gli input, i suggerimenti, i critici, …

JLayer dovrebbe fare tutto il necessario. Non è morto, è solo stabile. L’autore l’ha terminato parecchio tempo fa e il formato MP3 non ha visto molti cambiamenti da allora. Noterai che la sua base di codici MP3SPI è un po ‘più recente. Quello che MP3SPI fa è tradurre le abilità di JLayer in API JavaSound. Quindi puoi prendere qualsiasi codice JavaSound, aggiungere MP3SPI al classpath e aspettarti che i file MP3 inizieranno a funzionare. È piuttosto carino. 🙂

Potresti provare Xuggler . Ecco come funziona sui tuoi test:

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

se il tipo di contenitore sottostante ha il supporto per i meta-dati in FFmpeg, Xuggler lo supporta.

 * convert compressed to to raw audio data and if possible raw audio data to mp3, ogg, aac, ... 

Xuggler supporta mp3, ogg (vorbis o speex), speex, vorbis, flac, aac, ecc.

 * digitally process the audio data (energy, timbre, Mel Frequency Cepstral Coefficients - MFCC, FFT, LPC, Autocorrelation, Wavelet, ...) 

Xuggler non ha moduli DSP quindi dovrai trovare un’altra libreria per questo. Ma Xuggler ti darà i dati grezzi.

Dovresti provare a gstreamer-java , ho avuto successo con la riproduzione di contenuti multimediali tramite esso e dovrebbe essere ansible convertire i file audio con esso. C’è anche JFFMpeg che si integra in JMF, non mi sono preoccupato così tanto di esso quindi non conosco l’estensione totale delle sue capacità e stato, ma è qualcosa da guardare più da vicino.

A proposito, ho appena spostato il mio progetto MetaMusic su http://github.com/cpesch/MetaMusic/ poiché l’infrastruttura è molto meglio.