2012-03-07 15 views
8

Necesito tomar una señal de audio y extraer fotogramas de audio superpuestos. Entonces necesito convertir estos a datos de frecuencia (material de FFT/como un espectrograma) y analizar la información de frecuencia.¿Buenas bibliotecas de sonido?

Por ejemplo, si tengo un archivo mp3 de 1 minuto, quiero dividir el archivo en archivos más pequeños, de 00: 00,000 a 00: 03,000, de 00: 00.010 a 00: 03.010. Entonces necesito ver el desglose de frecuencia de cada subarchivo.

¿Qué lenguajes de programación tienen buenas herramientas de audio que podrían ayudarme a hacer esto? ¿Hay herramientas de línea de comandos de Linux que pueda usar? Puntos de bonificación para Node.js (sí, a la derecha) o Haskell, con los que estoy más familiarizado.

+0

En Python he tenido éxito con [Audiolab] (http://www.ar.media.kyoto-u.ac.jp/members/david/softwares/audiolab/sphinx/index.html) con Numpy. – Vortico

+0

También usaría Python/Numpy. Si desea tratar con archivos mp3, necesita una biblioteca para decodificarlos, como ffmpeg. Puede llamar a ffmpeg desde python usando llamadas de subproceso. – TJD

+0

Ha habido alguna discusión sobre las bibliotecas de audio para node.js, pero no sé de nada maduro. Consulte [esta discusión en la lista de distribución] (http://groups.google.com/group/nodejs/browse_thread/thread/5b62789562697956) para obtener los puntos de entrada. Estoy pensando en Python. –

Respuesta

2

Haskell:

http://hackage.haskell.org/package/hsndfile. Entonces, principalmente es solo matemática, me imagino, con hmatrix y soforth.

+0

En realidad estoy jugando con python y skipy, pero ninguno de esos chicos pone el suyo en una respuesta :) ¡TY! Podría probar la versión de Haskell, pero las funciones de FFT hicieron daño a mi cerebro –

+0

Nota: libsndfile (la biblioteca está envuelta por hsndfile) no funciona con mp3. http: // www.mega-nerd.com/libsndfile/FAQ.html#Q020 –

3

MATLAB.

GNU Octave es la sorta-clone gratuita.

+0

Wow matlab es caro. Gracias por la alternativa. –

+0

@SeanClarkHess: ¿caro comparado con qué, amigo? ¿Cuánto le costaría escribir y depurar todo ese código? Además, si eres un estudiante de tiempo completo, el descuento para estudiantes en Matlab solía ser tan bueno que tenías que ser un completo idiota para no agarrarlo. (En 2003, hice un trabajo de actualización. Llegué a la tienda de informática de la universidad para el paquete de Microsoft. Vi la edición de Matlab del estudiante. Tardé CERO segundos para decidir decir "Dame uno de esos, también". –

+0

En comparación con el gratuito Estoy preparando una presentación interna sobre el tema para mi startup. Así que, licencia comercial. Nunca la usaré para código de producción, solo para la demo. No estoy más familiarizado con matlab que con el código antiguo. , para que no sea mucho más rápido para mí. Necesito una licencia de "solo juego" para Matlab :) –

1

¿Has considerado SuperCollider? Es un lenguaje con todas las funciones y tiene muchas más funciones de procesamiento de sonido que la mayoría de las bibliotecas para otros idiomas.

Cuestiones relacionadas