.

Continuando con algo relacionado con la música clásica me encuentro, otra vez en Hacker News, con una noticia de julio en VentureBeat sobre un sistema desarrollado por Florian Henkel, Rainer Kelz y Gerhard Widmer que puede predecir la posición más probable dentro de una partitura correspondiente a una grabación sonora, dando un rendimiento destacadamente superior a los seguidores de partitular más modernos basados en imagen, en términos de precisión de alineamiento. Para los más interesados, están disponibles tanto el texto académico como el código correspondiente pero el artículo ofrece un resumen de algunos de los puntos clave del proyecto:

El equipo modelo el seguimiento de la partitura como una tarea de segmentación de imagen. Basándose en una interpretación musical hasta un determinado punto en el tiempo, su sistema predice una máscara de segmentación —una pequeña «pieza» de imagen— para la partitura que se corresponde con la música que está siendo reproducida en ese momento. Mientras que los sistemas de seguimiento que se apoyan sólo en entrada de audio de tamaño fijo no son capaces de distinguir notas repetidas si exceden un determinado contexto, el sistema propuesto no tiene problemas en partituras que aabarcan periodos de tiempo más largos en el audio, según declaran los investigadores.

En el transcurso de los experimentos, los investigadores obtuvieron muestras polifónicas de piano del Multi-model Sheet Music Dataset (MSMD), que abarca temas de varios compositores incluyendo Bach, Mozart y Beethoven. Tras identificar y corregir manualmente los errores de alineamiento, entrenaron su sistema con 353 pares de partituras e información MIDI.

Arquitectura de red en U condicionada por audio. Cada bloque (A—I) está compuesto de dos capas convolucionales con activación ELU y normalización de capa. La capa FiLM se coloca antes de la última función de activación. La codificación del espectrograma […] se pasa a una capa recurrente. El estado oculto de esta capa recurrente es utilizado después para el condicionamiento en la capa FiLM. Cada bloque simétrico tiene el mismo número de filtros, empezando por 8 en el bloque A y aumentando con la profundidaz hasta 128 en el bloque E. Fuente: arXiv.org

Sin apenas tiempo de indagar en el emuladores WaveNet de equipo de guitarra, voy a tener que poner orden y establecer prioridades entre todas las cosas que quiero curiosear.

.

El blog de Blax ya no es accesible. No es que sea una noticia, el último apunte que señalé del espacio que mantenía era de 2006, pero no deja de ser una pérdida. Afortunadamente, tras el 50.º aniversario de Eurielec hemos retomado el contacto unas cuantas personas de las que pululábamos por el garito con cierta asiduidad, y esto es lo que dejaba caer el otro día el caballero en cuestión: dadabots, un proyecto de creación de redes neuronales que generan pistas de sonido a partir de audio sin compresión. En concreto, puso un enlace a una emisión continua de death metal técnico generado a partir de música de Archspire, un grupo he mencionado un par de veces.

Como cuentan en una entrevista en The Outline, los autores del proyecto son CJ Carr y Zack Zukowski, dos antiguos alumnos de la Northeastern University que se conocieron en un curso de la Berklee College of Music. Han publicado varios discos generados de esta manera en bandcamp, y hace año y medio publicaron su trabajo en arxiv. En su web lo resumen de manera más coloquial:

Empezamos con el código de investigación original de SampleRNN en theano. Es una red LSTM jerárquica. Las LSTMs pueden ser entrenadas para generar secuencias. Secuencias de lo que sea. Podría ser texto. Podría ser el tiempo. Lo entrenamos con las formas de onda brutas de discos de metal. A medida que va escuchando, intenta adiviar la siguiente fracción de milisegundo. Juega a este juego millones de veces a lo largo de varios días. Tras el entrenamiento, le pedidos que genere su propia música, como se puede preguntar a una máquina de predicción meteorológica que invente siglos de patrones climatológicos aparentemente plausibles.

Alucina 10 horas de música de esta manera. Eso es demasiado. Así que hicimos otra herramienta para explorarla y organizarla. Encontramos los trozos que nos gustan y [con ellos] componemos un álbum para consumo humano.

Entrenar redes es un desafío. Hay muchos hiperparámetros que probar. ¿Cómo de grande es? ¿Cuál es el ritmo de aprendizaje? ¿Cuántos niveles de la jerarquía? ¿Qué optimizador del alogritmo de gradiente descendente? ¿Cómo muestra de la distribución? Si lo haces mal, suena como ruido blanco, silencia o apenas nada. Es como elaborar cerveza. ¿Cuánto de levadura? ¿Cuánto de azúcar? Estableces los parámetros al principio y no sabes si va a saber bien hasta mucho después.

Entrenamos cientos de redes hasta que encontramos buenos hiperparámetros, y lo publicamos para que todo el mundo lo usara.

Logotipo de dadabots.

Recuerdo que los casos que veía hace años de uso de RNNs para componer música partían casi siempre de datos MIDI, y es curioso ver como la evolución de los sistemas y el aumento de la capacidad computacional permite trabajar volúmenes mucho mayores datos.

.

Keunwoo Choi es un estudiante del Centro de Música Digital de la Queen Mary, Universidad de Londres. Bajo la tutela del profesor Mark Sandler y el doctor Gyorgy Fazekas ha publicado un texto titulado «Text-based LSTM networks for Automatic Music Composition», disponible en arXiv y que resume en su página web:

RNN de palabras (LSTM) sobre Keras con representaciones textuales empalabradas de ficheros MIDI de la batería de Metallica, provenientes de midiatabase.com.

No es la primera vez que veo el uso de redes neuronales recurrentes para componer música, lo que no quita que me siga pareciendo interesante. Los resultados no son espectaculares pero sí curiosos, y me gustaría tener más tiempo para poder entender mejor cómo se implementa la RNN.