Quaisquer boas recomendações para bibliotecas de MP3 / Sound para java?

Estou procurando bibliotecas para:

  • ler e gravar metadados (por exemplo, tags ID3v2 em mp3 e tudo)
  • converter comprimido para dados de áudio brutos e, se possível, dados de áudio brutos para mp3, ogg, aac, …
  • processar digitalmente os dados de áudio (energia, timbre, coeficientes de freqüência mé – trica – MFCC, FFT, LPC, autocorrelação, Wavelet, …)

Eu já sei e não estou contente com:

  • JMF: original da Sun, lê mp3 e transforma em WAV. Mas não lê metadados nem fornece resources avançados de processamento digital.
  • FMJ : Implementação alternativa para o JMF com as mesmas limitações.
  • jAudio : Não estável e, embora potencial, atualmente não é bem mantido.
  • Marsyas : No processamento digital, o que eu esperava, mas em C ++. Talvez alguma porta / integração já esteja disponível?
  • JID3 : API para metadados, mas parece estar morto (último lançamento em 2005/12/10).
  • JLayer : API para leitura e reprodução, também morto (última atualização em 2004/11/28).
  • MetaMusic : API do programa é puro, mas nenhum projeto de fonte aberta autônomo oficial. Portanto não tem comunidade, suporte futuro e tudo …
  • Light Dev : Algumas características interessantes, mas não completas.

Isso é o que algumas de minhas próprias investigações apareceram. Eu apreciaria muito todas as inputs, sugestões, críticas, …

    JLayer deve fazer tudo que você precisa. Não está morto, é apenas estável. O autor terminou há muito tempo e o formato MP3 não sofreu grandes alterações desde então. Você notará que sua base de código MP3SPI é um pouco mais recente. O que o MP3SPI faz é que traduz as habilidades do JLayer em APIs JavaSound. Assim, você pode pegar qualquer código JavaSound, adicionar MP3SPI ao classpath e esperar que os arquivos MP3 comecem a funcionar. É muito bacana. 🙂

    Você poderia tentar o Xuggler . Veja como isso acontece nos seus testes:

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

    se o tipo de contêiner subjacente tiver suporte a metadados no FFmpeg, o Xuggler o suportará.

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

    O Xuggler suporta 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, ...) 

    O Xuggler não possui módulos DSP, então você precisará encontrar outra biblioteca para isso. Mas o Xuggler lhe dará os dados brutos.

    Você deve tentar olhar para o gstreamer-java , eu tive sucesso com a reprodução de mídia através dele e deve ser possível converter arquivos de áudio com ele. Há também o JFFMpeg que se integra ao JMF, eu não mexi tanto com ele, então não sei a extensão total de seus resources e estado, mas é algo que deve ser examinado mais de perto.

    A propósito, acabei de transferir meu projeto do MetaMusic para http://github.com/cpesch/MetaMusic/, já que a infraestrutura é muito melhor.