Juan Sebastián Bach es uno de los compositores más conocidos en el mundo en lo que se refiere a la música barroca. Bach vivió y trabajó en Alemania durante el siglo 18 y es uno de los grandes maestros de técnicas como el contrapunto y la armonía. En una de las formas en donde Bach demostró su maestría fue en un tipo de himno polifónico llamado cantata coral. Se basa en textos luteranos y la composición empieza con una parte muy conocida que la canta un soprano, y entonces se componen tres armónicos cantados por el alto, tenor y el bajo. De hecho, Bach escribió más de 300 composiciones corales.
Estas composiciones han atraído a los científicos del cómputo porque el proceso de producirlas parece ser algorítmico. Desde luego que hacer esto bien no es tan fácil porque debe haber una delicada combinación entre armonía y melodía. Y lo que se preguntaban muchos programadores es si una máquina podría crear composiciones al mejor estilo de Bach.
Hoy se tiene una respuesta gracias al trabajo de Gaetan Hadjeres y Francois Pachet, del Laboratorio de Computación de Sony, con sede en París. Los científicios desarrollaron una red neuronal que aprendió a producir cantatas corales al mejor estilo de Bach. A su máquina la llamaron DeepBach.
«Después de entrenar al programa en armonización coral de Juan Sebastián Bach, nuestro modelo fue capaz de generar corales altamente convincente en el estilo del músico», dicen Hadjeres y Pachet. De hecho, la mitad de las ocasiones las composiciones del software engañaron a los humanos pensando que se trataban obras de Bach.
Las técnicas de aprendizaje de la máquina son directas. Hadjeres y Pachet comenzaron creando un conjunto de datos para entrenar la red neuronal. Empezaron con 352 corales compuestas por Bach y entonces las combinaron a otros tonos para predefinir el rango vocal. Esto dio entonces un conjunto de 2503 corales. Usaron el 80% de esto para entrenar la red neuronal para reconocer las armonías de Bach y el resto para validarlas.
La máquina produjo armonías como habría hecho Bach. El equipo probó el software dándole la melodía y entonces se usó para producir las armonías para tres otras voces, alto, tenor y bajo. Y aunque otros enfoques algorítmicos han hecho ya esto, lo que interesa realmente es qué tan bien se compara contra la música del compositor. Más de 400 músicos profesionales y estudiantes de música fueron consultados en este sentido. Se tenía que determinar cuáles de las armonías sonaban más como Bach. El equipo incluyó armonías producidas por otros algoritmos en esta prueba.
Los resultados son interesantes por sí mismos: cuando se les dio armonías generadas por DeepBach, ceca de la mitad votaron juzgando que se trataba de obras escritas por Bach. Esto resultó mucho más alto que la música generada con otros algoritmos. «Consideramos que es un buen puntaje conociendo la complejidad de las obras de,. Bach», dijeron los científicos.
Incluso, cuando se confrontó a los músicos con la música real de Bach, estos juzgaron correctamente quién era el autor en un 75% de las veces. Esto es un trabajo con implicaciones fascinantes. Si es posible crear una máquina de aprendizaje profundo para producir corales al estilo de Bach, ¿por qué no hacerlo en el estilo de diferentes compositores o con otros estilos de música?
Esto podría además ser una manera interesante de analizar las composiciones y así estudiar la naturaleza de la creatividad. «Este método no es aplicable sólo a los corales de Bach, sino a un amplio rango de música polifónica coral, desde Palestrina a Take 6», comentan los investigadores. Pero es fácil decir muchas cosas pero más difícil probar estas especulaciones, pues otras composiciones musicales no están siempre tan organizadas.
Pero probablemente la cuestión es la intención del compositor. Vamos, que un programa quizás puede pintar como Van Gogh, o hacer música como Bach, o escribir como Borges, pero eventualmente hay que preguntarse, ¿cuál es la intención del autor en su obra? Y en eso parece que muestra de nuevo que «no hay nadie en casa».
Referencia:: DeepBach: A Steerable Model for Bach Chorales Generation