2010-03-12 14 views
6

¿Hay una biblioteca madura que pueda habilitar la entrada y salida de audio y trabajar dentro de Haskell? (Una buena envoltura está bien, por supuesto.)Captura de entrada de audio desde el micrófono, con Haskell?

Estoy buscando algo que pueda capturar fácilmente la entrada de micrófono y, quizás, reproducir varios archivos de audio también.

Gracias.

+1

Tengo un contenedor inédito basado en tuberías para PortAudio (una biblioteca de audio multiplataforma) que podría terminar, pulir y lanzar.Si las sugerencias de otros te dejan con la sensación de que se necesita algo como esto en el ecosistema, avísame y trataré de hacerlo pronto. – gspr

+0

Oh, heh, solo ahora me di cuenta de que esta pregunta es muy antigua y que simplemente resurgió debido a que un tipo agregó una nueva respuesta. – gspr

Respuesta

4

capturar fácilmente entrada de micrófono y, tal vez, jugar varios archivos de audio, así ..

Es fuertemente dependerá de su plataforma de sistema operativo: hay bibliotecas C estándar para esta funcionalidad en cada sistema operativo, y estarás buscando enlaces Haskell para ellos (por ejemplo, PulseAudio, etc.). Busque en la categoría de sonido en Hackage:

P. ej HSndFile para la escritura de archivos de audio, http://hackage.haskell.org/package/HSoundFile

3

el módulo pulse-simple expone los enlaces para capturar el sonido desde el micrófono, consulte el segundo ejemplo en la parte superior de la página;
https://hackage.haskell.org/package/pulse-simple-0.1.13/docs/Sound-Pulse-Simple.html
bibliotecas de audio de pulso requeridas por cabal se pueden obtener a través de cygwin (buscar "pulso" en el instalador cygwin).

También hay un enlace a sox, que parece prometedor. https://hackage.haskell.org/package/sox

estoy seguro de que hay otras envolturas api que se encuentran en la categoría de sonido de hackage.

para Linux no es una unión a Jack, tiene "Unix" como una dependencia, no se acumula en las ventanas ...

+0

audacity se basa en wxWindows y ffmpeg, ambos están portados a haskell; haskell.org/haskellwiki/WxHaskell, hackage.haskell.org/package/ffmpeg-light – error

+0

¡La utilidad de 'sox' nunca se apodera de mí! – Vorac

1

Usted puede hacerlo con OpenAL y ALUT. Logré instalar ambos en Windows 8, aunque no fue exactamente sin esfuerzo; ALUT requiere que la biblioteca de C subyacente se compile manualmente en una DLL.

Instalar OpenAL, por otro lado, es tan simple como descargar el SDK y escribir cabal install OpenAL en el símbolo del sistema.

Con ALUT, puede crear búferes OpenAL a partir de archivos de audio (incluido WAV) y vistas de memoria.

Encontré un ejemplo de grabación y reproducción de audio here. Debería ser bastante sencillo adaptar el código a sus necesidades.

Avíseme si he dejado algo y trataré de dar más detalles.

Cuestiones relacionadas