Binary Coffee

¬ŅC√≥mo normalizar y eliminar ruido en audios desde linux?

hack linux

Jugando un poco con las maneras de grabar el podcast EspacioBinario, dimos con una nueva manera de grabar y decidimos utilizarla y probar. Esto fue a través de mensajes de audio por telegram.

example of audios in telegram

Pero a la hora de editar, nos percatamos de que el nivel de volumen de cada audio era completamente diferente. Algunos muy bajos y otros muy altos, y para rematar, dada la pobre calidad de nuestros dispositivos y de los locales donde grabamos, en la mayoría de los audios había un ruido ambiente insoportable.

Ante estos problemas, estuvimos investigando y buscando herramientas para mejorar la calidad de los audios y evitar tener que regrabarlos. A continuación voy a hacer un listado de las herramientas que encontramos y utilizamos.

Convertir del formato .ogg a .mp3

Como todos los audios fueron grabados en telegram, esta herramienta utiliza el formato .ogg y para mejor manejo de los mismo decidimos convertirlos a .mp3

Para esto utilizamos la herramienta ffmpeg. Con esta herramienta puedes de una manera muy sencilla, convertir un audio o un listado de audios a .mp3

ffmpeg -i audio.ogg new_audio.mp3

Normalizar audios

Producto de que la mayoría de los audios contaban con diferentes niveles de volumen y al unirlos la diferencia era muy grande, decidimos normalizar los audios y ponerlos todos a un mismo nivel de volumen.

Para esto encontramos una aplicación de terminal llamada mp3gain. Con la misma puedes de manera muy sencilla normalizar el audio de un listado de ficheros mp3 e incluso normalizar el audio en un solo fichero.

En nuestro caso lo utilizamos para normalizar un listado de ficheros, y se puede hacer de la siguiente manera:

$ mp3gain -c -r *.mp3

Reducir el ruido ambiente de los audios

Como también mencioné, el ruido ambiente en los audios fue otro de los problemas, y para resolver esto hicimos uso de la herramienta sox.

Para utilizar esta herramienta, deben cerciorarse de instalar sus librerías también, por tanto a la hora de instalarla haganlo de la siguiente manera

sudo apt install sox libsox-fmt-ao libsox-fmt-mp3 libsox-fmt-pulse libsox-fmt-alsa libsox-fmt-base libsox-fmt-oss

y luego para utilizarlo es de la siguiente manera:

# Crear el archivo de an√°lisis del audio
sox audio.mp3 -n noiseprof tmp_profile

# Eliminar el ruido del audio y definir la tolerancia
# de ruido, esto va desde 0.0 hasta 1.0.
# A mayor valor en la tolerancia, m√°s ruido elimina.
sox audio.mp3 new_audio.mp3 noisered tmp_profile 0.10

# Eliminar el archivo de an√°lisis
rm tmp_profile

Extra

Para hacer todo esto de manera m√°s sencilla (que somos ingenieros joder), pues creamos algunos scripts que pueden reutilizar si quisieran:

Scripts in github

El primer script (normalize.sh) te permite convertir y normalizar un listado de archivos de audios en formato .ogg

# ejecutar en el mismo directorio donde tienes los audios
./normalize.sh

El segundo script (clean.sh) permite eliminar el ruido de un audio determinado.

# pasar como par√°metros del script el audio y el nombre del nuevo audio
./clean.sh audio.mp3 without_noise.mp3

Conclusiones

Espero te sirva de ayuda esta serie de aplicaciones para trabajar con tus audios y mejorar la calidad de los mismo así como nos fue de ayuda a nosotros.

Cualquier duda o sugerencia puedes dejarla en los comentarios y recuerda que puedes seguir nuestro podcast EspacioBinario en twitter y ayudarnos a crecer.

Happy coding!!!

Opiniones
noavatar
muy buen articulo, me gustó mucho.