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](https://binary-coffee.dev/podcast/espacio-binario), 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](https://api.binary-coffee.dev/uploads/podcasts_resumen_example_d2dbbdf1b0.png) 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](https://gist.github.com/wil92/4f07b4e592e936d8dce3289ac571dfb2) 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](https://twitter.com/espac10binar10) en twitter y ayudarnos a crecer. > Happy coding!!!
Opiniones
noavatar
muy buen articulo, me gustó mucho.