Si puedo enviar audio a los dispositivos de salida, entonces puedo grabar el mismo audio que una onda. Con los sistemas de archivos, puede configurar un sistema de archivos de bucle invertido y escribir datos binarios en un archivo en lugar de un dispositivo.
Mi pregunta es: ¿puedo enviar la señal de audio a (por ejemplo) un archivo WAV en lugar de mis dispositivos de audio? ¿Cómo?
Respuestas:
Si.
En realidad hay muchas formas. Puede configurar un dispositivo de tarjeta de sonido ficticio que simplemente puede extraer los datos del dispositivo ... sin embargo, este no es un formato muy útil.
Más útil para usted es algo como la
arecord
utilidad que le permite espiar la secuencia de salida de alsa y guardarla en varios formatos conocidos. Básicamente, todo lo que puede reproducir en el sistema de sonido alsa puede copiarse en un archivo de sonido de formato estándar.Existen herramientas similares para el audio de pulso .
fuente
Si su sistema, o solo la aplicación que desea grabar, dirige su salida a un servidor de sonido , busque posibilidades de grabación para ese servidor de sonido. Por ejemplo, en Ubuntu, el servidor de sonido oficial es PulseAudio , que viene con el
parec
comando (delpulseaudio-utils
paquete Instalar pulseaudio-utils http://bit.ly/software-small ). Puede que necesite convertir la salida deparec
algo usable con SoX (Ubuntu: Install sox http://bit.ly/software-small ).sox
fuente
Se supone que es posible grabar directamente en Audacity, pero no pude hacer que eso funcione en mi sistema (Ubuntu 10.10). Entonces, siguiendo las instrucciones aquí de la wiki de Audacity, uso el
ALSA
dispositivo de reproducción para desviar el audio a un archivo.Esto utiliza un
.asoundrc
archivo (en su directorio de inicio):Para grabar desde flash (en firefox), uso
El archivo resultante,
/tmp/out.raw
está en formato sin formato, por lo que la conversión necesita saber cuáles son los parámetros correctos. Curiosamente,lame
parece capaz de resolver esto por sí mismo, perosox
necesita saberlo explícitamente. Entonces, lo siguiente parece funcionar:fuente
Hay un controlador de bucle invertido en el árbol ALSA, aloop-kernel.c (a través de aquí ); que tendrías que construir tú mismo (y descubrir su utilización como dispositivo a través de aplicaciones de audio como
aplay
/arecord
) ...fuente