ChopIAn II: ahora con Lyra de Google

Escrito por: José Luis Miralles Bono (tiempo de lectura: 15 ‘)

En Octubre de 2024 (ayer, pero en tiempos de IA, hace una eternidad), hice un experimento de Inteligencia Artificial Generativa de audio sobre emulación de estilos musicales y mezcla de estilos.

Ahora, con Lyra de Google recién salido del horno, ha llegado el momento de retomar el experimento y ver qué obtenemos.

El experimento original trataba de conseguir:

  • Crear un nocturno al estilo de Chopin
  • Crear un nocturno de Chopin tocado por una banda de rock progressivo
  • Crear un nocturno de Chopin al estilo de Bach
  • Crear un nocturno de Chopin al estilo de un raga de música clásica de India
  • Crear un nocturno de Chopin como si fuera una Ópera

Los resultados fueron, como resumen:

  • MusicGen (Meta) tenía buenos resultados en lo que se solicitaba si bien la calidad del audio y la interpretación eran algo deficiente.
  • Udio era increíblemente buena en una interpretación humana y en imitar el estilo de Chopin aunque no siempre se adaptaba a las mezclas de estilos.

Veamos ahora qué le va a Lyra…

Buscando a Chopin

Empecemos el experimento intentando emular al Chopin de los nocturnos original. Hemos probado varias aproximaciones de prompt para ver si alguna técnica concreta ofrecía mejores resultados.

Prompt corto a las bravas

Hemos empezado con lo más sencillo:

Y el resultado ha sido:

Si analizamos el resultado, aunque podemos intuir algo de la esencia de Chopin, no podemos evitar «oler» a Studio Ghibli a partir del 09′ a cada nuevo giro armónico y especialmente con la entrada del violín (sí, violín).

Bueno, como quizá el prompt podía adolecer de falta de contexto, el siguiente intento ha sido el de crear un prompt mucho más elaborado en el que se describen las características musicales de los nocturnos, y además en formato JSON (es decir, se define una variable y se indica el valor de la variable). Es largo el prompt, pero ahí va:

Y la respuesta obtenida:

Bueno, ahora tenemos un Chopin «a cachos», si cogemos solo dos segundos aislados sí que podemos intuir mucho mejor a Chopin, pero como esos dos segundos los oigamos junto con los dos siguientes o anteriores, ya no nos cuadra tanto. Por ejemplo funcionan bien del 02′ al 04′, o del 15′ al 17′.

A continuación, por si la técnica del JSON prompting no es la adecuada para Lyra hemos pedido algo similar al prompt anterior, pero en «prosa»/lenguaje natural.

Y hemos obtenido:

Ahora, antes de entrar en si emula a Chopin o no, lo primero que nos llama la atención es el deficiente ajuste de la ganancia de la supuesta «grabación». En el ejemplo anterior estaba disimulado, pero ahora «salta a la vista/oído».

En este caso se nos ofrece una parte final, también a «cachos», del 02′ al 04′ funciona bien (parece que justo, al igual que antes, en esos segundos funciona mejor), exceptuando la resolución armónica a la que llega ese giro. Y el final del 12′ al 19′ sí que podría «dar el pego».

Por cierto, ¿me lo parece a mi o justo en el 09′ oímos el mecanismo del pedal del piano, aunque no hayan funcionado los apagadores? (ya se intuía en el 05′ y 06′, pero en el 09′ esta más despejado).

Pero no encontramos el estilo claramente chopiniano. Por si acaso es una cosa de que, a pesar que describamos el estilo, como habíamos dejado de nombrar directamente a Chopin, haciendo una última prueba de este promp nombrándolo directamente.

Resultado:

Casi que nos hemos arrepentido de poner el nombre de Chopin…

Así que vamos a comparar estos resultados con lo que es capaz de hacer hoy en día Udio:

Usado el último prompt, «nombrando a Chopin» y…

Bueno, vale, cámbiame solo esa palabra, y el resultado es…

Bueno, parcialmente nos reconciliamos con las IAs generativas de música. Aunque empezamos con un ambiente mozartiano, que se transmuta en un pseudo Chopin, que repite el tropo cadencial inicial en el 11′. A partir del 13′ es de destacar los rasgos humanos en la interpretación, podemos imaginar como en la propia partitura del intérprete se ha ido marcando pequeñas articulaciones de dos en dos notas. Lástima, que a partir del 29′ la cosa empezaba a prometer en «verdadero» Chopin (cuya patita mozartiana se asoma justo en las últimas notas) y se nos acaba el tiempo del audio generado.

Probamos también, por si acaso, y sin citar a Chopin para que no se enfade Udio, con el JSON prompting.

Bueno, parece más un Schubert en algunos momentos, pero no Chopin. Tampoco nos sorprende la «humanidad» interpretativa de Udio, el uso de los fraseos y rubatos (bastante bien conducidos) y cambios de humor, en los que podríamos perfectamente imaginarnos al pianista y violinista mirándose para coordinarlos.

Pero en definitiva, vemos que por ahora, el prompt mediante JSON o grandes descripciones, no parece mejorar el resultado en este nicho de la música clásica.

Vamos ahora con los experimentos de mezcla sin preocuparnos de elaborar en exceso los prompts, ya que vemos que no acaban teniendo apenas incidencia notable. ¡A ver cuándo la ingeniería de prompts será útil en la generación de audio de música clásica!

Chopin y amigos

Chopin + Rock Progresivo

Y aunque empezamos con el prompt simple, caemos en la tentación de usar una de las recomendaciones que nos hace…

Obtenemos:

Bueno,… el ejemplo habla por sí solo. Poco rock progresivo y menos Chopin. ¿Y los cambios de compas que había prometido? En fin,…

Chopin y Bach

Ahora no nos dejamos engatusar por los cantos de sirena de los añadidos sugeridos al prompt, y además somos más esplícitos en lo que no queremos.

Me responde:

Bueno, ya es algo más interesante. ¡Por fin! Sí que podemos intuir una mano derecha algo chopiniana y una mano izquierda más anclada en algún preludio de Bach. Y aunque, algo despistado y sin rumbo claro, casi como una improvisación que está intentando llegar a un sitio que no tiene claro, la última mitad está bastante llena de «tropos» de Chopin. De nuevo, cachos sueltos que sí funcionan.

Chopin + Raga

Y seguimos con el experimento. Fusionar Chopin con un raga de la música clásica de la India. ¿A qué santo se me ocurriría en el 2024 hacer esta prueba?

Esta vez no limitamos instrumentos y a ver qué nos propone…

Bueno, de Chopin tiene que suena un piano por ahí y de raga tiene que suenan instrumentos que nos recuerdan a la india, pero no está el estilo de ninguna opción (ni en cuanto a ritmo, ni evolución melódica, etc.). Parece que estemos en la música de un supuesto ascensor para llegar a la «sala roja» de Twin Peaks (y perdón por una referencia tan friki-rebuscada, pero es lo primero que he pensado inconscientemente al oírlo).

Chopin operístico

Vamos con la última prueba de las originales:

Ni ópera ni Chopin, estamos en un musical, aunque no lo descubramos hasta el 26′ (en el 15′ ya teníamos pistas). Es el típico momento de musical que para mostrar un amor ingenuo la protagonista hace una canzoneta en ternario, baja una luna de cartón con cables visibles, aparece un bardo detrás con un laúd (aunque no lo toque en el escenario, ya que es el arpa en el foso), baja la intensidad de los focos y se mueven por detrás las paredes (y los pajaritos, sí pajaritos de noche, con la flauta brincando por detrás), con arcos de piedra de un castillo renacentista. Vamos, un pastiche sin sentido. Al igual que la emulación del volumen de la cantante, da igual que cante normal o que esté luchando contra un tutti orquestal con percusión. El volumen es el mismo, claro, va con petaca y hay un técnico de sonido.

Más allá del test de Chopin

Hemos hecho, hasta ahora, solo emulaciones de estilo. Vamos a ver si podemos conseguir dar alguna instrucción más concreta y es capaz de seguirla.

Por ejemplo, vamos a ver si le pido una melodía y la respeta.

Y ya que estamos proporcionando una melodía a alguien supuestamente con muchas capacidades, qué mejor (para hacer rimar la historia) que la melodía que se le ofreció a Bach para la Ofrenda Musical.

Proporcionamos la melodía de la forma más simple que se le pueda proporcionar, en lenguaje ABCmusic:

Que escrito parseado es partitura es:

Y dejamos, a posta, sin resolver en el do, a ver qué decide hacer Lyra. (ay, ingénuo…)

El prompt es el siguiente:

¡Claro que sí! (modo irónico off)

Más allá de que la melodía empieza «ascendente» no creo que haya entendido realmente nada de lo que le he indicado.

Probemos algo que no implique código musical.

Vale, no entiende nada de música. Se basa en «tags» que a saber cuáles son. Le he dicho puntillo, y se ha tirado por barroco. Pero ni escala ascendente, ni mayor.

Vamos a probar ahora si entiende de estructura. Le pedimos algo sencillo, pero sin esperanza…

En fin,… tampoco tiene comprensión de forma musical. Introducir la linea de bajo no es parte B. Aunque no dejo de imaginarme al cantante vestido de cueros de colorinchis apretados y la caída de cejas de Troy McClure diciendo que vuelve «a la misma canción» para intentar tangarme y convencerme de que ha vuelto a la sección A.

Hagamos, para ir terminando el examen de armonía, pero creo que a nadie nos sorprenderá el resultado. Vamos a solicitarle la secuencia armónica de la Sarabanda de Haendel:

Sí, muchas luces de neón (se ve que le gustan mucho las lucecitas de neón, ya que creo que las ha nombrado varias veces en estas pruebas), pero poco más.

¿Qué está pasando?

Después de muchas pruebas (y muchos prompts) me queda una sensación bastante clara: estos generadores pueden producir audio verosímil, pero no necesariamente música pensada. A veces aciertan el clima, el color, incluso cierta sabor estilístico. Pero cuando intento empujarles hacia decisiones que implican estructura, intención o algo tan simple como «toma esta melodía, tócala!», la respuesta es decepcionante.

Creo que aquí hay dos niveles de fallo. Uno es técnico: el texto suele funcionar más como condicionador por etiquetas que como una especificación musical. La IA responde muy bien a “quiero este tipo de energía, este tipo de instrumentación, este tipo de estética”, pero peor a “quiero que pase esto”. Se desmorona en cuanto le pides control fino.

El otro nivel es cultural. Los modelos aprenden de lo que está disponible y bien descrito. Y ahí aparece lo que la UNESCO ya advertía en 2021 sobre desigualdad digital (inicialmente pensada para diferentes culturas) pero que se nos aplica totalmente a la Música Clásica o música que se base principalmente en un sistema notacial de partitura, más que un sonido o unos sabores de efectos sonoros. Hay prácticas musicales que quedan infrarepresentadas o mal representadas en los datos, y eso se nota. La música clásica —y, más específicamente, lo que depende del pensamiento notacional— parece sufrir una doble presión: exclusión (poca presencia frente al océano comercial) y colonización (marcos de etiquetas que simplifican y perpetúan lecturas hegemónicas). En ese mapa mental, “clásica” termina siendo un único tag, mientras que en géneros comerciales existen cientos de micro-estilos.

La conclusión es tajante: Estos modelos no «piensan en notación»: generan audio plausible guiados por correlaciones texto–sonido. Si quieres un ornamento sonoro sin el mínimo control que un músico de enseñanzas elementales ya sería capaz de realizar, fantástico; pero si quieres generar música desde una perspectiva de los propios elementos constitutivos de la misma, estás vendido.

Estamos realmente frente a loros stocásticos, mucho menos evolucionados que los loros stocásticos de texto, dónde hacen una imitación pobre no de «música», si no de «audio». En mis formaciones sobre IA insisto en el concepto de que la IA generativa de texto no habla en lenguaje tal y como lo entendemos los humanos, habla en algo que «simula» el lenguaje, pero no lo es. Aquí sucede lo mismo, genera, insisto, en todo caso archivos que simulan «audio» que suena (y que puede tener perfectamente ya su utilidad para algunas cosas), pero no podemos decir que generen «música». Al menos, no mientras no le podamos pedir ese control (de mínimos) de los elementos musicales.

No es la primera vez que hablo de este problema de etiquetado: ya en mi anterior blog (Oysiao en el Oasis) allá por el lejanísimo 2008 (¡pronto hará 20 años!) me estaba quejando, sin IA, de estos mismos problemas de etiquetado e infrarepresentación de los metadatos de la música clásica. Y cómo esto de ahora se ha entrenado con aquello de antes, pues arrastramos el mismo problema, los «tags» que se manejan no son suficientemente precisos para «capturar» todo el detalle de la música clásica, y por lo tanto, «emosido engañado».

Hace unos pocos días que ha salido Seedancem 2.0 (una IA generativa de video) que se ha hecho muy viral por unos acabados que quizá para ojos de neófitos del cine tenga un efecto de «uau», pero que para los entendidos se noten todas las costuras rotas. Aunque he intentado mantener el tono de este post sin excesivos tecnicismo musicales, es posible que a algunos, que no conozcan verdaderamente de lo que estoy hablando digan: pero si la música que ha hecho es genial! tu mismo indicas que se nota una interpretación humana», pero yo veo «costuras rotas» por todos los lados. Y frente a los que dicen, «vaaa, que esto es porque ahora aun es una IA muy básica, de aquí a poco tiempo esto ya lo hará bien». Bueno, no lo dudo (sé que ese momento llegará tarde o pronto), pero por ahora, aun no he visto ningún paso certero en la dirección para poder conseguirlo en los términos que estoy exigiendo.

Y, por ahora, dejamos este test en suspenso por parte de Lyra (y demás), veremos si dentro de unos meses se presenta a la recuperación.

Si te ha gustado este post…


José Luis Miralles Bono

Etiquetas:

Comentarios

Deja un comentario