Texto completo

Anuncio
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
Descargar