inteligencia-artificial-musica

Crean una inteligencia artificial que separa canciones por pistas, ¿cómo funciona?

Poco a poco estamos viendo un rápido crecimiento de las redes neuronales y las inteligencias artificiales. Ahora se ha publicado una inteligencia artificial que separa canciones por pistas de audio, ¿cómo funciona?

Esta inteligencia artificial es capaz de separar la voz, la batería, las guitarras, etc. En definitiva, las diferentes pistas que componen una canción. El creador es Alexandre Défossez, quien ya ha publicado otros proyectos de AI relacionados con la música.

Así funciona la inteligencia artificial que separa canciones por pistas de audio

La inteligencia artificial se crea para resolver un problema. En este caso, al tipo de problema se le conoce como la “separación ciega de fuentes” (blind source separation), y dentro de este campo el problema más característico es el que se le conoce como “cocktail party effect”.

Artificial-Intelligence-music

Vale, pero, ¿qué es “cocktail party effect”? Resumiendo, es la capacidad que tiene una persona en concentrarse en una sola conversación en medio de una sala ruidosa. Así es como funciona esta nueva inteligencia artificial que separa las pistas de audio de una canción.

Concretamente en este caso estamos hablando de “music source separation”, y lo que está haciendo es separar una canción en sus diferentes componentes, sus diferentes pistas de audio.

Para conseguir la separación de las diferentes pistas de audio que componen una pieza musical o canción cuenta con la implementación de Demucs y Conv-Tasnet. Estas implementaciones son capaces de separar la batería, el bajo y la voz del resto con resultados sorprendentes, superando los métodos basados ​​en formas de onda o espectrogramas previos.

demucs-inteligencia-artificial-separa-canciones-pistas

Demucs se basa en la arquitectura convolucional U-Net inspirada en Wave-U-Net y SING, con GLU, un BiLSTM entre el codificador y el decodificador, la inicialización específica de pesos y las convoluciones transpuestas en el decodificador.

U-Net funciona, a grandes rasgos, tomando los datos de entrada que en este caso va a ser una canción. Esta se comprime y se codifica para después aprender a decodificarlas de la manera en la que nosotros queramos. Cuantas más canciones procese, más aprenderá a diferenciar los sonidos que componen una pieza musical.

Este tipo de redes suele ser aplicadas en problemas con imágenes donde buscamos por ejemplo los diferentes elementos que aparecen en ella. Pero en este caso se ha aplicado a un archivo de audio, donde existe una onda sonora. Como una imagen no es lo mismo que un audio porque este último tiene una dimensión temporal, se ha añadido otro módulo que es especialista en este tipo de datos temporales denominado LSTM.

Así es como funciona la inteligencia artificial que, tras entrenarse, es capaz de separar en pistas una canción en bajo, percusión, vocal, etc. Además, los desarrolladores nos ofrecen una web donde podemos ver diferentes ejemplos de los resultados de la inteligencia artificial Demucs.

¿Cómo puedo usar esta inteligencia artificial?

La verdad es que sus creadores lo han puesto muy fácil para que cualquiera pueda separar una canción en diferentes pistas de audio teniendo un ordenador.

python-anaconda-logo

Lo primero de todo es tener instalado Python Anaconda y desde el repositorio local, introducir en la terminal los siguientes comandos para crear un entorno demucs:

conda env update -f environment-cpu.yml # if you don't have GPUs
conda env update -f environment-cuda.yml # if you have GPUs
conda activate demucs

Si estás utilizando el sistema operativo Windows, reemplaza python3 por python.exe en todos los comandos proporcionados por los desarrolladores:

python3 -m demucs.separate --dl -n demucs PATH_TO_AUDIO_FILE_1 [PATH_TO_AUDIO_FILE_2 ...] # for Demucs
python3 -m demucs.separate --dl -n tasnet PATH_TO_AUDIO_FILE_1 ... # for Conv-Tasnet
# Demucs with randomized equivariant stabilization (10x slower, suitable for GPU, 0.2 extra SDR)
python3 -m demucs.separate --dl -n demucs --shifts=10 PATH_TO_AUDIO_FILE_1

Habrá una carpeta por archivo de audio, reutilizando el nombre de la pista sin la extensión. Cada carpeta contendrá cuatro archivos wav de audio estéreo muestreados a 44,1 kHz: drums.wav, bass.wav, other.wav, vocals.wav. Esas carpetas se colocarán en ./separated/MODEL_NAME.

Ahora puedes empezar a probar por ti mismo el funcionamiento de esta inteligencia artificial entrenada especialmente para separar las pistas de las canciones. Puede ser de gran utilidad sobre todo para quienes trabajan en producciones musicales.

Por supuesto, el código fuente está disponible en el repositorio de GitHub para que cualquiera pueda mejorarlo o corregir fallos que pueda tener. ¿Has investigado todo lo que puede lograrse en la música con esta herramienta? | Fuente: GitHub

Carlos Llorca
Creador y editor jefe de Techdroy. Desde pequeño me apasiona la tecnología, es una forma de vida que me gusta compartir con el mundo entero. Por ello, creé Techdroy para desarrollar mis ideas y opiniones acerca de los smartphone, ordenadores o cualquier dispositivo electrónico. ¿Te unes a nosotros?