View
6
Download
0
Category
Preview:
Citation preview
IDENTIFICACIÓN DE INSTRUMENTOS MUSICALES A PARTIR DEL
ALGORITMO MFCC
(MEL FREQUENCY CEPSTRAL COEFFICIENT)
JUAN SEBASTIÁN MÉNDEZ HERNÁNDEZ
Trabajo de grado para optar por el título de profesional en Ingeniería Electrónica
Directora:
Ing. Johana María Flórez Lozano. Ph.D.
Profesora de Catedra Facultad de Ingeniería
Asesor:
Ing. Gustavo Adolfo Ramírez Espinosa. M.Sc.
Pontificia Universidad Javeriana
Facultad de Ingeniería
Departamento de Ingeniería Electrónica
Bogotá D.C.
2020
AGRADECIMIENTOS
Agradezco enormemente a mi directora de trabajo de grado, la ingeniera Johana María Flórez Lozano;
y a mi asesor, el ingeniero Gustavo Adolfo Ramírez Espinosa, por su tiempo, compromiso y paciencia en este proceso. En medio de las circunstancias de contingencia de salud a nivel mundial, se brindaron
los espacios necesarios con el fin de llevar a cabo el presente trabajo de grado, contando con su apoyo
y enseñanzas para poder plasmar aquí mi pasión por la música y la ingeniería.
De igual forma, quiero agradecer al Maestro Guillermo Escobedo Rodríguez y a mis compañeros
instrumentistas, quienes fueron parte en mi formación como músico, en especial a la clarinetista July
Paola Ramos y al trombonista Mateo Ruiz, por enseñarme que una vez la música impacta y hace parte
en la vida, la manera en la que interactuamos con nuestro entorno y con los demás se escucha y se interpreta de maneras inexplicables. Así mismo, afortunadamente conté con su colaboración con algunos
audios para el desarrollo de este estudio.
Finalmente, y no menos importante, agradezco a mi familia y amigos por acompañarme en esta etapa
tan importante, en el que cada reto y cada día en vela, como parte del día a día de un ingeniero, se hacían
más gratificantes y valiosos. Es así como pude desaprender la visión que tiene un ingeniero del mundo
y a partir de mi vocación empezar a transformar realidades locales en mi país.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
1
TABLA DE CONTENIDO
INTROUCCIÓN ...................................................................................................................... 2
MARCO TEÓRICO ................................................................................................................. 3
OBJETIVO DEL PROYECTO .................................................................................................. 7
ANALISIS DE RESULTADOS ............................................................................................... 23
CONCLUSIONES Y RECOMENDACIONES .......................................................................... 25
BIBLIOGRAFÍA ................................................................................................................... 25
ANEXOS .............................................................................................................................. 27
TABLA DE FIGURAS
Figura 1. Árbol de Decisión binario. Fuente: elaboración propia..................................................... 3
Figura 2. Ejemplo modelo K-NN para k=3. Fuente: elaboración propia. .......................................... 4
Figura 3. Ejemplo SVM para dos clases. Fuente: elaboración propia. .............................................. 5
Figura 4. Diagrama de bloques del sistema. Fuente: elaboración propia. .......................................... 8
Figura 5. Extracción de características. Fuente: elaboración propia. ................................................ 9
Figura 6. Segmentación por cuadros. Fuente: elaboración propia. ................................................. 10
Figura 7. Ventana Hamming. Fuente: elaboración propia............................................................. 10
Figura 8. Banco de Filtros Triangulares. Fuente: elaboración propia. ............................................ 11
Figura 9. Vector de Características. Fuente: elaboración propia. ................................................... 11
Figura 10. Exactitud del modelo K-NN variando k entre 1 y 20. Fuente: elaboración propia. ........... 12
Figura 11. Matriz de Confusión. Fuente: elaboración propia. ....................................................... 13
Figura 12. Visualización comunicación en MQTT.fx. Fuente: elaboración propia. .......................... 15
Figura 13. Exactitud para audios con diferentes niveles de ruido. Fuente: elaboración propia. .......... 16
Figura 14. Exactitud para los diferentes kernel de SVM. Fuente: elaboración propia. ...................... 17
Figura 15. Curva ROC Árbol de Decisiones. Fuente: elaboración propia. ...................................... 19
Figura 16. Curva ROC K-NN. Fuente: elaboración propia. .......................................................... 19
Figura 17. Curva ROC SVM. Fuente: elaboración propia. ........................................................... 19
Figura 18. Exactitud en la Clasificación. Fuente: elaboración propia. ............................................ 21
Figura 19. Exactitud de la Validación del Entrenamiento. Fuente: elaboración propia. .................... 23
TABLA DE TABLAS
Tabla 1. Exactitud modelos de clasificación con la herramienta Classification Learner. .................... 11
Tabla 2. Etiquetas. ........................................................................................................................... 12
Tabla 3. Exactitud de cada modelo para los distintos niveles de SNR................................................ 16
Tabla 4. Exactitud con el conjunto de entrenamiento. ....................................................................... 17
Tabla 5. Matriz de Confusión de la validación del entrenamiento del Árbol de decisiones................. 18
Tabla 6. Matriz de Confusión de la validación del entrenamiento K-NN. .......................................... 18
Tabla 7. Matriz de Confusión de la validación del entrenamiento SVM. ........................................... 18
Tabla 8. Precisión de la validación del entrenamiento de cada instrumento. ...................................... 18
Tabla 9. Matriz de Confusión de la evaluación de la clasificación del Árbol de Decisiones. .............. 20
Tabla 10. Matriz de Confusión de la evaluación de la clasificación K-NN. ....................................... 20
Tabla 11. Matriz de Confusión de la evaluación de la clasificación SVM.......................................... 20
Tabla 12. Precisión de la clasificación de cada instrumento. ............................................................. 20
Tabla 13. Recall para cada instrumento. ........................................................................................... 21
Tabla 14. Tiempo de clasificación de un audio. ................................................................................ 22
Tabla 15. Tiempo total que implementa el sistema en identificar y transmitir la información. ........... 22
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
2
INTROUCCIÓN
En las agrupaciones musicales sinfónicas, existen ocasiones donde no se consigue un buen balance
auditivo. Esto es generalmente ocasionado por enmascaramientos de unos instrumentos con otros.
Asimismo, a la hora de llevar a cabo un acto musical, no se consideran diferentes factores como el nivel sonoro, que por lo general es un inconveniente a nivel acústico al no contemplar los efectos del escenario
cuando no es un espacio adecuado para tal fin. Esto genera que el público no reciba de manera idónea
lo que los músicos quieren interpretar.
De acuerdo con lo anterior, es importante comprender que los instrumentos cuentan con un timbre y
una proyección sonora diferente, la cual está ligada a la misma naturaleza del instrumento (material,
estructura, forma de ensamble, boquilla). Aun así, surgen preguntas dentro de la investigación de estas temáticas: ¿es posible identificar instrumentos musicales desde las aplicaciones tecnológicas? ¿es
posible reconocer un instrumento musical en contextos polifónicos? ¿qué características auditivas
diferencian un instrumento musical de otro?
Este tipo de cuestionamientos permiten reconocer la importancia de la singularidad de cada instrumento musical y cómo desde su naturaleza misma conforman un conjunto sonoro con otros
instrumentos, brindando texturas y colores al oído humano durante una interpretación o acto musical.
Así como cada voz humana tiene un timbre en específico y puede ser identificable al oído humano cada vez que se percibe, los instrumentos cuentan con características sonoras que los hacen únicos, es
por lo que el presente trabajo de grado evalúa la implementación de un algoritmo que posibilite
reconocer y clasificar un conjunto de instrumentos musicales compuesto por clarinete, flauta traversa,
trombón y timbales sinfónicos en contextos polifónicos.
Para ello se evalúan tres diferentes técnicas de clasificación con el fin de elegir la de mejor
desempeño, para con esta implementar un sistema de clasificación de instrumentos musicales a partir
de las características de los sonidos generados por estos, extrayendo sus coeficientes MFCC (Mel Frequency Cepstral Coefficient por sus siglas en inglés). Adicionalmente, se evalúa la pertinencia para
implementar este sistema de clasificación en un sistema embebido de cómputo reducido, proponiendo
el protocolo MQTT para la transmisión del instrumento identificado.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
3
MARCO TEÓRICO
Para el desarrollo del presente trabajo de grado es importante comprender el funcionamiento de los
sistemas de clasificación, los cuales tienen como fin aprender una función que asigna a cada conjunto
de atributos, compuesto por varias características o descriptores, una de las etiquetas de clase predefinida, como lo definen Tan, Steinbach y Kumar (2014) en su libro Introduction to Data Mining.
Con base a lo anterior, se implementan algoritmos de Machine Learning, cuyo objetivo es crear sistemas
que aprendan automáticamente a identificar y clasificar objetos.
Dentro de los modelos de clasificación que se implementan en este estudio, se encuentran los árboles
de decisiones, K-Nearest Neighbors (K-NN) y Support Vector Machine (SVM), ya que cuentan con una
precisión alta en los procesos de clasificación de señales de audio y se han implementado en el estado
del arte como métodos de clasificación de instrumentos.
Un claro ejemplo de lo anterior es el trabajo desarrollado por Liu y Xie (2010), de la Universidad de
Comunicación de China, en el que concluyen que después de evaluar la clasificación de instrumentos
tradicionales chinos versus instrumentos tradicionales occidentales por medio del modelo de SVM y usando las características sonoras con los coeficientes MFCC, se genera mayor precisión que con otras
características, alcanzando una exactitud mayor al 87%, por lo cual dentro de este trabajo se ha optado
por la implementar este modelo.
De igual forma, dentro de las investigaciones realizadas en el análisis y clasificación de instrumentos
musicales, Somerville y Uitdenbogerd (2008) concluyen que, entre cuatro clasificadores incluyendo los
árboles de decisiones, el algoritmo K-NN proporciona los mejores resultados de precisión, con un
promedio del 80% para ocho géneros musicales en grabaciones con múltiples instrumentos.
En este caso, cada modelo se analizará con unas métricas estándar para este tipo de sistemas, con el
fin de evaluar el desempeño y escoger el algoritmo de clasificación que proporcione la mayor exactitud
en la clasificación de instrumentos musicales para ser incluido a futuro en un sistema embebido.
El primer modelo que se evalúa es el árbol de decisiones, expuesto por Quinlan (1986) como una
estructura jerárquica en el que cada ruta que empieza desde el nodo raíz representa una secuencia de
división de datos hasta que alcanza un resultado booleano en el nodo hoja. Un ejemplo visual de lo
anteriormente mencionado, para un árbol de decisión binario, se observa en la Figura 1.
Figura 1. Árbol de Decisión binario. Fuente: elaboración propia.
De acuerdo con lo anterior, cada nodo interno dentro del árbol de decisión representa un atributo que
se selecciona para dividir los datos. En cada etapa de la construcción del árbol, se selecciona el atributo que tiene la máxima potencia de división y se coloca a lo largo de una ruta hasta que cada subconjunto
de datos resultante esté completamente purificado, es decir, todos los datos en el subconjunto conducen
a la misma decisión y se han etiquetado.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
4
Convencionalmente, se usa un árbol de decisión para tomar decisiones booleanas en las que la
potencia de división de un atributo o pureza de los nodos se calcula como su ganancia de información que, a su vez, se calcula como su reducción de entropía. En el caso de buscar decisiones booleanas, la
entropía de un conjunto de datos se calcula como se expresa en la ecuación 1, donde P1 es la porción de
la primera decisión y P2 es la porción de la segunda decisión.
𝐻(𝑛𝑜𝑑𝑜) = −𝑃1 × log2 𝑃1 − 𝑃2 × log2 𝑃2 (1)
Por otro lado, el segundo algoritmo de clasificación que se analiza es K-NN. Herrera, Amatriain, Batlle y Serra (2000), en su investigación Towards instrument segmentation for music content
description: a critical review of instrument classification techniques, exponen que el K-NN es uno de los
algoritmos más populares para la clasificación de instrumentos musicales.
Lo anterior se debe a que K-NN es un algoritmo supervisado, es decir, se tiene etiquetado el conjunto
de datos de entrenamiento con la clase esperada. Así mismo, este algoritmo se basa en instancias, lo que
hace referencia a que no requiere de un entrenamiento para aprender un modelo, sino que, por el contrario,
memoriza las instancias de entrenamiento que se usan como base para nuevas predicciones.
De acuerdo con Cover y Hart (1967), quienes plantearon formalmente las propiedades del modelo K-
NN, primero se ubican y se asignan los vectores de características de las muestras del conjunto de
entrenamiento a una clase, y luego, para clasificar una nueva instancia, encuentra un conjunto de k ejemplos de entrenamiento (k-vecinos) más cercanos en el espacio de características, y etiqueta el nuevo
ejemplo a la clase que tiene más elementos en el conjunto. En la Figura 2 se observa un ejemplo para un
sistema de dos clases con dos características.
Figura 2. Ejemplo modelo K-NN para k=3. Fuente: elaboración propia.
Generalmente, para evaluar los k-vecinos se usa una distancia euclidiana, la cual se representa como
una línea recta o la trayectoria más corta entre dos puntos, descrita por la ecuación 2, sin embargo,
también existen otras distancias como la Chebyshev y Manhattan que utilizan otros parámetros para
contemplar los ejemplares del espacio al momento de clasificar un nuevo ejemplar.
𝐷𝐸𝑢𝑐(𝑥𝑖 , 𝑥𝑗) = √∑ (𝑥𝑟𝑖 − 𝑥𝑟𝑗)2𝑝𝑟=1 (2)
El último clasificador estudiado es la Máquina de Soporte Vectorial (Support Vector Machine o SVM
por sus siglas en inglés) que, como exponen Stitson, Weston, Gammerman, Vovk y Vapnik (1996), usa propiedades geométricas para calcular un hiperplano de separación óptimo directamente de los datos de
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
5
entrenamiento. Este algoritmo también introduce métodos para tratar casos no linealmente separables,
es decir, donde no se puede encontrar una línea recta y casos en los que hay ruido en los datos de
entrenamiento, como por ejemplo, cuando algunas de las muestras de entrenamiento son incorrectas.
Para encontrar el hiperplano de separación óptimo, se tiene que encontrar el hiperplano que maximice
la distancia mínima entre el hiperplano y cualquier muestra del conjunto de datos de entrenamiento. Para lograr lo anterior, es importante ajustar correctamente el parámetro C, que Cortes y Vapnik (1995),
lo definen como el parámetro que controla el número y severidad de violaciones del margen de
separación que se toleran en el proceso de entrenamiento.
Si C tiende a infinito no se permite ninguna violación del hiperplano y por lo tanto, el resultado es equivalente a un clasificador de margen máximo. Si por el contrario, entre más se acerque C a cero,
menos se penalizan los errores y más observaciones pueden estar en el lado incorrecto del margen o
incluso del hiperplano.
A partir de lo anterior, en el proceso de optimización, sólo las observaciones que se encuentran justo
en el margen o que lo violan influyen sobre el hiperplano. A estas observaciones se les conoce como
vectores de soporte y son las que definen el clasificador obtenido. En la Figura 3 se visualiza un ejemplo
para un sistema lineal de dos clases con dos características.
Figura 3. Ejemplo SVM para dos clases. Fuente: elaboración propia.
Adicionalmente, Stitson, et al. (1996), exponen que el algoritmo de SVM cuenta con diferentes
funciones kernel con el fin de clasificar sistemas que no son separables linealmente o no son
completamente separables, por lo que se proyecta la información a un espacio de características de mayor dimensión. Dentro de las funciones kernel más implementadas se encuentran la lineal, la
polinomial, la función de base radial Gaussiana (RBS) y la sigmoid.
Una vez se tiene claro cómo funcionan los modelos de clasificación elegidos a evaluar en este trabajo, es importante considerar el desarrollo del vector de características a la entrada del sistema. En este caso,
el vector de entrada está compuesto por los valores estadísticos, media, mediana, varianza, covarianza
y desviación estándar de los Coeficientes Cepstrales en la Frecuencia Mel (MFCC, Mel Frequency Cepstral Coefficient por sus siglas en inglés), los cuales son los valores numéricos que representan el
audio de una manera que imita las propiedades fisiológicas del sistema auditivo de los seres humanos.
Los MFCC son características muy populares en el reconocimiento de voz, por lo que hoy en día se
vuelven muy útiles en análisis y reconocimiento de señales musicales, y en los sistemas de clasificación
de géneros musicales, como sustentan Nagawade y Ratnaparkhe (2017).
Así como el anterior proyecto soporta que la extracción de los MFCC es una de las maneras más
eficientes de caracterizar las señales musicales para la identificación de instrumentos musicales, Jeyalakshmi, Murugeshwari y Karthick (2018) concluyen que “el mejor algoritmo hasta el momento es
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
6
el MMFC, ya que este da mejores resultados que otros métodos al apreciar un número mayor de
coeficientes” (p. 355).
Para entender más a fondo la extracción de los coeficientes MFCC por favor dirigirse a la sección
Desarrollo, sin embargo, los MFCC se extraen básicamente al separar una señal en pequeños tramos o
cuadros, seguido a esto, se calcula la Transformada de Fourier (FFT) en cada tramo y se extrae el espectro de potencia (P), como se describe en la ecuación 3, donde xi hace referencia a cada cuadro de
la señal y N al número de puntos de la FFT.
𝑃 =|𝐹𝐹𝑇(𝑥𝑖)|
2
𝑁 (3)
Una vez se cuenta con el espectro de potencia se aplica un banco de filtros triangulares
correspondientes a la escala Mel, propuesta por Stevens y Volkmann (1940), la cual se expresa matemáticamente por la ecuación 4, donde f es la frecuencia en Hz. Luego de esto, se extrae el logaritmo
y se aplica la transformada discreta de coseno para así obtener los cepstrum –anagrama de spectrum
(espectro en inglés)– como lo definen Childers, Skinner y Kemerait (1977) en su trabajo investigativo
Signal detection and extraction by cepstrum techniques.
𝐹𝑟𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑀𝑒𝑙 = 2595 log10(1 +𝑓
700) (4)
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
7
OBJETIVO DEL PROYECTO
El objetivo del presente trabajo de grado es construir un sistema IoT (Internet de las Cosas o Internet of
Things, por sus siglas en inglés) para la clasificación de un conjunto de instrumentos musicales, para lo cual se plantea un desarrollo algorítmico que es el descrito en este documento y se plantea como trabajo
futuro el desarrollo hardware en un dispositivo embebido.
De acuerdo con lo anterior, entre los alcances de este trabajo se encuentra la aplicación del algoritmo
desarrollado en el ambiente de programación de Python en la versión 3.7, como se evidencia en el enlace expuesto en el Anexo 1. Asimismo, el algoritmo propuesto es un sistema de clasificación que requiere
como entrada un vector de características de clasificación compuesto por las medidas estadísticas de los
primeros trece coeficientes MFCC, entre éstas la media, la mediana, la varianza, la covarianza y la desviación estándar para cada coeficiente, dando un vector con una longitud de 65 características por
cada audio con duración de 3 segundos.
De la misma manera, se escogió el modelo de SVM lineal como el sistema de clasificación, ya que, a partir del protocolo de pruebas, se evidencia un porcentaje de exactitud aproximado del 97% en la
validación de su entrenamiento y un 68% de exactitud en la clasificación de instrumentos en ambientes
polifónicos.
Finalmente, se evalúa la factibilidad del algoritmo para su implementación en un sistema embebido de cómputo reducido, en el que se propone la transmisión del instrumento reconocido por medio del
protocolo MQTT. Es así como a partir del protocolo de pruebas, el sistema en general implementa un
tiempo doce veces menor a la duración de un audio en informar al usuario cual es el instrumento
identificado, lo que lo hace muy apropiado para sistemas de aplicaciones IoT.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
8
DESARROLLO
El presente trabajo de grado se desarrolla en cuatro momentos, como se describen en la Figura 4. El
primer momento hace referencia a la extracción de las características de los audios, los cuales están en formato de audio wave (.wav), codificados en 16 bits por un canal mono, con una duración de 3
segundos, muestreados a una frecuencia de 44.1 kHz.
El segundo momento es la etapa de entrenamiento, la cual tiene como entrada el 70% de los vectores de características de los audios de entrenamiento y su salida es el modelo de clasificación ya entrenado.
Seguido a esto se encuentra la fase de validación que cuenta como entrada con el 30% restante de los
vectores de características, así como también los modelos entrenados, a su salida se cuentan con las
métricas utilizadas para la comparación de los modelos analizados.
Finalmente, el cuarto momento hace referencia a la clasificación de los audios de instrumentos en
contextos polifónicos, en donde se transmite a la salida la información del instrumento clasificado a un
servidor.
Figura 4. Diagrama de bloques del sistema. Fuente: elaboración propia.
A partir del diagrama de bloques, se plantea que los bloques de la parte inferior, encerrados con el
recuadro rojo, son el sistema embebido, por lo que en la última fase se evalúa el sistema para determinar
el alcance y pertinencia de su aplicación en hardware en un sistema embebido de cómputo reducido.
Cabe resaltar que la entrada del sistema en general son muestras sonoras de cuatro familias de
instrumentos musicales: clarinete, flauta traversa, trombón y timbal. Para el conjunto de entrenamiento
y validación se utilizaron 400 audios, es decir 100 muestras de cada instrumento en un contexto monofónico, compuesto por notas tenidas, intervalos y melodías sencillas. De igual forma, para el
conjunto de evaluación o clasificación se usaron 120 audios, compuestos por 30 audios por cada
instrumento armonizado con otro instrumento, como cuerdas, piano y percusión.
El algoritmo propuesto que se describe en esta sección se puede evidenciar en el archivo digital
adjunto a este documento, en donde se encuentra el código desarrollado en el ambiente de Python, en
su versión 3.7.
Extracción de características:
Para la extracción de los coeficientes MFCC se tuvieron en cuenta los resultados obtenidos por Han,
Chan, Choy y Pun (2006) en su investigación An efficient MFCC extraction method in speech recognition, en el que se propone el proceso de extracción de las características para la identificación de
cada audio, como se observa en la Figura 5.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
9
Figura 5. Extracción de características. Fuente: elaboración propia.
En el caso de los audios de instrumentos sin acompañamiento (conjunto de entrenamiento y
validación), se añade un ruido con distribución uniforme para recrear las frecuencias de instrumentos en
un contexto polifónico, y así obtener una mejor precisión en la clasificación, como se justifica en la
sección Protocolo de Pruebas, en el enunciado Adición de Ruido.
De acuerdo con lo anterior, se establece una Relación Señal a Ruido (SNR, Signal-to-Noise Ratio
por sus siglas en inglés) de -12 dB, por lo que se extrae el valor RMS de la señal y se calcula el valor de
la amplitud que debe tener el ruido, como se ve en la ecuación 5, donde A hace referencia a la amplitud
RMS.
𝑆𝑁𝑅𝑑𝐵 = 10 log10 (𝑃𝑠𝑒ñ𝑎𝑙𝑃𝑟𝑢𝑖𝑑𝑜
) = 20 log10 (𝐴𝑠𝑒ñ𝑎𝑙𝐴𝑟𝑢𝑖𝑑𝑜
)
𝑆𝑁𝑅𝑑𝐵 = 20 log10 (𝐴𝑠𝑒ñ𝑎𝑙𝐴𝑟𝑢𝑖𝑑𝑜
)
𝐴𝑟𝑢𝑖𝑑𝑜 =1
10𝑆𝑁𝑅𝑑𝐵20
𝐴𝑠𝑒ñ𝑎𝑙 (5)
Una vez se conoce el valor de la amplitud de la señal de ruido se genera la función de distribución
uniforme con valores de amplitud aleatorios entre -Aruido y Aruido, con una longitud igual a la duración de
los audios.
Es así como las señales ya están listas para la etapa de preénfasis, en donde la señal de entrada pasa
por un filtro pasa altas 1- az-1, descrito por la ecuación 6, donde 𝑆′𝑛 es la salida, 𝑆𝑛 es la entrada y a es
el factor de preénfasis con un valor de 0.97. Esta etapa permite reducir el rango espectral debido a que
normalmente las altas frecuencias tienen menor magnitud que las frecuencias bajas.
𝑆′𝑛 = 𝑆𝑛 − 𝑎𝑆′𝑛−1 (6)
Después de la etapa de preénfasis se procede a separar la señal en pequeñas secciones llamadas
cuadros o marcos, con duración entre 20ms y 25ms como se establece normalmente en el estado del arte. En este caso, como se observa en la Figura 6, se fija una duración de cuadro de 23ms, lo que genera
una longitud de la ventana igual a 1015 muestras, equivalente a la longitud del cuadro multiplicada por
la frecuencia de muestreo.
Adicionalmente, como sustentan Han et al. (2006), se establece una superposición entre cuadros adyacentes del 50%, es decir, 11.5 ms, para obtener una buena correlación entre los cuadros y no se
pierda información de la señal entre un cuadro y el otro.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
10
Figura 6. Segmentación por cuadros. Fuente: elaboración propia.
Al segmentar la señal en cuadros se producen efectos de alta frecuencia al comienzo y al final de los marcos, debido a que se generan cambios repentinos de la señal a cero o de cero a la señal. Por lo tanto,
se implementa la etapa de ventaneo con el fin de contrarrestar los efectos de borde, que en este caso, se
usa la ventana de Hamming (como se observa en la Figura 7), descrita matemáticamente por la ecuación
7, con N como la longitud de la ventana y n el número de muestra dentro del cuadro, entre 0 y 1015.
𝐻𝑎𝑚(𝑁) = 0.54 − 0.46 cos(2𝜋𝑛
𝑁−1) (7)
Figura 7. Ventana Hamming. Fuente: elaboración propia.
La siguiente etapa es el cálculo de la Transformada de Fourier (FFT) para encontrar el espectro en frecuencia en cada uno de los cuadros. Con el fin de obtener una buena resolución en frecuencia, se
implementa una FFT de N puntos igual a 1024 para evitar truncamientos en el análisis del espectro y
para que el tiempo de cálculo de la FFT sea mucho menor al ser un número de base 2, como justifican
Radhouane, Liu y Modlin (2000) en su estudio sobre reducción de memoria en el cálculo de la FFT.
Una vez se cuenta con el espectro en frecuencia de la señal, se procede a hacer la transformación a
la escala Mel por medio de un banco de filtros triangulares, normalmente de orden 40. Cada filtro
triangular tiene una respuesta de 1 en el centro de la frecuencia y decrece linealmente a 0 hasta que alcanza la frecuencia central del filtro adyacente, como se observa en la Figura 8, y se expresa
matemáticamente en la ecuación 8, donde m es el número del filtro y k es la frecuencia en la escala de
Mel.
𝐵𝑎𝑛𝑐𝑜 𝑑𝑒 𝐹𝑖𝑙𝑡𝑟𝑜𝑠(𝑁) =
{
0 𝑘 < 𝑓(𝑚 − 1)𝑘−𝑓(𝑚−1)
𝑓(𝑚)−𝑓(𝑚−1) 𝑓(𝑚 − 1) ≤ 𝑘 < 𝑓(𝑚)
1 𝑘 = 𝑓(𝑚)𝑓(𝑚+1)−𝑘
𝑓(𝑚+1)−𝑓(𝑚) 𝑓(𝑚) < 𝑘 ≤ 𝑓(𝑚 + 1)
0 𝑘 > 𝑓(𝑚 + 1)
(8)
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
11
Figura 8. Banco de Filtros Triangulares. Fuente: elaboración propia.
Los coeficientes obtenidos después del banco de filtros están altamente correlacionados, por lo que se aplica la Transformada Discreta de Coseno (CDT) a cada cepstrum de la frecuencia Mel compactando
su energía y así producir una representación comprimida del banco de filtros.
En esta misma etapa se implementa un filtro sinusoidal en el espectro ceptral para desenfatizar las frecuencias altas producto del preénfasis de la primera etapa. Es así como se obtienen los MFCC, que
para la clasificación se utilizan los primeros 13 que son suficientes para la caracterización de los
instrumentos. Adicionalmente, se reemplaza el primer factor por el logaritmo de la energía del cuadro,
ya que brinda información más representativa.
Finalmente, a la entrada de la última etapa se cuentan con 13 factores por cada cuadro del audio, es
decir, al tener cada audio 260 cuadros, se obtiene una matriz de dimensión 260x13. Por consiguiente, se
realiza el cálculo de cinco medidas estadísticas por cada factor, incluyendo la media, mediana, varianza, covarianza y desviación estándar, lo que genera un vector de 65 características por cada audio, como se
describe en la Figura 9.
Figura 9. Vector de Características. Fuente: elaboración propia.
Entrenamiento y validación:
Como parte del proceso de entrenamiento se implementó la herramienta Classification Learner de
Matlab, en la cual se realizó el entrenamiento de diferentes modelos de clasificación para determinar
cuáles son los algoritmos más idóneos para el sistema de clasificación. Es así como se obtienen los resultados de seis modelos, registrados en la Tabla 1, en donde se evidencia que los modelos con mayor
exactitud en el entrenamiento son el árbol de decisiones, K-NN y SVM lineal, respecto a los demás.
Modelo Exactitud (%)
Árbol de Decisiones 92,8 %
Naive Bayes - Gaussiano 86.3 %
SVM Lineal 97 %
SVM Gaussiano 63.7 %
Discriminante Lineal 91.3 %
KNN 95 %
Tabla 1. Exactitud modelos de clasificación con la herramienta Classification Learner.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
12
Seguido a esto, se realiza el entrenamiento de los tres modelos en el ambiente de Python, como se
evidencia en los archivos del enlace del Anexo 1, con 400 atributos de entrada, de los cuales se establecen aleatoriamente 280 como el conjunto de entrenamiento, equivalente a un 70% y los otros 120
restantes equivalentes al 30% se asignan al conjunto de validación. Para facilitar el proceso de validación
las clases se establen como se indica en la Tabla 2.
Clase Valor
Clarinete (Cl) 0
Flauta (FL) 1
Trombón (Tr) 2
Timbales (Ti) 3
Tabla 2. Etiquetas.
El primer modelo que se entrena es el Árbol de Decisión, considerando el criterio de entropía como función que mide la pureza de la división de los nodos, que a su vez es el inverso de la información de
ganancia, en donde se busca que en los nodos hoja haya una entropía igual a cero, lo que indica que la
etiqueta fue asignada. Al realizar el entrenamiento se genera el árbol expuesto en el Anexo 2.
El segundo modelo es K-NN, en el cual es importante determinar el número de vecinos óptimo a
considerar para clasificar nuevos atributos. De esta forma, se cuenta con la distancia euclidiana como
parámetro de potencia para encontrar los vecinos cercanos, la cual genera mejor precisión al no implementar cómputos innecesarios al buscar la trayectoria más corta entre los dos atributos que se
comparan.
De acuerdo con lo anterior, como se visualiza en la Figura 10, se evalúa la respuesta del modelo
variando el parámetro k de 1 a 20, obteniendo así en la validación del entrenamiento la exactitud más
alta de 76% para k vecinos igual a 2.
Figura 10. Exactitud del modelo K-NN variando k entre 1 y 20. Fuente: elaboración propia.
El último modelo entrenado es SVM, en el que se establece la función de kernel lineal, como se sustenta en la sección Protocolo de Pruebas. De igual manera, se establece el parámetro de regulación C muy
grande, lo que ajusta un menor margen de separación entre las clases y por consiguiente hay menos
vectores de soporte que identifican el modelo entrenado. En este caso, al ser un sistema con más de dos
clases se ajusta el modelo para que en el entrenamiento y clasificación se realice una comparación de
una clase contra todas las demás.
Durante la fase de validación del entrenamiento del sistema y la clasificación de nuevos atributos se
utilizan algunas herramientas para visualizar el desempeño de los algoritmos de clasificación, entre estas, se emplea la matriz de confusión que permite visualizar a que clase fueron asignados los atributos
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
13
de entrada del modelo de clasificación, en cada fila se encuentra la predicción para cada clase y en las
columnas la etiqueta real a la que deberían ser asignados.
Usualmente, en las matrices de confusión se contempla una clase positiva, la cual es aquella a la que
debe ser etiquetado el atributo que se está clasificando y una clase negativa correspondiente a las demás
clases. Con base a lo anterior, en la Figura 11 se ilustra un ejemplo de matriz de confusión para dos
clases, en donde la clase 1 se puede representar como la clase positiva.
Etiqueta Real
Eti
quet
a as
ignad
a
Clase 1 Clase 2
Cla
se 1
VP FP
Cla
se 2
FN VN
Figura 11. Matriz de Confusión. Fuente: elaboración propia.
En relación con la Figura 11, la tasa de verdaderos positivos (VP) hace referencia al número de
asignaciones correctas de la clase positiva, la razón de falsos positivos (FP) indica el número de asignaciones incorrectas de la clase positiva, la tasa de falsos negativos (FN) corresponde a las
predicciones incorrectas de la clase negativa y la razón de verdaderos negativos (VN) indica las
predicciones correctas para la clase negativa.
A partir de la matriz de confusión se pueden obtener diferentes métricas que permiten analizar el
desempeño de los modelos entrenados y así seleccionar el sistema de clasificación final, proceso que se
describe en la sección de Protocolo de Pruebas. Dentro de estas métricas se encuentra la exactitud, la cual hace referencia a lo cercano que esta el resultado de un valor medido al valor verdadero. En la
ecuación 9 se encuentra la función de exactitud empleada, donde m representa el número de clases.
𝐸𝑥𝑎𝑐𝑡𝑖𝑡𝑢𝑑 =1
𝑚∑
𝑣𝑝𝑖+𝑣𝑛𝑖
𝑣𝑝𝑖+𝑓𝑝𝑖+𝑓𝑛𝑖+𝑣𝑛𝑖
𝑚𝑖=1 (9)
De igual forma, se usa la métrica de precisión, la cual indica la capacidad del clasificador de no
etiquetar como positivo un atributo que es negativo. Es así, como en la ecuación 10 se expresa
matemáticamente la precisión, donde m es el número de clases.
𝑃𝑟𝑒𝑐𝑖𝑠𝑖ó𝑛 =∑ 𝑣𝑝𝑖𝑚𝑖=1
∑ (𝑣𝑝𝑖+𝑓𝑝𝑖)𝑚𝑖=1
(10)
Adicionalmente, se considera el recall o recuerdo, métrica que hace referencia a la capacidad del
clasificador de encontrar todas las muestras positivas. En este caso se calcula el recall como se observa
en la ecuación 11, donde m es el número de muestras.
𝑅𝑒𝑐𝑎𝑙𝑙 =∑ 𝑣𝑝𝑖𝑚𝑖=1
∑ (𝑣𝑝𝑖+𝑓𝑛𝑖)𝑚𝑖=1
(11)
Por otro lado, otra herramienta que se implementó es la Curva Característica del Receptor ROC
(Receiver Operating Characteristic por sus siglas en inglés), la cual es una representación gráfica para
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
14
evaluar la calidad de salida del clasificador. De acuerdo con lo anterior, se tiene en cuenta la razón de
los verdaderos positivos frente a la razón de falsos positivos.
Usualmente, la gráfica ROC se emplea en los sistemas de clasificación binarios, por lo que para ser
empleada en modelos de clasificación de múltiples clases se recurre a ajustar los modelos para hacer
una clasificación de una clase contra todas las demás y así encontrar un punto por curva para cada clase,
de la cual, al calcular el área bajo la curva, se estima la precisión de la clase.
Seguido a esto, se hace un macro promedio para calcular la precisión del modelo entrenado, para
esto, se grafica la curva del sistema en general a partir de cada punto perteneciente a la curva de cada
clase y finalmente, se calcula el área bajo la curva. En otras palabras, se suman las precisiones de todas las clases y se promedia por el número de clases, como se describe en la ecuación 12, donde m es el
número de clases y Pr es la precisión de cada clase.
𝑀𝑎𝑐𝑟𝑜 𝑃𝑟𝑜𝑚𝑒𝑑𝑖𝑜 =∑ 𝑃𝑟𝑖𝑚𝑖=1
𝑚 (12)
Clasificación y Transmisión:
En un principio para esta etapa, se procede a evaluar los modelos previamente entrenados, con el fin de
escoger el algoritmo definitivo para el sistema de clasificación. De acuerdo con lo anterior, se tiene como entrada los tres modelos previamente entrenados y los vectores de características de los audios
correspondientes al conjunto de clasificación, el cual está conformado por 30 audios de cada instrumento
musical en contextos polifónicos, para un total de 120 audios.
El anterior proceso se describe con más detalle en la sección de Protocolo de Pruebas, sin embargo, se obtiene como resultado que el modelo con mayor exactitud tanto en la validación del entrenamiento
como en la evaluación de la clasificación es el SVM lineal, con 97% y 68% respectivamente.
Una vez se determina el sistema de clasificación, se procede a realizar la transmisión del instrumento identificado, por lo que se propone el protocolo de comunicación MQTT (Message Queuing Telemetry
Transport por sus siglas en inglés) para informar al usuario cual es el instrumento identificado. Se decide
implementar MQTT ya que Krishna, Ravi, Sailendra y Kumar (2017) concluyen en su investigación, Implementation of MQTT Protocol on Low Resourced Embedded Network que el protocolo MQTT tiene
rápida respuesta, buen rendimiento, buena seguridad, bajo consumo y menor ancho de banda.
Este protocolo se basa en la arquitectura publicación-suscripción usualmente para aplicaciones IoT
(Internet of Things, por sus siglas en inglés). En este caso, se publica el nombre del instrumento identificado utilizando el bróker “test.mosquitto.org” en el puerto 1883, con el tema o tópico
MFCC/clasificación. Cabe resaltar que para observar la información que se publica, el usuario debe
estar inscrito al tema. En ese caso, se valida que la comunicación se realiza de manera correcta por medio del software MQTT.fx, como se ve el ejemplo en la Figura 12, con un instrumento identificado
como Timbal.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
15
Figura 12. Visualización comunicación en MQTT.fx. Fuente: elaboración propia.
Finalmente, se procede a evaluar la aplicación del algoritmo en un sistema embebido, por lo que se
carga el modelo de SVM entrenado previamente y se estima el tiempo empleado en la clasificación de un nuevo audio, desde la extracción de sus características, la clasificación y transmisión al usuario de
cuál es el instrumento identificado. El análisis de tiempos se hace con un procesador Intel Core i7-5500
de 64 bits, con velocidad de reloj base de 2.40GHz y 16GB de memoria RAM como se explica
detalladamente en la sección de Protocolo de Pruebas.
Como se mencionó anteriormente, los resultados del cálculo del tiempo que emplea el procesador
Intel en clasificar un nuevo audio de entrada indican que el proceso completo se demora en promedio
252,88 milisegundos, lo que quiere decir que es doce veces menor al tiempo de un audio de entrada, lo
que lo hace óptimo para la aplicación en sistemas embebidos.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
16
PROTOCOLO DE PRUEBAS
En esta sección se exponen los resultados de las pruebas realizadas durante el desarrollo del trabajo de
grado, por tal motivo si en algún momento se necesitan profundizar conceptos por favor dirigirse al
capítulo de Desarrollo. De igual forma, en los archivos que se encuentran en el enlace del Anexo 1, se
pueden evidenciar los algoritmos realizados para obtener los resultados que se exponen a continuación.
Adición de ruido:
Durante el desarrollo de este estudio se encontró que después de caracterizar y entrenar los modelos, al clasificar los audios de los instrumentos acompañados, la exactitud de algunos modelos era un poco
baja. Es por lo que, se decidió añadir ruido con distribución uniforme a los audios de entrada
correspondientes al conjunto de entrenamiento y validación, es decir las muestras de instrumentos sin
acompañamiento, con el fin de simular un ambiente polifónico con varias frecuencias.
En la Tabla 3 se encuentran los resultados obtenidos tanto en el proceso de validación del
entrenamiento (audios de instrumentos sin acompañamiento) como en la evaluación de la clasificación (audios en contexto polifónicos), para ruido con un SNR de -3 dB, -6 dB y -12 dB, obteniendo que el
mejor resultado se da con un valor de SNR de -12 dB, como también se observa en la Figura 13.
Clasificador
Sin Ruido -3 dB -6 dB -12 dB
Val
idac
ión
Cla
sifi
caci
ón
Val
idac
ión
Cla
sifi
caci
ón
Val
idac
ión
Cla
sifi
caci
ón
Val
idac
ión
Cla
sifi
caci
ón
Árbol de
Decisiones 88% 34% 87% 32% 89% 34% 90% 34%
K-NN 74% 51% 75% 52% 75% 54% 76% 54%
SVM 94% 65% 94% 67% 95% 67% 97% 68%
Tabla 3. Exactitud de cada modelo para los distintos niveles de SNR.
Figura 13. Exactitud para audios con diferentes niveles de ruido. Fuente: elaboración propia.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
17
Elección de la función kernel para el modelo SVM:
El algoritmo SVM se puede implementar con diferentes funciones kernel dependiendo si los atributos a clasificar son separables linealmente o no. Por tal razón, se realizó la comparación entre el kernel
Gaussiano, Lineal y polinomial de segundo grado. Los modelos se compararon con los mismos
parámetros C igual a 1E10 y un valor gamma igual a 0.015, es decir, 1 sobre el número de características.
Los resultados obtenidos indican que el kernel más indicado para este sistema es el Lineal, ya que
proporciona una exactitud mayor tanto en la validación del entrenamiento como en la clasificación de
los instrumentos en contexto polifónico, con un 97% y un 68% respectivamente, como se observa en la
Figura 14.
Figura 14. Exactitud para los diferentes kernel de SVM. Fuente: elaboración propia.
Selección del modelo final a partir de las métricas de entrenamiento y clasificación:
Para la selección del modelo de clasificación se consideran la exactitud y la precisión como métricas
decisivas tanto en el entrenamiento como en la evaluación del entrenamiento. En un principio, se realiza el entrenamiento de los modelos árbol de decisiones, K-NN y SVM, con el 30% de las muestras del
conjunto de audios de entrenamiento, en donde se obtienen los porcentajes de exactitud registrados en
la Tabla 4.
Modelo Exactitud
Árbol de Decisiones 100%
K-NN 91%
SVM 100%
Tabla 4. Exactitud con el conjunto de entrenamiento.
Después de contar con los modelos entrenados se realiza la validación con el 70% restante del
conjunto de audios para el entrenamiento. Es así como se obtienen las diferentes matrices de confusión
para cada modelo, como se observan en las Tablas 5, 6 y 7, cuya descripción se encuentra en la sección de Desarrollo, sin embargo, esta matriz permite visualizar a que clase fueron asignados los atributos del
conjunto de validación.
97%
68%
89%
65%
92%
66%
0%
20%
40%
60%
80%
100%
Validación Clasificación
Exac
titu
d
Linear Gaussiano Polinomial
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
18
Etiqueta Real
Eti
quet
a as
ignad
a
Cl Fl Tr Ti
Cl 31 3 1 2
Fl 3 20 2 0
Tr 0 0 30 0
Ti 0 0 3 25
Tabla 5. Matriz de Confusión de la validación del entrenamiento del Árbol de decisiones.
Etiqueta Real
Eti
quet
a as
ignad
a
Cl Fl Tr Ti
Cl 27 2 6 2
Fl 7 13 4 1
Tr 2 1 25 2
Ti 0 0 4 24
Tabla 6. Matriz de Confusión de la validación del entrenamiento K-NN.
Etiqueta Real
Eti
quet
a as
ignad
a
Cl Fl Tr Ti
Cl 36 1 0 0
Fl 1 22 2 0
Tr 0 0 30 0
Ti 0 0 0 28
Tabla 7. Matriz de Confusión de la validación del entrenamiento SVM.
A partir de las matrices de confusión se calcula la precisión de cada clase para cada uno de los modelos, como se visualiza en la Tabla 8. De igual forma, se observa el promedio general para cada
modelo, en donde el árbol de decisiones tiene una precisión del 89%, K-NN del 76% y SVM del 97%.
Modelo
Clase
Clarinete (Cl)
Flauta (Fl) Trombón (Tr) Timbal (Ti) Promedio
Árbol de Decisiones 91% 87% 83% 93% 89%
K-NN 75% 81% 64% 83% 76%
SVM 97% 96% 94% 100% 97%
Tabla 8. Precisión de la validación del entrenamiento de cada instrumento.
Por otro lado, se consideró la Curva Característica del Receptor ROC (Receiver Operating Characteristic por sus siglas en inglés), en la cual, por cada clase, se tiene en cuenta la razón de los
verdaderos positivos frente a la razón de falsos positivos. Con base a lo anterior, se hace un promedio
con los puntos de cada etiqueta para calcular el área bajo la curva del sistema en general, lo que indica
el porcentaje de precisión del modelo entrenado para la validación del entrenamiento.
En las Figuras 15, 16 y 17 se grafican las correspondientes curvas ROC para cada uno de los
algoritmos de clasificación, rectificando que el modelo entrenado con mayor precisión es SVM, sólo
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
19
que en este caso se cuenta con una desviación de -3% al binarizar las clases, hacer la clasificación de
una clase contra todas las demás y calcular el macro promedio de la precisión.
Figura 15. Curva ROC Árbol de Decisiones. Fuente: elaboración propia.
Figura 16. Curva ROC K-NN. Fuente: elaboración propia.
Figura 17. Curva ROC SVM. Fuente: elaboración propia.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
20
En este momento ya se cuentan con los tres modelos entrenados, por lo que se procede a clasificar los
audios de evaluación o clasificación, correspondientes a 30 audios por cada instrumento en contextos polifónicos, lo que genera como resultado las diferentes matrices de confusión expuestas en las Tablas
9, 10 y 11.
Etiqueta Real
Eti
quet
a as
ignad
a
Cl Fl Tr Ti
Cl 3 7 2 18
Fl 4 4 16 6
Tr 2 13 10 5
Ti 0 7 1 22
Tabla 9. Matriz de Confusión de la evaluación de la clasificación del Árbol de Decisiones.
Etiqueta Real E
tiquet
a as
ignad
a
Cl Fl Tr Ti
Cl 10 17 0 3
Fl 13 14 3 0
Tr 1 5 21 3
Ti 4 1 7 18
Tabla 10. Matriz de Confusión de la evaluación de la clasificación K-NN.
Etiqueta Real
Eti
quet
a as
ignad
a
Cl Fl Tr Ti
Cl 18 10 0 2
Fl 5 24 0 1
Tr 5 7 17 1
Ti 0 7 1 22
Tabla 11. Matriz de Confusión de la evaluación de la clasificación SVM.
De acuerdo con las matrices de confusión obtenidas en la clasificación, se calcula la precisión de cada clase para cada uno de los modelos, como se visualiza en la Tabla 12. De igual forma, se observa
el promedio general para cada modelo, en donde el árbol de decisiones tiene una precisión del 31%, K-
NN del 54% y SVM del 73%.
Modelo Clase
Clarinete (Cl) Flauta (Fl) Trombón (Tr) Timbal (Ti) Promedio
Árbol de Decisiones 33% 13% 34% 43% 31%
K-NN 36% 38% 68% 75% 54%
SVM 64% 50% 94% 85% 73%
Tabla 12. Precisión de la clasificación de cada instrumento.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
21
Asimismo, después de haber validado el entrenamiento de los modelos y haber clasificado los audios
de los instrumentos en contextos polifónicos, se realiza el cálculo del recall para cada familia de instrumentos, considerando la información obtenida en las matrices de confusión, como se registran en
la Tabla 13.
Modelo
Clase
Clarinete (Cl) Flauta (Fl) Trombón (Tr) Timbal (Ti) Promedio
Val
idac
ión
entr
enam
iento
Árbol de Decisiones 84% 80% 100% 89% 88%
K-NN 73% 52% 83% 86% 74%
SVM 97% 89% 100% 100% 97%
Cla
sifi
caci
ón
Árbol de Decisiones 10% 13% 33% 73% 33%
K-NN 33% 47% 70% 60% 53%
SVM 60% 80% 57% 73% 68%
Tabla 13. Recall para cada instrumento.
La clasificación de los instrumentos en contexto polifónicos dio resultados interesantes relacionados
con la exactitud obtenida en el entrenamiento, ya que como se observa en la Figura 18, se grafican los
resultados de exactitud, en donde el Árbol de Decisión tiene la menor exactitud con un 34%, seguido a este K-NN genera una exactitud del 54% y finalmente el modelo de SVM tiene la mayor exactitud con
un 68%. De acuerdo con lo anterior y con base a los resultados obtenidos en el entrenamiento, se guarda
el modelo de SVM y se escoge como el sistema de clasificación para este trabajo de grado.
Figura 18. Exactitud en la Clasificación. Fuente: elaboración propia.
Medición tiempo empleado de operación:
Como etapa final en el desarrollo de este trabajo de grado se realiza la medición del tiempo que se tarda
el sistema en identificar un instrumento, desde que entra el audio al sistema, se extraen las características a partir de los coeficientes MFCC, se clasifica y se transmite información obtenida. Este análisis de
tiempos se hace con un procesador Intel Core i7-5500 de 64 bits, con velocidad de reloj base de 2.40GHz
y 16GB de memoria RAM, en un solo proceso con un solo núcleo.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
22
En un principio se hace la prueba con 10 audios de instrumentos, con el fin de evaluar la duración
del sistema solo en clasificar un audio, es decir desde que entra el audio, se extraen sus características y con el modelo entrenado de SVM se clasifica. Se consignan los tiempos en la Tabla 14 y se obtiene un
promedio de 48 milisegundos.
Audio Tiempo [s]
Mixto1.wav 0,04375
Mixto13.wav 0,04697
Mixto28.wav 0,04048
Mixto36.wav 0,04361
Mixto49.wav 0,04197
Mixto57.wav 0,05929
Mixto72.wav 0.05563
Mixto87.wav 0,05197
Mixto100.wav 0,0463
Mixto115.wav 0,0544
Promedio[s] 0,04763
Tabla 14. Tiempo de clasificación de un audio.
Finalmente, con los mismos audios, se evalúa la duración desde que entra un audio al sistema hasta
que el usuario recibe la información del instrumento identificado, con el fin de estimar cuánto tiempo dura la transmisión de la información. Con los tiempos consignados en la Tabla 15 se obtiene un
promedio de 252,88 milisegundos.
Audio Tiempo [s]
Mixto1.wav 0,24262
Mixto13.wav 0,27087
Mixto28.wav 0,25261
Mixto36.wav 0,24431
Mixto49.wav 0,24270
Mixto57.wav 0,26400
Mixto72.wav 0,25460
Mixto87.wav 0,24505
Mixto100.wav 0,26119
Mixto115.wav 0,25085
Promedio[s] 0,25288
Tabla 15. Tiempo total que implementa el sistema en identificar y transmitir la información.
Con base a los resultados obtenidos anteriormente, se estima que la comunicación por medio del
protocolo MQTT dura aproximadamente 205 milisegundos, es decir 15 veces menos de la duración de
un audio de entrada, lo que lo hace óptimo para la implementación en un sistema embebido de cómputo
reducido.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
23
ANALISIS DE RESULTADOS
Los audios utilizados para el entrenamiento fueron grabados en un ambiente silencioso y aceptable
acústicamente, por lo que al hacer el entrenamiento del sistema con señales a las que se les sumó un
ruido este brindó mejores resultados, aumentando la exactitud en un 3%, ya que esto simula el contexto
polifónico que es en donde realmente se va a implementar el sistema.
Por otra parte, es importante considerar que los algoritmos utilizados en este estudio son modelos de
aprendizaje supervisado, lo que facilita la clasificación de los instrumentos al conocer las clases deseadas. Asimismo, al contar con un vector de características de 65 atributos se genera una precisión
mucho más alta que en investigaciones anteriores, al considerar más características que solo el valor de
los 13 coeficientes MFCC.
Si bien los resultados obtenidos en el desarrollo de este estudio indican una exactitud alta en la
validación del entrenamiento con respuestas mayores al 76% para los 3 modelos, como se observa en la
Figura 19, el modelo de SVM presenta la mayor exactitud con un 97%. Adicionalmente, este modelo
proporciona la precisión más alta para cada una de las familias de instrumentos, mayor al 50%, tanto en la validación del entrenamiento como en la clasificación de instrumentos en contextos polifónicos, por
esta razón se escoge como el modelo final para el sistema de clasificación.
Figura 19. Exactitud de la Validación del Entrenamiento. Fuente: elaboración propia.
Asimismo, se obtiene que la precisión promedio con el conjunto de validación es más baja que con
el conjunto de entrenamiento, lo que demuestra que el hiperplano óptimo formado por el conjunto de
entrenamiento, para el modelo de SVM, no puede garantizar buenos resultados con el conjunto de
validación del entrenamiento.
Igualmente, durante el proceso de evaluación de los modelos se observaron resultados interesantes.
Uno de estos es el registrado en las matrices de confusión de las Tablas 9, 10 y 11, en donde se evidencia
que los errores más comunes en la clasificación son entre clarinete y flauta. Lo anterior sucede ya que estas clases cuentan con una precisión aceptable y un recall alto, lo que indica que el modelo detecta
bien la clase, pero también incluye muestras de otras clases. Esto puede suceder debido a que el timbre
de estos instrumentos es muy similar.
Por otro lado, al evaluar los tiempos de procesamiento del sistema, se encuentra una respuesta rápida
en comparación a la duración de los audios que se clasifican. Para la identificación de un instrumento,
desde que entra el audio, se extraen sus características a partir de los coeficientes MFCC y se clasifica con el modelo entrenado de SVM, emplea un tiempo sesenta y tres veces menos de lo que se demoraría
el proceso de adquisición del audio, es decir que la implementación de este algoritmo en un sistema
embebido es muy viable.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
24
De la misma manera, a partir de los resultados obtenidos en las mediciones del tiempo empleado,
incluyendo la transmisión al usuario del instrumento identificado, el sistema se tarda quince veces menos de la duración de un audio de entrada, lo que rectifica que el protocolo MQTT es una buena alternativa
en el diseño del sistema embebido y para aplicaciones de Internet de las Cosas Musicales (IoMUT, en
inglés Internet of Musical Things). Asimismo, este protocolo es compatible con diferentes motores de
cómputo reducido como Raspberry Pi y ESP8266.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
25
CONCLUSIONES Y RECOMENDACIONES
El sistema de clasificación propuesto en este trabajo de grado clasifica con una exactitud promedio del
68% cuatro familias de instrumentos musicales que incluyen clarinete, flauta traversa, trombón y
timbales sinfónicos, a partir de sus características tímbricas dadas por cinco medidas estadísticas por cada uno de los primero trece coeficientes MFCC, extraídos de audios con duración de 3 segundos para
cada instrumento en contextos polifónicos. De igual manera, para la validación del entrenamiento se
cuenta con una exactitud promedio del 97% con los mismos instrumentos.
A partir del análisis de los resultados, se puede evidenciar que, entre los modelos de aprendizaje
evaluados, el algoritmo de SVM con función de kernel lineal proporciona la mayor exactitud en la
clasificación de instrumentos musicales en contextos polifónicos, con un porcentaje equivalente al 68% y una precisión del 73%. Los demás modelos cuentan con menor desempeño, dentro de los cuales el
algoritmo de K-NN le sigue con un máximo porcentaje de exactitud y precisión del 54%. De acuerdo
con lo anterior, se escoge el modelo de SVM lineal como sistema de clasificación final.
Adicionalmente, este sistema cuenta con un tiempo de procesamiento, el cual incluye la extracción de las características y la clasificación del instrumento, mucho menor respecto a la duración de los
audios de entrada. Con base a lo anterior y a las pruebas realizadas, con un procesador de alto
rendimiento, no se espera que la duración del procesamiento en un sistema de cómputo reducido cambie radicalmente y sea mayor a 3 segundos, por lo que es apropiado para aplicaciones IoT (Internet de las
Cosas).
Igualmente, el protocolo MQTT es una muy buena opción para transmitir la información del instrumento identificado, ya que como se menciona anteriormente, emplea un tiempo de comunicación
poco comparable a la duración de un audio de entrada. Adicionalmente, este protocolo es compatible en
motores de cómputo reducido y permite desarrollar diferentes interfaces de visualización para informar
al usuario la respuesta del sistema de clasificación.
Asimismo, se desarrolló el sistema de clasificación en el ambiente de programación de Python en la
versión 3.7, lo que facilita su implementación en motores de cómputo reducido al ser ligero y ser
compatible con la versión de Micropython, especializada para este tipo de aplicaciones.
Cabe resaltar que, para el desarrollo de este estudio, se utilizaron sonidos grabados previamente. Por
esto, se recomienda a la hora de diseñar un sistema embebido considerar un sistema de adquisición que
grabe los sonidos con una duración de tres segundos, el cual sea capaz de codificar los audios en un
formato de al menos 16 bits por un canal mono. En dado caso que se adquieran los audios con un formato diferente a 16 bits, se recomienda ajustar el rango de codificación entre -32768 y 32767, debido a que
así fue diseñado el sistema.
De acuerdo con lo anterior, en dado caso que esta aplicación se utilice en agrupaciones sinfónicas en el que se conocen los instrumentos y el formato de la agrupación es fijo, se sugiere realizar el
entrenamiento con muestras de los instrumentos que conforman la agrupación, con el fin de garantizar
un mejor rendimiento del sistema y así ahorrar tiempo en el preprocesamiento de las señales de audio. En el caso de este estudio, se contempló un contexto más general al añadir un ruido uniforme a los
audios del conjunto de entrenamiento y validación, lo cual simula frecuencias en un contexto polifónico.
Finalmente, al estar diseñado el sistema para ejecutar todo en un único proceso, se propone para
trabajos futuros desarrollar la etapa de extracción de características en un contexto de computación distribuida, con el fin de disminuir tiempos y mejorar el rendimiento del sistema, debido a que es viable
fragmentar las muestras de entrada en diferentes ventanas y extraer las características simultáneamente.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
26
BIBLIOGRAFÍA
Tan, P., Steinbach, M., & Kumar, V. (2014). Introduction to Data Mining. no. 1.
Liu, J., & Xie, L. (2010). SVM-Based Automatic Classification of Musical Instruments. 2010
International Conference on Intelligent Computation Technology and Automation. Changsha. pp. 669-
673. doi: 10.1109/icicta.2010.64.
Somerville, P., & Uitdenbogerd, A. (2008). Multitimbral Musical Instrument Classification.
International Symposium on Computer Science and its Applications. Hobart, ACT. pp. 269-274. doi:
10.1109/CSA.2008.67.
Quinlan, J. (1986). Induction of decision trees. Machine Learning. vol 1. no. 1. pp. 81–106. doi:
10.1007/BF00116251
Perfecto, H., Xavier, A., Eloi, B., & Xavier S. (2000). Towards Instrument Segmentation for Music
Content Description: A Critical Review of Instrument Classification Techniques. Proc. ISMIR.
Cover, T., & Hart, P. (1967). Nearest neighbor pattern classification. IEEE Transactions on Information
Theory. vol. 13. no. 1. pp. 21-27. doi: 10.1109/TIT.1967.1053964.
Stitson, M. O., Weston, J. A. E., Gammerman, A., Vovk, V., & Vapnik, V. (1996). Theory of support
vector machines. University of London, vol. 117, no. 827, pp. 188-191.
Cortes, C., & Vapnik, V. (1995). Support vector networks. Machine Learning. vol. 20. pp. 273–297.
Nagawade, M., & Ratnaparkhe, V. (2017). Musical instrument identification using MFCC. 2nd IEEE
International Conference on Recent Trends in Electronics, Information & Communication Technology
(RTEICT).
Jeyalakshmi, C., Murugeshwari, B., & Karthick, M. (2018). HMM and K-NN based Automatic Musical
Instrument Recognition. 2018 2nd International Conference on I-SMAC (IoT in Social, Mobile,
Analytics and Cloud). Palladam. India. pp. 350-355. doi: 10.1109/I-SMAC.2018.8653725.
Stevens, S. S., & Volkmann, J. (1940). The relation of pitch to frequency: a revised scale. The American
Journal of Psychology. vol. 53. pp. 329–353.
Childers, D.G., Skinner, D. P., & Kemerait, R. C. (1977). The cepstrum: A guide to
processing. Proceedings of the IEEE. vol. 65. no. 10. pp. 1428-1443. doi: 10.1109/PROC.1977.10747.
Han, W., Chan, C., Choy, C., & Pun, K. (2006). An efficient MFCC extraction method in speech
recognition. 2006 IEEE International Symposium on Circuits and Systems. Island of Kos. pp. 145-148.
doi: 10.1109/ISCAS.2006.1692543.
Radhouane, R., Liu, P., & Modlin, C. (2000). Minimizing the memory requirement for continuous flow FFT implementation: continuous flow mixed mode FFT (CFMM-FFT). 2000 IEEE International
Symposium on Circuits and Systems (ISCAS). Geneva. Switzerland. pp. 116-119. vol.1. doi:
10.1109/ISCAS.2000.857040.
Krishna, P. G., Ravi, K. S., Kumar, V. S., & Kumar, M. S. (2017). Implementation of MQTT Protocol
on Low Resourced Embedded Network. International Journal of Pure and Applied Mathematics. vol.
116. no. 6. pp. 161-166.
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
27
ANEXOS
Anexo 1. Archivos digitales.
En el siguiente enlace se encuentran los algoritmos desarrollados en Python, como evidencia de lo
propuesto en el presente trabajo de grado. De igual forma, se recomienda leer el documento nombrado
README.md en el que se describe como se deben ejecutar los archivos para que se logren los resultados
registrados en este documento.
Enlace: https://github.com/juanseemendez/Trabajo_de_Grado-Juan_Mendez.git
Pontificia Universidad Javeriana – Facultad de Ingeniería - Departamento de Electrónica
28
Anexo 2. Modelo del entrenamiento del árbol de decisiones.
Recommended