web-dev-qa-db-fra.com

De bonnes recommandations pour les bibliothèques MP3 / Sound pour Java?

Je recherche des bibliothèques pour:

  • lire et écrire des métadonnées (par exemple balises ID3v2 en mp3 et tout)
  • convertir des données audio compressées en données brutes et si possible des données audio brutes en mp3, ogg, aac, ...
  • traiter numériquement les données audio (énergie, timbre, Mel Frequency Cepstral Coefficients - MFCC, FFT, LPC, Autocorrelation, Wavelet, ...)

Je sais déjà et je ne me contente pas:

  • JMF: original de Sun, lit les mp3 et les transforme en WAV. Mais ne lit pas les métadonnées et ne fournit aucune fonctionnalité de traitement numérique avancée.
  • FMJ : Implémentation alternative à JMF avec les mêmes limitations.
  • jAudio : Pas stable et bien que potentiel, actuellement pas bien entretenu.
  • Marsyas : En traitement numérique exactement ce que j'espérais, mais en C++. Peut-être un port/intégration déjà disponible?
  • JID : API pour les métadonnées, mais semble morte (dernière version 2005/12/10).
  • JLayer : API de lecture et de lecture, également morte (dernière mise à jour 2004/11/28).
  • MetaMusic : L'API du programme est soignée mais pas de projet open source autonome officiel. N'a donc pas de communauté, de soutien futur et tout ...
  • Light Dev : Quelques fonctionnalités intéressantes, mais pas du tout complètes.

C'est ce que ma propre enquête a révélé. J'apprécierais grandement toutes les contributions, suggestions, critiques, ...

42
roesslerj

JLayer devrait faire tout ce dont vous avez besoin. Ce n'est pas mort, c'est juste stable. L'auteur l'a terminé il y a assez longtemps et le format MP3 n'a pas beaucoup changé depuis. Vous remarquerez que son MP3SPI codebase est un peu plus récent. Ce que fait MP3SPI, c'est qu'il traduit les capacités de JLayer en API JavaSound. Ainsi, vous pouvez prendre n'importe quel code JavaSound, ajouter MP3SPI au chemin de classe et vous attendre à ce que les fichiers MP3 commencent à fonctionner. C'est assez chouette. :)

8
64BitBob

Vous pouvez essayer Xuggler . Voici comment cela fonctionne sur vos tests:

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

si le type de conteneur sous-jacent prend en charge les métadonnées dans FFmpeg, Xuggler le prend en charge.

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

Xuggler prend en charge les formats mp3, ogg (vorbis ou speex), speex, vorbis, flac, aac, etc.

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

Xuggler ne dispose pas de modules DSP, vous devrez donc trouver une autre bibliothèque pour cela. Mais Xuggler vous fournira les données brutes.

3
Art Clarke

Vous devriez essayer de regarder gstreamer-Java , j'ai réussi à lire des médias via ce dernier et il devrait être possible de convertir des fichiers audio avec. Il y a aussi JFFMpeg qui s'intègre dans JMF, je ne l'ai pas beaucoup fouillé donc je ne connais pas l'étendue totale de ses capacités et de son état, mais c'est quelque chose à regarder de plus près.

1
Andreas Holstenson

Btw, je viens de déplacer mon projet MetaMusic vers http://github.com/cpesch/MetaMusic/ car l'infrastructure y est bien meilleure.

1
Christian Pesch