it-swarm-pt.tech

Alguma boa recomendação para bibliotecas de MP3 / som para java?

Estou procurando bibliotecas para:

  • ler e gravar metadados (por exemplo, tags ID3v2 em mp3 e tudo)
  • converter dados de áudio compactados em dados brutos e, se possível, dados de áudio brutos em mp3, ogg, aac, ...
  • processar digitalmente os dados de áudio (energia, timbre, coeficientes cepstrais de frequência de mel - 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 recursos avançados de processamento digital.
  • FMJ : Implementação alternativa ao JMF com as mesmas limitações.
  • jAudio : Não é estável e, embora potencial, atualmente não está bem conservado.
  • Marsyas : No processamento digital, exatamente o que eu esperava, mas em C++. Talvez alguma porta/integração já esteja disponível?
  • JID : API para metadados, mas parece estar morto (última versão 2005/12/10).
  • JLayer : API para leitura e reprodução, também morta (última atualização em 28/11/2004).
  • MetaMusic : a API do programa é legal, mas nenhum projeto de código aberto independente e oficial. Portanto, não tem comunidade, suporte futuro e tudo ...
  • Light Dev : Alguns recursos interessantes, mas nem um pouco completos.

Isso é o que algumas das minhas próprias investigações descobriram. Gostaria muito de receber todas as sugestões, sugestões, críticas, ...

42
roesslerj

O JLayer deve fazer tudo o que você precisa. Não está morto, é apenas estável. O autor terminou há muito tempo e o formato MP3 não sofreu muitas mudanças desde então. Você notará que a 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 caminho de classe e esperar que os arquivos MP3 comecem a funcionar. É bem bacana. :)

8
64BitBob

Você pode tentar Xuggler . Veja como isso acontece em 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; portanto, você precisará encontrar outra biblioteca para isso. Mas o Xuggler fornecerá os dados brutos.

3
Art Clarke

Você deve tentar analisar gstreamer-Java , obtive sucesso ao reproduzir mídia através dele e deve ser possível converter arquivos de áudio com ele. Também existe JFFMpeg que se integra ao JMF, eu não me preocupei muito com isso, então não conheço a extensão total de seus recursos e estado, mas é algo para examinar mais de perto.

1
Andreas Holstenson

Aliás, acabei de mudar meu projeto MetaMusic para http://github.com/cpesch/MetaMusic/ , pois a infraestrutura é muito melhor.

1
Christian Pesch