Cómo grabar audio en Linux, entrada y salida, desde la Terminal usando PulseAudio

Hay muchas formas de grabar un flujo de audio en nuestra distribución Linux usando algún programa gráfico como Audacity, Ardour y algunos más. De igual manera podemos hacer uso de los distintos sistemas o servidores de audio ejemplo de Alsa o Pulseaudio. Si eres podcaster o simplemente deseas grabar cualquier sonido que entre o salga en tu sistema Linux, este post te interesa.

Como es evidente, necesitamos tener instalado PulseAudio en nuestra distribución GNU/Linux para poner el práctica el tutorial. Elemental querido Watson.

Podemos grabar tanto flujos de entrada (micrófonos) como flujos de salida (lo que estemos escuchando por los altavoces o auriculares del PC o portátil).

Sin embargo, cada flujo de audio será grabado en un archivo independiente. Si deseamos grabar, por ejemplo, una conversación de Skype o programa similar, deberemos grabar ambos flujos por separado, entrada de micrófono y salida de audio, y luego podemos juntar ambas pistas con el editor de audio Audacity, por ejemplo.

Identificando los dispositivos de grabación

En primer lugar y dado que vamos a hacer todo por la terminal debemos identificar en la misma nuestros dispositivos de grabación.

Desde una terminal:

pacmd list-sources | egrep '^\s+name: .*alsa_input'

En mi caso arroja lo siguiente:

name: <alsa_input.usb-Yamaha_Corporation_AG06_AG03-00.analog-stereo>
name: <alsa_input.usb-Shure_Inc_Shure_MV5-00.analog-stereo>
name: <alsa_input.pci-0000_00_1f.3.analog-stereo>

Donde el primero es mi mesa de mezclas USB Yamaha AG03. El segundo mi micrófono USB Shure MV5 y el tercero la entrada de micrófono de la propia placa base MSI.

Grabando el flujo de entrada de audio o micrófonos

Si deseamos grabarnos para un podcast o cualquier otra cosa desde los diferentes micrófonos que tengamos conectados seguiremos el siguiente esquema.

parecord --channels=1 -d stream_name nombre_de_archivo.wav

En donde:

  • parecord: Estamos ordenando a PulseAudio que grabe
  • channels=1: Forzamos que la grabación sea en mono
  • stream_name: Indicamos nuestro dispositivo de entrada o salida de audio
  • nombre_de_archivo.wav: Nombre del archivo de audio resultante de la grabación en formato .wav

NOTA: Para la grabación de voz normalmente se suele usar el formato mono, para la grabación de música podemos cambiar a 2 en channels para que grabe en estéreo.

Sabiendo esto pasamos a la práctica, ejemplo de grabación de voz desde mi micrófono Shure MV5.

Nota: Dentro de la terminal omitimos los símbolos angle bracket que encierran nuestro dispositivo.

parecord --channels=1 -d alsa_input.usb-Shure_Inc_Shure_MV5-00.analog-stereo archivo_entrada.wav

Cuando queramos detener la grabación lo haremos con la combinación de teclas Ctrl + C

Ahora tendremos en nuestro directorio personal o home un archivo .wav con lo que hayamos grabado.

El formato wav no lleva compresión, asumiendo que el estándar está en 16bits a 44kHz necesitaremos unos 320 MB de espacio por hora.

Si arrojo este archivo dentro de Audacity podemos comprobar como efectivamente está todo correcto y nuestra grabación en mono.

Identificando los dispositivos de salida de audio

Ahora necesitamos conocer nuestros dispositovos de salida de audio para poder grabar el flujo de sonido que pasa por ellos. Ya sea la voz de nuestro invitado en Skype o cualquier otra cosa.

Desde una terminal:

pacmd list-sources | egrep '^\s+name: .*alsa_output'

En mi caso y teniendo conectado lo mismo que antes el resultado es el siguiente, mismos dispositivos en la salida monitor.

name: <alsa_output.usb-Yamaha_Corporation_AG06_AG03-00.analog-stereo.monitor>
name: <alsa_output.usb-Shure_Inc_Shure_MV5-00.analog-stereo.monitor>
name: <alsa_output.pci-0000_00_1f.3.analog-stereo.monitor>

Grabando el flujo de salida de audio

Con esta opción grabaremos a nuestro interlocutor vía Skype o programa similar como Mumble o Discord. Lo que realmente estamos haciendo es grabar el sonido de nuestro dispositivo de audio como por ejemplo la salida de auriculares de nuestro PC o una interfaz de audio que tengamos conectada.

Al igual que para grabar desde nuestro micrófono vía terminal le indicamos a PulseAudio que grabe pero esta vez escogiendo nuestro dispositivo de salida.

En mi caso y para el ejemplo eligiré la tarjeta de audio del PC y al igual que antes si se trata de grabar voz eligiré la opción mono.

parecord --channels=1 -d alsa_output.pci-0000_00_1f.3.analog-stereo.monitor archivo_salida.wav

Cuando queramos detener la grabación lo haremos con la combinación de teclas Ctrl + C

De igual manera si arrojamos ese audio a Audacity comprobaremos que todo está correcto.

Se me ocurre que por ejemplo para una entrevista o charla, podemos tener dos terminales abiertas, una grabando el sonido de nuestro micrófono y otra grabando la voz del entrevistado que recogemos por la tarjeta de audio del PC. Quien dice tarjeta dice interfaz externa de audio o mesa de mezclas.

Incluso con la mesas Yamaha que cuentan con el modo LOOPBACK seleccionando únicamente la mesa grabaríamos entrada y salida en una misma orden de terminal.

Grabando música o cualquier tipo de sonido del dispositivo de salida

¿Por qué detenernos solo en el podcasting? De la misma manera que grabamos a nuestro invitado en el Skype podemos grabar música de Youtube o cualquier otra plataforma de música como SoundCloud, Mixcloud etc…

Simplemente tenemos que seleccionar nuestro dispositivo de salida de audio y grabar desde el como hicimos entes. En el caso de que sea solo música lo haremos en estéreo con la opción channels=2 dentro de la línea de la terminal.

Para el ejemplo volveré a elegir la tarjeta de audio de la placa base y grabaré al azar una canción de SoundCloud.

parecord --channels=2 -d alsa_output.pci-0000_00_1f.3.analog-stereo.monitor archivo_musica.wav

Si arrojamos el archivo de la grabación dentro de Audacity comprobaremos que efectivamente está en estéreo, y a una excelente calidad.

Igualmente podemos comprobarlo desde la terminal usando la herramienta mediainfo, así queda más friki.

Conclusión

Usando PulseAudio desde la terminal tenemos en nuestra mano muchas posibilidades para capturar cualquier sonido de nuestro PC y sistema. Además podemos combinar esta opción con alguna otra gráfica. Ejemplo, grabar un flujo de audio desde la terminal y otro con alguna aplicación gráfica como Audacity, Ardour o similares.

Le ventaja de grabar desde la terminal usando el servidor de audio PulseAudio es que no necesitas tirar de aplicaciones con GUI que alomejor consumen demasiada RAM y tu andas escaso de memoria.

Igualmente otro punto a favor es la flexibilidad que nos da hacerlo desde la terminal sin ningún tipo de pérdida de calidad.

Y por qué no, lo chulo y friki que queda. Con esto serás la envidia de tu barrio y de tu cuñado de Murcia 😉

Continuamos en línea…

Vía: Roman Cheplyaka | Linux audio recording guide

12 respuestas a “Cómo grabar audio en Linux, entrada y salida, desde la Terminal usando PulseAudio

    1. Sirve para grabar el escritorio y tu micrófono si quieres. También, si usas Jack, puedes grabar el escritorio, el micrófono y el sonido de la tarjeta de audio por si quieres hacer un vídeo tutto con una música de fondo

      Me gusta

  1. y si lo que quiero es enviar mi sonido a alguien a traves de skype directamente como cuando cambio a mezcla estereo en skype o en cualquier app que permita uso de audio, puedo hacerlo como en windows? o sea poniendo como entrada de audio la mezcla stereo?¿

    Me gusta

Los comentarios están cerrados.

Blog de WordPress.com.

Subir ↑