Música: ¿Cómo se puede usar el aprendizaje automático para analizar música?

Hay muchos paralelismos entre la música y el lenguaje y, como tal, existen muchos paralelos entre el procesamiento del lenguaje natural (PNL) y el procesamiento de la música. En PNL vemos que el aprendizaje automático (ML) es útil tanto para clasificar texto como para generar texto en conversaciones y aplicaciones de respuesta a preguntas. Del mismo modo, ML es una gran herramienta para muchas aplicaciones musicales y el análisis que resulta de modelos entrenados es útil para todo, desde las características de etiquetado de la música, como progresiones de acordes o géneros, hasta la generación automática de composiciones o improvisaciones.

En el lado de la clasificación de las cosas, ML se utiliza para tareas relacionadas con el etiquetado. Ejemplos típicos son cosas como el reconocimiento de género o emoción. Hay un conjunto típico de características de audio que representan todo, desde las características físicas de la señal de audio (amplitud, flujo espectral, etc.) hasta las características perceptivas (sonoridad, brillo) y las características musicalmente relevantes (croma, ubicaciones de ritmo, tempo, etc.). Luego, estas características se lanzan a un clasificador y se mide el rendimiento.

Creo que la selección de características es la parte más importante de estas tareas y, en general, los grandes aumentos en el rendimiento no provienen del uso de clasificadores alternativos, sino de encontrar características que se correlacionen mejor con la percepción humana o nuevas formas de representar los datos de audio (como Transformada de Fourier vs. Transformada Q constante). El aprendizaje profundo y otros métodos de aprendizaje no supervisados ​​son prometedores porque no siempre está claro cuáles son las mejores características, por lo que dejar que el algoritmo lo descubra suele ser una buena manera de hacerlo. Sin embargo, a pesar de todas las características y métodos de clasificación, todavía hay tanta subjetividad a la hora de clasificar una pieza musical y, a menudo, dos personas no siempre están de acuerdo con el género, estilo o emoción particular de la música. Además, simplemente hacer algunos clusters sin supervisión en un conjunto de datos de música que abarca muchos estilos generalmente no da como resultado clústeres que contengan música que sea perceptivamente similar. La similitud musical es difícil de describir y medir debido a la gran cantidad de dimensiones en las que se puede describir la música. Este es un gran desafío en la recuperación de información musical.

También puede ver el ML utilizado en la ejecución de música en tiempo real para identificar sonidos como el tambor que se está tocando o el instrumento que se está tocando. Los músicos electrónicos usarán estas clasificaciones para controlar algunos otros parámetros en la música. Pero, de nuevo, ningún método será 100% especialmente en escenarios de rendimiento en tiempo real donde puede haber una buena cantidad de ruido, por lo que a menudo el éxito de estas actuaciones depende de las decisiones de los músicos y desarrolladores sobre cómo manejar los errores.

ML también es una buena herramienta para el seguimiento de tono polifónico. El seguimiento de tono monofónico se considera un problema resuelto, pero el seguimiento de tono polifónico es extremadamente difícil. La separación perfecta de la fuente de sonido es el santo grial del procesamiento de la señal de música y, por ahora, no es nada perfecto, por lo que ML se utiliza para crear modelos de fuentes individuales en la señal y rastrear sus trayectorias de frecuencia a medida que avanzan en el tiempo. La factorización matricial no negativa, HMM y RBM son actualmente muy populares en esta investigación.

Desde el punto de vista generativo, donde las aplicaciones crean música original, ML a menudo se usa en aplicaciones de “modelado de estilos” en las que se aprende una representación estadística del estilo de un músico o compositor en base a un conjunto de datos de su trabajo. Por ejemplo, si quisiéramos crear un robot de jazz (esta es realmente mi investigación) que podría improvisar como John Coltrane, podríamos aprender un modelo que describa las probabilidades de transición de nota a nota (cadenas de Markov), tendencias de escala a acorde, tendencias rítmicas , longitudes de frase, etc. Una vez que se construye este modelo, podemos usarlo para crear nueva música al estilo del músico del que se formó el modelo.

Como puede ver, ML es una herramienta poderosa en el campo de la recuperación de información musical y la música de computadora y estoy seguro de que seguirá siendo igual que en otros campos como PNL y visión por computadora.

Hace un tiempo escribí un artículo sobre el aprendizaje automático del estilo musical. Se puede encontrar aquí http://musicweb.ucsd.edu/~sdubno

El punto principal es que la música, vista como una serie de tiempo, puede tener motivos de longitud variable, por lo que la memoria pasada diferente determina la continuación. Desde entonces, pasamos a representar la música como un gráfico, donde se vinculan segmentos repetidos, y la improvisación se realiza mediante una caminata aleatoria en ese gráfico. Es un modelo más simple de entender, ya que básicamente “rasca” una grabación de audio (o midi) al hacer que la “aguja” salte entre segmentos que tienen un pasado común, haciendo así transiciones suaves. Lo llamamos Oráculo de Markov Variable, u Oráculo de Memoria Variable (VMO), y lo que hace el oráculo es ofrecer buenas continuaciones para un pasado dado. Como se aprende en una pieza con un estilo particular, las melodías emergentes están “en el estilo” de esa grabación.

Los principales desafíos son encontrar las características correctas o las propiedades de sonido que se pueden usar para construir modelos musicales como este, y es de esperar que DNN pueda proporcionar alguna información, además del NMF y otras características que están bien establecidas en el análisis de audio. Las versiones recurrentes también podrían capturar aspectos temporales, por lo que aún queda mucho por hacer.

Uno de los principales problemas, independientemente de la técnica de modelado, es cómo especificar los requisitos del usuario a partir de dicho modelo. No queremos que el sistema se ejecute aleatoriamente como un sintetizador de música ambiental o textura de sonido. Se está haciendo un trabajo interesante ahora sobre “controlar” o “guiar” la improvisación, o en otras palabras, proporcionar un mapeo entre la especificación limitada o meta-nivel del resultado musical deseado, y la música real generada por la máquina.

Detección de acordes, progresiones de acordes, ritmo, patrones, motivos, cambios clave, emociones provocadas por cambios clave, propósito de los cambios clave, etc.

Luego haga que la máquina intente escribir una canción con ciertos criterios.