¿Sabías que existe un generador de letras de canciones que utiliza redes neuronales recurrentes?
Ya hemos visto en un artículo anterior que la inteligencia artificial se rendía al servicio de los artistas para ayudarlos a cantar bien, a componer melodías instrumentales o para mezclar y tratar archivos de audio en posproducción. Sin embargo, nuestro ordenador también puede reivindicarse como artista por completo ya que también es capaz de generar letras, adaptadas a los estilos musicales y al humor que se trata de crear.
Algunas herramientas, como “These Lyrics Do Not Exist” permiten generar aleatoriamente un estribillo, dos estrofas y dos puentes para 6 géneros musicales y 5 humores predefinidos. Basta con precisar un tema con una palabra, una frase o un emoji, y la herramienta hace todo el trabajo en tu lugar.
¿Cómo funciona?
La generación de letras de canciones se basa en algoritmos que utilizan redes neuronales recurrentes (RNN). Esas redes neuronales se utilizan mucho para las problemáticas de generación de textos, en particular para predecir caracteres o palabras que sigan respectivamente las letras y palabras anteriores.
Como su nombre indica, las RNN constituyen una clase particular de redes neuronales utilizadas para tratar datos secuenciales. En las redes neuronales clásicas (como las CNN), las salidas generadas por dos entradas diferentes son totalmente independientes. Sin embargo, durante el análisis de datos textuales (o de una serie temporal), a menudo existe una gran correlación entre la entrada y la salida. Para tratar esos datos, es necesario que la red conserve el rastro de todos los datos anteriores (o al menos de los últimos datos) que ha visto. Esto se realiza mediante lo que se llama “el estado escondido” de la red.
En la representación de arriba, s es el estado escondido de la red, x es la entrada, o la salida y W representa los pesos del estado escondido. U y V también son parámetros para las capas de entrada y de salida (correspondiente a determina transformaciones en la entrada y la salida, por ejemplo).
La etapa de despliegue hace que el aspecto recurrente de la red sea muy claro: en cada etapa, los parámetros y los pesos permanecen igual, salvo que cambiamos la entrada cada vez. La etapa del despliegue puede efectuarse después de un determinado número de pasos de tiempo t. Por ejemplo, si queremos predecir la puntuación apropiada después de una frase, el número de pasos de tiempo puede ser el número de caracteres de la frase o el número de palabras de la frase.
Habitualmente, el estado escondido o, más precisamente, la capa de estado escondido se elige de tal manera que su funcionamiento dependa también de los datos vistos anteriormente. Se utilizan muchas capas de ese tipo, pero las LSTM (Long Short-Term Memory) y las GRU (Gated Recurrent Units) son las más corrientes
¿Cómo elegir esos datos?
Aparte del calibrado el modelo RNN, lo más importante para poder generar letras según el género o el humor buscado se basa en la constitución de la base de datos de entrenamiento, que se debe adecuar lo más posible al estilo musical que se quiera producir. Es posible scrapear letras utilizando la API de Genius.com (y siguiendo nuestra metodología de Webscraping), que incluye una gran parte de las letras de canciones del mundo y en muchos idiomas. También habrá que hacer un gran trabajo de pretratamiento de los datos antes de entrenar su modelo: quitar todo el contenido no lírico, unificar las erratas que hagan referencia a la misma palabra o eliminar los elementos periféricos del texto que no sean pertinentes.
¿Te interesan las aplicaciones del Deep Learning en la música? Descubre el proyecto de nuestros alumnos en este resumen de nuestros DataDays #2
Para convertirse en el próximo “Data Artist” o simplemente para saberlo todo sobre el Deep Learning o el tratamiento de datos, ponte en contacto con un miembro de nuestro equipo para obtener más información sobre nuestro contenido de formación.