En el departamento de Ideas Locas hemos tratado la incidencia de la Inteligencia Artificial (IA) en el mundo del arte con el proyecto Maquet, una Inteligencia Artificial que es capaz de copiar el estilo de un artista. Esta vez trataremos otro campo en el cual las máquinas tienen mucho que decir: la música.
El impacto de las tecnologías de Inteligencia Artificial en la industria musical está presente en todas las fases de la cadena de comercialización por las que pasa una obra, desde su creación hasta su consumo por el público. A nivel creativo, desde los años cincuenta, se han conseguido máquinas que utilizan Inteligencia Artificial para componer canciones gracias a tecnología de aprendizaje automático o de aprendizaje profundo.
A nivel de comercialización musical, la Inteligencia Artificial es utilizada por diferentes agentes. Las discográficas la utilizan para optimizar procesos de descubrimiento de nuevos talentos, para ordenar y administrar automáticamente todos los datos sobre la organización de conciertos y, especialmente, para diseñar estrategias de marketing más eficientes.
También, actúa a favor de los intereses de los artistas con sistemas que permiten controlar su presencia en el mercado global. A favor de autores y editores, se incluye la posibilidad de detectar plagios sobre las canciones. A favor de usuarios, la Inteligencia Artificial ha logrado realizar recomendaciones musicales muy precisas y se han inventado programas de reconocimiento de audio que permiten descubrir qué canción está sonando.
Novedades en gestión de los derechos musicales
En cuanto a la gestión de los derechos generados por las obras musicales, la mayor novedad en este campo es la aparición del blockchain y de los NFTs, que permiten eliminar parte de los intermediarios de la cadena de comercialización de las obras musicales, así como la falta de transparencia y la complejidad del sistema de reparto de los dividendos. Esto permite dotar a los autores y artistas de mayor remuneración y control sobre sus canciones.
Entre todas estas novedades tecnológicas, es destacable el desarrollo de modelos de Inteligencia Artificial para la composición musical por el nivel de precisión que se ha alcanzado y por la democratización del uso de estos sistemas. Ya no es necesario ser un gran ingeniero de sonido para saber utilizarlos.
La librería Magenta de Google
Para que veamos un ejemplo práctico de cómo de sencillo puede ser este proceso, vamos a utilizar la librería Magenta de Google, creada en 2016, que nos permitirá jugar con la tecnología con unas pocas líneas. Este proyecto, que utiliza el framework Tensorflow, permite trabajar con modelos de deep learning y reinforcement learning para la creación de nuevas obras.
Magenta ha sido utilizado hasta ahora en numerosas composiciones, siendo la más destacada, la canción Break Free, del álbum I Am AI de la artista pop americana Taryn Southern. Además, en abril de 2021, se anunció su intervención en un álbum titulado Lost Tapes of the 27 Club, inspirado por el estilo de Kurt Cobain, Jimi Hendrix, Amy Winehouse y Jim Morrison, cuyas canciones fueron introducidas en el programa para ser estudiadas y entrenar su algoritmo.
Magenta incluye cuatro herramientas: generar una secuencia musical desde cero, continuar una secuencia inacabada, interpolar entre dos canciones y grooVAE, un algoritmo de continuación de secuencias especializado en baterías. De estas os mostraremos MelodyRNN.
¿Qué es MelodyRNN?
MelodyRNN es un modelo de continuación LSTM basado en el lenguaje, un tipo de red recurrente que es capaz de recordar patrones de larga duración con el uso de unas forget gates. Los autores de este post hemos escrito un código en Google Colab, basado en el original de la librería Magenta. A partir de aquí describiremos distintas funcionalidades de la librería y los pasos que realizamos en el código mencionado, por lo que recomendamos que tengáis a la vez el artículo y el código abierto, dado que algunas partes de este se omitirán.
Paso a paso
Después de instalar e importar las librerías a utilizar, crearemos un objeto NoteSequence, con el que iremos añadiendo notas a nuestra secuencia de entrada para la LSTM. Esto lo realizaremos con la función notes.add. Ejemplo:
Los tres parámetros de entrada de la función, que corresponden a los parámetros del estándar MIDI, son los siguientes:
- Pitch: con el que especificaremos la nota (frecuencia principal) del instrumento.
- Start y end time: momento en el que empieza y acaba la nota, en segundos
- Velocity: que se reconoce normalmente como la sonoridad de un tono
Aunque este tono sonará muy metálico, generado por ordenador. Para utilizar instrumentos más “reales”, como una batería, deberemos modificar la función anterior añadiendo los parámetros instrument e is_drum:
Si generamos distintas notas y las añadimos a nuestro NoteSequence, podemos mostrar el MIDI generado y escucharlo desde nuestro Google Colab:
Una vez hayamos añadido todas las notas a nuestra secuencia, y si estamos corriendo el código en Google Colab, podemos guardarlo como fichero MIDI y descargárnoslo con:
Ahora cargamos el modelo pre-entrenado:
Una vez tenemos el modelo, debemos definir 3 parámetros importantes de la RNN:
- La secuencia de entrada, en nuestro caso el twinkle-twinkle que hemos definido.
- El número de pasos que generará la red neuronal a la salida.
- La temperatura, que te permite regular la capacidad de la red neuronal de improvisar notas no parecidas a la secuencia de entrada.
Ya con los parámetros seleccionados y habiendo creado el objeto generator_options, ejecutamos el modelo y obtenemos la salida de éste con las siguientes funciones:
Creatividad computacional
Una vez creada la canción, puede surgirnos una última duda. ¿Puedo publicarla bajo mi nombre, atribuyéndome la autoría de la misma? ¿Es Magenta el autor o lo sería Google?
Como muchas de las formas de hacer arte que han ido surgiendo a lo largo de los siglos, la ‘creatividad computacional‘ también genera mucha incertidumbre en nuestra sociedad. Por eso, en el siguiente artículo abordaremos esta cuestión, analizando las diferentes propuestas legales que existen actualmente para determinar quién es autor de las obras compuestas por Inteligencia Artificial.