Recuperación por Contenido de melodı́as utilizando Redes Neuronales Artificiales Ángel Abregú 1er cuatrimestre de 2012 Resumen La recuperación por contenido de melodı́as consiste en comparar un fragmento de audio contra una base de datos de melodı́as y devolver un subconjunto de tamaño acotado. Entre las candidatas debe estar la versión completa. Los principales problemas que enfrenta son la elección de la codificación de melodı́as y el criterio de comparación. Entre las soluciones actuales, los enfoques no conexionistas han mostrado ser mejores que los no conexionista en cuanto a escalabilidad y a certeza en el reconocimiento de la melodı́a. En este trabajo, se propone una variante de una solución anterior, mapeando distintas caracterı́sticas en Mapas Autoorganizados de Kohonen independientes. Y luego utilizar un vector constituı́do por las respectivas BMU para identificar cada melodı́a. El criterio de comparación es, inicialmente, el parecido entre dos vectores de esta clase. Palabras clave: SOFM, melodı́a, content-based retrieval, Kohonen 1. Introducción La recuperación por contenido (Content-Based Retrieval ) de melodı́as, es un caso de búsqueda y recuperación de información, donde se mide el grado de similaridad de una consulta, que consiste en un fragmento de una melodı́a, contra una base de datos de melodı́as. Tras lo cual se devuelve una lista (a modo de ranking) con las posibles canciones a las que el fragmento pertenece. El fragmento de la melodı́a puede proceder de una grabación de corta duración, una secuencia de notas musicales ingresada por el usuario o un fragmento tarareado por la persona (este proceso es conocido como Query-by-Humming o QoH). El problema no es nada trivial, considerando el volumen de canciones y melodı́as que existe hoy en dı́a. Los principales desafı́os que presenta la búsqueda de música a partir de la melodı́a son la codificación de la información y los criterios de similitud[3]. Por ejemplo, con frecuencia se realiza la comparación con las notas musicales, que se hayan descriptas por su altura y duración. Pero esta técnica es muy sensible a cambios en el tempo, la alteración de la altura o duración de una nota, la presentación de la consulta en otra escala, entre otros. 1.1. Soluciones no conexionistas La aplicación de redes neuronales al área de recuperación por contenido de melodı́as, a nivel comercial, no está extendida. Algunos ejemplos de software comercial difundido: Shazam [1] utiliza como entrada un fragmento grabado de la melodı́a/canción. Tanto el fragmento como los archivos de audio de la base de datos son procesados, extrayendo marcas identificatorias (fingerprint ) de su espectrograma, conocidas como puntos de anclaje. Luego genera un valor de hash por cada punto, los cuales se utilizarán en la búsqueda dentro de la base de datos. La desventaja es que sólo funciona con fragmentos pregrabados, no funciona con canciones tarareadas o silbadas. Midomi sigue un esquema similar a Shazam, con obtención de fingerprints, pero acepta consultas por tarareo y cantadas (la explicación que brindan es muy vaga) 1 1.2 Soluciones conexionistas 1 INTRODUCCIÓN Tunebot usa consultas por tarareo (pero también canto, letras, ingreso de notas por teclado). Y la comparación entre el fragmento y la base de datos de temas musicales se realiza por el intervalo entre notas, evitando el problema de que el usuario cante en otra clave. La caracterı́stica más interesante es que la base de datos aumenta con aportes del usuario, y el aprendizaje lo realiza con algoritmos genéticos. 1.2. Soluciones conexionistas Desde un enfoque conexionista, se han utilizado distintas arquitecturas de redes neuronales, en alguna etapa del proceso de codificación o de recuperación. Red Neuronal con propagación hacia adelante (Feedforward Neural Network) Dada la longitud variable del fragmento consultado y de cada melodı́a de la base de datos, no resulta posible entrenar una red neuronal de tipo feedforward, que requiere un conjunto de patrones de entrada (y de salida) con iguales dimensiones. En [6] solucionan esta dificultad realizando una comparación indirecta. Primero la extracción del contorno melódico de todos los archivos de audio; luego, los vectores de entrada con los que se entrenará la red estarán formados por la distancia (medido con Dynamic Time Warping) entre el contorno del fragmento y los extraı́dos de cada uno de las melodı́as de la base de datos. Finalmente comparan la tasa de reconocimientos exitosos obtenidos por la red neuronal y por una máquina de soporte vectorial, variando el tamaño del ranking. Esta última resultó ser más eficiente. Redes neuronales recurrentes Los autores de [2] entrenan redes neuronales de Elman (un tipo sencillo de red neuronal recurrente) con la base de datos. La caracterı́stica usada para la codificación es el contorno melódico del estribillo. En el contexto de la resolución, el estribillo es un patrón repetido no trivial. El entrenamiento lo realizan con conjuntos de redes. Cada conjunto corresponde a una clase (por ejemplo, género musical), para facilitar la escalabilidad. Y conjunto está compuesto por tantas redes como melodı́as/canciones hay en esa clase. Se entrena cada red para devuelva 1 si la entrada corresponde a dicha canción, 0 en otro caso. La entrada tiene dimensión 3, y en cada instante está compuesto por el contorno melódico en ese instante, en el instante previo y en dos instantes anteriores. Se eligió la red neuronal de Elman por la capacidad de lidiar con señales de tiempo. Teorı́a de la Resonancia Adaptativa Para tratar con el problema de hallar la forma de organizar las melodı́as por categorı́as, según sus caracterı́sticas, otros autores [4],[7] han recurrido a las Redes Neuronales Auto-organizadas (Self Organizing Neural Networks). De este modo, pueden reducir la dimensionalidad de los datos de entrada. Por ejemplo, [4] ha trabajado dentro del paradigma de las ART (Adaptive Resonance Theory). Las redes neuronales de tipo ART brindan una solución al dilema de la plasticidadestabilidad, que es el problema de aprender nuevos patrones, pero sin olvidar los que ya se han almacenado. Introduce una arquitectura, que llama SONNET-MAP (Self Organizing Neural NETwork MAP ), basado en la ARTMAP. Consiste en dos módulos SONNET[5] que, en paralelo, procesan secuencias de alturas (i.e., D,U,S) y secuencias de ritmos, y generan sus propias categorı́as. Ambos módulos están conectados via mapas asociativos, como en la arquitectura ARTMAP. De 2 3 DESARROLLO este modo, secuencias de ritmos+alturas, llamadas frases, similares llegan a una misma categorı́a que representa a una melodı́a completa. Redes neuronales auto-organizadas En [7], cada canción es fragmentada en intervalos de duración constante, de una sección seleccionada al azar. Luego se extraen caracterı́sticas (entre ellas strongest beat), y se presenta este conjunto de caracterı́sticas a un Mapa Auto-organizado de Kohonen (Self Organizing Map). Finalizado el entrenamiento de la SOM, se representa cada canción como una lista de vectores representativos del mapa (Path Descriptor ). Y la similaridad entre dos canciones se calcula con la distancia euclı́dea promedio (descartando, las ultimas coordenadas de la lista de mayor longitud). Para consultas, en donde el fragmento no representa exactamente una canción de principio a fin, el entrenamiento se realiza concatenando los vectores de caracterı́sticas de las canciones con los obtenidos a partir de queries de esa misma melodı́a. 2. Propuesta En este trabajo propongo resolver el problema de categorización, con una variante de la solución de [7]. En lugar de utilizar un único Mapa de Kohonen para mapear las caracterı́sticas, se usarán mapas independientes. Y el grado de similaridad entre un fragmento de melodı́a y cualquiera completa, se verá reflejada en la pertenencia a las mismas categorı́as. Por simplicidad, se asumirá que las melodı́as son monofónicas. 3. Desarrollo A grandes rasgos, se distinguen seis fases, no necesariamente en el orden aquı́ indicado: 1. Extracción de caracterı́sticas de cada melodı́a 2. Entrenamiento de los Mapas Autoorganizados de Kohonen 3. Representación (o categorización) de cada melodı́a a partir de las BMUs 4. Extracción de caracterı́sticas del fragmento de melodı́a 5. Representación del fragmento de melodı́a usando las BMUs 6. Identificación de las melodı́as con mayor grado de similaridad al fragmento dado. No está dicho aún cómo se realizará cada fase. Se espera del modelo que garantice que cuanto más categorı́as tengan en común 1 más parecidas sean. Como consecuencia, si el fragmento tiene la misma longitud que la melodı́a original, caigan exactamente dentro de las mismas categorı́as. De todos modos, no se descarta la posibilidad de relajar alguno de estos requerimientos. Se detalla a continuación cada una, y los posibles caminos a seguir. 3 3.1 Extracción de caracterı́sticas de cada melodı́a 3 DESARROLLO Figura 1: Fase de extracción de caracterı́sticas 3.1. Extracción de caracterı́sticas de cada melodı́a Cada melodı́a consiste de una secuencia de notas, con una duración asociada. Dado que la longitud de las melodı́a no está acotada, y no siempre es la misma, el modelo trabaja con una cantidad fija R de caracterı́sticas (Figura 1), no necesariamente de la misma dimensión. Los tipos de caracterı́sticas que se vayan a extraer deberán ser lo más representativo posible de la canción, a nivel global y local. Es decir, dado un fragmento m de longitud menor que la melodı́a M, la probabilidad de que la caracterı́stica f (perteneciente a M) la tenga m debe ser idealmente 1. En su defecto, debe ser 1 cuando m=M, y disminuir a medida que la longitud de m disminuye. Aquı́ propongo dos caminos, antes de la siguiente fase. Modelo A Los vectores tendrán una representación arbitraria, elegida por el diseñador de la red. Ej: un vector de números enteros, representando una sucesión de alturas o promedios. Modelo B Se buscará una representación distribuida para cada vector. En este caso, podemos usar un perceptrón de dos capas como autoasociador, para que por sı́ solo cree una representación interna (codificación) en la capa oculta, con las dimensiones deseadas. El entrenamiento se podrı́a realizar con un conjunto de patrones estándar del contorno melódico (picos, valles, ascensos, descensos,etc), y no dependerı́a de las canciones. 3.2. Entrenamiento de los Mapas Autoorganizados de Kohonen Habrá un mapa por cada tipo distinto de caracterı́stica. Si el espacio de dos cualesquiera fi y fj es distinto siempre, se tendrá un total de R mapas. Eventualmente podrá usarse un unico mapa, si todas las caracterı́sticas habitan el mismo espacio (como podrı́a ser el caso del modelo B). Pero se tratarı́a la BMU obtenida como si perteneciera a un mapa diferente. 3.3. Representación de cada melodı́a a partir de las BMUs Por cada caracterı́stica f1 , f2 ,...fR de la melodı́a Mi , se obtiene un vector Ui = (u1 , u2 , ..., uR ) con las categorı́as a las que pertenece, y que caracterizan a la melodı́a (Figura 2). 3.4. Extracción de caracterı́sticas del fragmento de melodı́a Según lo que se ha detallado hasta ahora, es exactamente el mismo que en 3.1. 1 Diremos que tienen una categorı́as en común, si activan la misma neurona (BMU) en un mismo mapa de Kohonen 4 3.5 Representación del fragmento de melodı́a usando las BMUs 3 DESARROLLO Figura 2: Fase de búsqueda de la neurona ganadora Como modelo alternativo, si las caracterı́sticas se obtienen seleccionando una melodı́a en una cantidad predeterminada de partes, y extrayendo un conjunto de tamaño k < R de cada una, la cantidad de caracterı́sticas del fragmento puede ser k, y no R. Por ejemplo, dividir una melodı́a en tres partes y extraer cuatro caracterı́sticas de cada una, en lugar de doce de la versión completa. 3.5. Representación del fragmento de melodı́a usando las BMUs Idéntico a 3.2 3.6. Identificación de las melodı́as con mayor grado de similaridad al fragmento dado El objetivo de esta fase no es devolver exactamente la melodı́a a la cual pertenece el fragmento. Sino acotar el campo de búsqueda para un proceso de selección más fino (por ejemplo, [2]). El grado de similaridad consiste en la cantidad de categorı́as en común que presentan los vectores U del fragmento y cada melodı́a. Se quiere que las categorı́as en común sean por lo menos t (la codificación no es muy diferente de una función de hash cuando t = R). Este valor será la tolerancia. Si las caracterı́sticas extraı́das fueron elegidas con un criterio aceptable, la canción deseada debe pertenecer a este subconjunto de canciones. Cuanto más débiles sean las caracterı́sticas, menor es la capacidad del modelo de acertar en la búsqueda. Y cuanto más chico sea el valor de tolerancia mı́nima, el conjunto se hace más grande. 5 4 4. 4.1. EXPERIMENTO Experimento Recopilación de melodı́as La base de datos de melodı́as, codificadas en formato MIDI, fue obtenida de dos fuentes. Por un lado, 13 melodı́as se armaron a partir de archivos formato MIDI-1 2 obtenidos de la fuente [8]. Para obtener esos 13 archivos, se seleccionaron aquellos en donde la melodı́a que identifica a la canción (desde un punto de vista subjetivo), estuviera en un track, y que hiciera uso de un único canal (es decir, que fuera monofónica). Los demás tracks fueron eliminados haciendo uso de una herramienta de licencia libre para edición de partituras (TuxGuitar). La tarea lleva bastante tiempo, por lo que se ha recurrido a un corpus confeccionado por terceros. Se hizo uso del que provee la fuente [9], usado principalmente en tareas de Query-ByHumming. Consiste en 136 archivos MIDI-0, de temas populares en inglés y chino. 4.2. Manipulación de los archivos MIDI e implementación de SOFMs La implementación de todas las fases fue hecha enteramente en MATLab. Para manipular los archivos MIDI, se usó una serie de scripts de [10]. Y para implementar los SOFMs, y entrenarlos, se utilizó la biblioteca SOM Toolbox[11]. Con la primera herramienta, de cada archivo MIDI se puede extraer una serie de datos almacenados en forma de matriz. Cada fila de dicha matriz contiene valores referentes al número de track y canal, pero son irrelevantes en esta propuesta porque es el mismo para todos los archivos. Los valores de especial interés son la altura de la nota (representada por un número entero de 0 a 127) y los tiempos de inicio y fin de cada nota, expresados en segundos. Con estos últimos valores se pueden obtener la duración relativa entre las notas, e inferir silencios. Entre los metadatos del archivo MIDI se encuentran la marca de tiempo y el tempo, pero no son utilizadas porque no se cuenta con esa información en la consulta. 4.3. Melodı́a para consulta La melodı́a ingresada como consulta es una secuencia de notas, siguiendo la estructura de la matriz mencionada anteriormente. Aunque también puede estar codificada en formato MIDI (luego recibirá el mismo procesamiento que la base de datos, para obtener la matriz de notas). Para generar el corpus de consultas, se extrayeron de los archivos MIDI secuencias de una cantidad de notas (máxima) n prefijada de antemano. Es decir, n filas contiguas en la matriz de notas, iniciando en algún instante arbitrario. Los valores de tiempo de inicio y fin fueron desplazados para que comience en el instante 0. 4.4. Extracción de caracterı́sticas Como fue mencionado al principio del trabajo, las caracterı́sticas necesitan ser representativas de la canción a nivel global y local. Esto es, si una caracterı́stica fi lleva a que un fragmento sea clasificado dentro de una categorı́a ui , debe ocurrir que la probabilidad de que la melodı́a original pertenezca también a ui sea pi . Desafortunadamente no se conoce a priori el valor de cada pi . Además, las caracterı́sticas elegidas deberán ser tolerantes a la diferencia de tempo o escala, entre el fragmento y su correspondiente melodı́a. La dificultad de encontrar las caracterı́sticas adecuadas para este enfoque radica en las variaciones que ocurren dentro una misma composición. E.g., mientras que el inicio puede presentar una sucesión ininterrumpida de notas de duración y altura creciente, el final puede ser monótono y alternando silencios. 2 Los archivos en formato MIDI-1 contienen dos o más tracks 6 5 RESULTADOS La elección de las caracterı́sticas vuelve el problema en uno estadı́stico-probabilı́stico. El conjunto de caracterı́sticas propuesto está en la tabla aquı́ debajo. Algunas se usan en [12] Caracterı́stica Altura promedio ponderada Detalle (n, o) Promedio de cambios en notas (pa, pd) Promedio de cambios absolutos en notas (pa, pd) Desviación estándar de los cambios en notas (µ, σ) Dominancia de un valor de altura/duración (da, dd) Descripción Es la sumatoria del producto entre el número de nota3 y su frecuencia relativa. Forma una tupla, donde o es igual al número de octava y n el número de nota en la octava Cada una es el promedio de las variaciones entre una nota y la siguiente. pa promedia las diferencias de altura, y pd promedia la razón cada nota y su predecesora Cada una es el promedio de las variaciones entre una nota y la siguiente. pa promedia las diferencias absoluta de altura, y pd promedia la razón cada nota y su predecesora La variable µ es el promedio de las diferencias absolutas de altura entre una nota y su sucesora, y σ es el desvı́o estándar Es el porcentaje del total que representa la altura (o duración) más frecuente. Para alturas es la variable da y para duraciones es la variable dd. Cuadro 1: Caracterı́sticas propuestas Una explicación más detallada de cada una, junto con experimentos aislados, se brinda en el Apéndice de este trabajo. Finalmente se descartó la caracterı́stica 1 porque la tasa de coincidencias melodı́a-fragmento fue muy baja, aunque no haya variado el valor o. 5. Resultados Los SOFMs entrenados permiten clasificar las caracterı́sticas en distinta cantidad de categorı́as. El SOFM 2 clasifica en 6 categorı́as, mientras que los SOFM 3, 4 y 5, en 4 categorı́as. Luego de presentarle las caracterı́sticas apropiadas a cada mapa, se obtendrá el vector Ui = (u1 , u2 , u3 , u4 ) que identifica a la melodı́a, o fragmento, i. Donde ui es el número de categorı́a que se obtiene del SOFM i + 1. 4 5.1. Experimento 1 Se extrajeron las caracterı́sticas a las 136 melodı́as de la base de datos, con las cuales se entrenaron las cuatro redes neuronales. Se extrajeron las caracterı́sticas también a los 136 fragmentos. De cada conjunto se obtuvo el vector U , para cada una de las melodı́as o fragmentos. Finalmente, se analizó en cuántas coordenadas coincidı́an el vector U del fragmento i con el vector U de la melodı́a i (Figura 3) 3 Según el formato MIDI, la nota C de la cuarta octava es 60 decisión fue para mantener registrado el análisis realizado a la caracterı́stica 1. Podrı́a haberse cambiado la forma de numerar los SOFM para que empezaran en 1. 4 Esta 7 5.2 Experimento 2 5 RESULTADOS Figura 3: Histograma con la cantidad de fragmentos que coinciden en 0, 1, 2, 3 ó 4 coordenadas con la melodı́a de la cual fue extraı́da 5.2. Experimento 2 Se repitió el mismo experimento pero transponiento las notas 6 semitonos arriba, y quintuplicando la duración de todas. El resultado final fue el mismo (Figura 3). 5.3. Experimento 3 Se analizó para cada fragmento i, la cantidad de coordenadas en común con cada una de las melodı́as del corpus. Aquellas que hayan coincidido en 4 categorı́as, serán devueltas por el sistema. Y es el tamaño de este conjunto el que fue analizado. Figura 4: Histograma con la cantidad de melodı́as devueltas con cuatro coincidencias (izquierda), y 3 o 4 coincidencias (derecha). El eje de ordenadas indica la cantidad de fragmentos para los que se devolvió un conjunto con el tamaño indicado en el eje de abscisas 5.4. Experimento 4 Se realizan los mismos pasos que en el experimento 1, pero se agrega ruido a los fragmentos. Cuatro notas elegidas al azar cambian su altura, y otras cuatro cambian su duración (eventual8 5.5 Experimento 5 5 RESULTADOS mente se habrá realizado el cambio a la misma nota, en los cuatro casos) Figura 5: Histograma con la cantidad de fragmentos que coinciden en 0, 1, 2, 3 ó 4 coordenadas con la melodı́a de la cual fue extraı́da. Izquierda: incrementando 1 semitono a cuatro notas, y duplicando la duración a otras cuatro. Derecha: incrementando 2 semitonos a cuatro notas, y duplicando la duración otras cuatro 5.5. Experimento 5 Se extraen un nuevo fragmento de cada melodı́a (distinto del que se venı́a utilizando en todos los experimentos), y se realiza los mismos pasos que en el experimento 1. Figura 6: Histograma con la cantidad de fragmentos que coinciden en 0, 1, 2, 3 ó 4 coordenadas con la melodı́a de la cual fue extraı́da. Izquierda: con fragmentos generados en una ejecución del programa. Derecha: una segunda ejecución 9 6 6. DISCUSIÓN Discusión Se espera que al presentar un fragmento, el sistema responda con un conjunto de melodı́as con las que el fragmento comparte todas las categorı́as. La efectividad se mide siguiendo dos criterios principales. El primero de ellos es la probabilidad de que el conjunto contenga la melodı́a buscada. Del experimento 1, se puede estimar esa probabilidad en aproximadamente 1/3. Con los experimentos 2, 4 y 5, puede verse que el valor tiene pocas variaciones, aún con ruido o transposiciones. El segundo criterio es el tamaño del conjunto devuelto. En ningún caso, superó las 30 melodı́as. Que es menos del 25 % del total. Cuando se relaja la condición de tener en común cuatro categorı́as, y se eligen aquellas que coincidan en al menos tres, la probabilidad de que la melodı́a buscada esté presente aumenta a 2/3, aproximadamente. Pero al costo de devolver un conjunto de hasta 65 melodı́as (cerca del 50 % del corpus), como indica el experimento 3. El sistema puede ser mejorado. Entre los problemas se encuentra la escalabilidad. Para obtener el conjunto de melodı́as con las cuales el fragmento tiene todas las categorı́as en común, se recorrió linealmente el conjunto. Con una base de datos considerablemente mayor, el tiempo de respuesta aumenta. Entre las posibles soluciones está el uso de una tabla de hash, o un trie (en donde las claves sean los vectores U , y en las hojas estén las melodı́as con ese vector de categorı́as). De este modo, el tiempo dependerá de la cantidad de categorı́as por SOFM, y en la cantidad de caracterı́sticas. Otro aspecto importante es la incorporación de nuevas caracterı́sticas, o la mejora de las existentes, dado que la efectividad del sistema se sustenta sobre la elección de las caracterı́sticas adecuadas. Con el aumento de la cantidad de melodı́as es necesario elegir nuevamente los parámetros de entrenamiento de los SOFMs, ya que el conjunto de caracterı́sticas extraido puede estar representando una distribución distinta. 10 REFERENCIAS REFERENCIAS Referencias [1] Avery Li-Chun Wang, “An Industrial-Strength Audio Search Algorithm”. 2003 [2] B. Colaiocco, F. Piazza, “A music retrieval system based on the extraction of non trivial recurrent themes and neural classification”. 2003 [3] Ernesto López, Martı́n Rocamora, Gonzalo Sosa, “Búsqueda de música por tarareo”. 2004. [4] Steven Harford, “Content-Based Retrieval of Melodies using Artificial Neural Networks”. 2006. [5] Albert Nigrin, “Neural networks for pattern recognition”. 1993 [6] Nattha Phiwma, Parinya Sanguansat, “A Novel Method for Query-by-Humming Using Distance Space”. 2010 International Conference on Signal Acquisition and Processing [7] Kyle Dickerson, Dan Ventura, “A SOM-based Multimodal System for Musical Query-byContent”. 2011 [8] http://www.vgmusic.com [9] Jyh-Shing Roger Jang, “MIR-QBT Corpus” MIR Lab, CS Dept, Tsing Hua Univ, Taiwan. Available at the “Singing & speech corpora” link at http://www.cs.nthu.edu.tw/∼jang . [10] http://kenschutte.com/midi [11] http://www.cis.hut.fi/somtoolbox/ [12] Anja Volk, et al. “The Study of Melodic Similarity using Manual Annotation and Melody Feature Sets”, Apéndice. 2008 [13] An Introduction to MIDI http://www.midi.org/aboutmidi/intromidi.pdf 11 7 7. 7.1. APÉNDICE Apéndice Codificación MIDI La especificación MIDI define enteros de 0 a 127 para representar semitonos de diferentes octavas. Como referencia, C4 (do central) tiene el valor 60. Se referirá a cada uno de esos valores como altura. La duración de una nota se calcula a partir del tiempo en que ocurren los eventos Note On y Note Off. Por si sola no permite identificar la figura musical asociada (negra, corchea, etc). En los archivos MIDI, el tiempo absoluto en que ocurre un evento debe calcularse a partir de una secuencia de delta times, cada uno denota cuanto debe pasar desde el último evento para continuar con el próximo. Dentro de la codificación también deben realizarse las conversiones necesarias para obtener segundos. 7.2. Análisis de las caracterı́sticas 7.2.1. Caracterı́stica 1: Altura promedio ponderada (APP) Dada una secuencia de alturas MIDI S de tamaño n, en donde el total de alturas diferentes forma el conjunto Alturas y una función f req(x) que define la cantidad de veces que aparece x en S, defino la altura promedio ponderada como AP P = X i∈Alturas i· f req(i) n (1) En la implementación es reemplazada por una tupla de valores (n, o), donde es o es el número de octava y n es la diferencia entre APP y el valor máximo de C menor o igual que APP. Con la base de datos de 136 melodı́as, se comparó el valor de n de la melodı́a y el correspondiente a el fragmento extraı́do como consulta. No fue usado el número de octava porque los fragmentos no sufrieron alteraciones con respecto a la versión completa. Figura 7: Referencias: diferencia entre APP de melodı́a y fragmento (azul), media (rojo) y media de los valores absolutos (verde) El porcentaje de melodı́as cuyo errore absoluto fue mayor o igual a 3, es 11.76 % . Para un error mayor o igual que 2 asciende a 25 %, y para uno mayor o igual que 1 a 53.68 % . En promedio, el APP del fragmento está a menos de 2 semitonos de diferencia.5 5 Notar que APP normalmente no es un número entero, por lo tanto no corresponde a un valor de altura MIDI. 12 7.2 Análisis de las caracterı́sticas 7 APÉNDICE Entrenamiento del mapa autoorganizado de Kohonen 1 Se entrenó una SOFM variando parámetros de entrenamiento, y dimensiones de la red. Con 6 unidades organizadas en una única lı́nea, tras el entrenamiento se presentó a la red el conjunto de caracterı́sticas de tipo 1 extraı́da de la base de datos, y el conjunto proveniente de los fragmentos. El resultado de la comparación entre las BMUs de ambos conjuntos arrojó un 41 % de coincidencias. 7.2.2. Caracterı́stica 2: promedio de cambios en notas (PCN) Dadas dos notas ni = (ai , di ) y ni+1 = (ai+1 , di+1 ), donde ai ,ai+1 son las alturas y di , di+1 son las duraciones (que se obtiene de la diferencia entre el tiempo de fin y el tiempo de inicio de la nota), en codificación MIDI, el cambio o variación ci entre esas dos notas es definido como el vector ci = (ai+1 − ai , di+1 /di ) (2) Para cada nota i desde 1 hasta n − 1, se determina ci , y al finalizar se calcula el promedio de cada coordenada. Ası́ se obtiene el vector-caracterı́stica f.6 Figura 8: Referencias: Diferencia absoluta entre PCN (variable 1) de melodı́a y fragmento (azul); media (rojo) Figura 9: Referencias: Error relativo con PCN (variable 2) de fragmento con respecto a la melodı́a (azul); media (rojo) 6 En algunos casos, puede ocurrir que la duración de una nota sea 0. En ese caso, se define arbitrariamente di+1 /di = 1 13 7.2 Análisis de las caracterı́sticas 7 APÉNDICE Entrenamiento del mapa autoorganizado de Kohonen 2 Variando los parámetros y las dimensiones de la red, se eligió la combinación que maximizó la cantidad de aciertos, no trivialmente (que no sean solo una o dos neuronas). Las dimensiones elegidas del mapa es 3 x 2 (6 valores para categorizar). La tasa de aciertos del experimento fue del 80 %. Figura 10: Resultados del entrenamiento del SOFM 2. Representanción en el plano de las unidades del SOFM (cı́rculos rojos) y los datos de entrenamiento. El gráfico de la derecha es un acercamiento a las unidades del SOFM 7.2.3. Caracterı́stica 3: promedio de cambios absolutos en notas (PCAN) Es exactamente igual a la caracterı́stica anterior, excepto que se calcula el valor absoluto de la variación de altura: ci = (|ai+1 − ai |, di+1 /di ) (3) Figura 11: Referencias. Izquierda: diferencia absoluta entre PCAN (variable 1) de melodı́a y fragmento (azul); media (rojo). Derecha: Error relativo con PCAN (variable 2) de fragmento con respecto a la melodı́a (azul); media (rojo) Entrenamiento del mapa autoorganizado de Kohonen 3 Las dimensiones elegidas para el mapa son 2 x 2 neuronas (4 valores para categorizar). La tasa de aciertos del experimento fue del 69 %. 14 7.2 Análisis de las caracterı́sticas 7 APÉNDICE Figura 12: Resultados del entrenamiento del SOFM 3. Representanción en el plano de las unidades del SOFM (cı́rculos rojos) y los datos de entrenamiento. El gráfico de la derecha es un acercamiento a las unidades del SOFM 7.2.4. Caracterı́stica 4: desviación estándar de los cambios en notas (stdCN) Esta caracterı́stica se obtiene a partir de la secuencia de cambios absolutos (sólo las alturas): ci = |ai+1 − ai | (4) Se computa la desviación estándar σ y la media µ, del conjunto de ci obtenidos para dicha melodı́a. La caracterı́stica f es el vector (µ, σ). Sólo se analiza el error de σ, porque µ no es más que la variable 1 de la caracterı́stica 2 Figura 13: Referencias. diferencia absoluta de desviación estándar de melodı́a y fragmento (azul); media (rojo) 15 7.2 Análisis de las caracterı́sticas 7 APÉNDICE Entrenamiento del mapa autoorganizado de Kohonen 4 El experimento se realizó con distintos tamaños de SOFM, y diferentes valores. Se eligió un mapa de 2 x 2 neuronas (4 valores para categorizar), que al finalizar el entrenamiento, aseguraron que la tasa de coincidencias de categorı́as de una melodı́a y su fragmento fuera 73 %. Figura 14: Resultados del entrenamiento del SOFM 4 . Representación en el plano de las unidades del SOFM (cı́rculos rojos) y los datos de entrenamiento. El gráfico de la derecha es un acercamiento a las unidades del SOFM 7.2.5. Caracterı́stica 5: Dominancia de un valor de altura/duración (Dom) Se define la dominancia7 da del valor de altura más frecuente a, como el porcentaje de apariciones en la secuencia. Análogamente, la dominancia dd del valor de duración más frecuente d, como el porcentaje de apariciones en la secuencia. La caracterı́stica es el vector f = (da, dd). Figura 15: Referencias. Izquierda: diferencia absoluta entre la dominancia (altura) de melodı́a y fragmento (azul); media (rojo). Derecha: diferencia absoluta de dominancia (duración) de fragmento con respecto a la melodı́a (azul); media (rojo) 7 El nombre fue elegido arbitrariamente 16 7.2 Análisis de las caracterı́sticas 7 APÉNDICE Entrenamiento del mapa autoorganizado de Kohonen 5 Se entrenó un SOFM organizado en una cuadrı́cula de 2 x 2 neuronas (4 valores para categorizar). El porcentaje de fragmentos que coincidı́an en el valor de la categorı́a con la melodı́a fue el 70 %. Figura 16: Resultados del entrenamiento del SOFM 5. Representación en el plano de las unidades del SOFM (cı́rculos rojos) y los datos de entrenamiento. El gráfico de la derecha es un acercamiento a las unidades del SOFM 17