12 October 2012

Resample wav lifes with sox

Hola, les voy a explicar como cambiarle la frecuencia de muestreo a un archivo de audio en formato .wav desde la consola de ubuntu (liux ;-).


Primero tenemos que instalar el paquete sox para eso en la consola:

$ sudo apt-get install sox

Luego, nos ubicamos en la carpeta que contiene el audio, ex: $ cd /jome/tu_usuario/music
y le damos al comando para convertir:

$ sox archivo_original.wav -c 1 -r 16k --norm archivo_destino.wav

Donde archivo_original.wav es el archivo que queremos convertir, con la opción -c 1 podemos elegir si queremos el resultado en mono o en estéreo, --norm normaliza el volumen y -r 16k indica que lo queremos con una frecuencia de 16kHz, en esta ultima opción podemos usar -r 48k, -r 44k, -r 22k, -r 11 o -r 8k
Ex: $ sox macarena.wav -c 1 -r 16k --norm macarena_16k.wav

Para más información podemos hacer $ man sox

Un truquito extra, si queremos convertir todos los archivos wav de una carpeta lo podemos hacer con un script, creamos un archivo de texto con permisos de ejecución y lo llamamos desde la consola con $ sh mi_script.sh
ex:

#!/bin/bash
rename 'y/A-Z/a-z/' * ;
mkdir wave_16kHz;
for i in `ls *.wav`;
do sox $i -c 1 -r 16k --norm ./wave_16kHz/$i;
done;


Espero sirva tanto como a mi. Hasta la próxima. ;-)

No comments: