Artículos originales

Creación de un Árbol de Decisión para la Predicción de Tonos a Partir de un Data Set

Analysis of an input dataset to perform a tonal analysis system

Víctor Manuel Vilca Rojas
Universidad Nacional de San Agustín, Perú
Valery Byrne Macias
Universidad Nacional de San Agustín, Perú
Jairo Miguel Castillo Rojas
Universidad Nacional de San Agustín, Perú
Aldair Bryan Salcedo Chávez
Universidad Nacional de San Agustín, Perú

Creación de un Árbol de Decisión para la Predicción de Tonos a Partir de un Data Set

Innovación y Software, vol. 4, núm. 1, pp. 138-150, 2023

Universidad La Salle

Esta obra está bajo licencia internacional Creative Commons Reconocimiento 4.0. Los autores ceden en exclusiva el derecho de publicación de su artículo a la Revista Innovación y Software, que podrá editar o modificar formalmente el texto aprobado para cumplir con las normas editoriales propias y con los estándares gramaticales universales, antes de su publicación; asimismo, nuestra revista podrá traducir los manuscritos aprobados a cuantos idiomas considere necesario y difundirlos en varios países, dándole siempre el reconocimiento público al autor o autores de la investigación.

Recepción: 07 Enero 2022

Aprobación: 16 Febrero 2022

Publicación: 30 Marzo 2023

Resumen: El análisis musical es un proceso que se ha llevado a cabo desde hace años donde diferentes expertos han buscado estudiar variadas piezas musicales. Este proceso inicia con el aprendizaje de detección de tonos, notas y acordes, donde los estudiantes tienen que entrenar el oído para poder llevarlo a cabo. Bajo este contexto, en el siguiente trabajo se ha realizado un árbol de decisión en base a un dataset de coros de Bach con el fin de predecir acordes a partir de tonos. Se dividió el dataset en 80% para crear el árbol y 20% para pruebas, después se realizó la transformación de datos para realizar un análisis de los mismos, con esto finalmente se creó un árbol de decisión con una profundidad de 15 y una exactitud del 75.52%, finalmente se realizaron las pruebas y encontramos buenos resultados de la exactitud del árbol.

Palabras clave: Inteligencia artificial, árbol de decisión, análisis musical, detección de tonos, música.

Abstract: Musical analysis is a process that has been carried out for years where different experts have sought to study various musical pieces. This process begins with the learning of tone, note and chord detection, where students have to train their ears to be able to carry it out. In this context, in the following work a decision tree has been made based on a dataset of Bach choirs in order to predict chords from tones. The dataset was divided into 80% to create the tree and 20% for testing, then the data transformation was performed to perform an analysis of the data, with this a decision tree was finally created with a depth of 15 and an accuracy of 75.52%, the tests were finally carried out and we found good results for the accuracy of the tree.

Keywords: Artificial intelligence, decision tree, music analysis, pitch detection, music..

INTRODUCCIÓN

Las ondas de sonido se propagan a través de varios medios y permiten la comunicación o el entretenimiento para nosotros, los humanos. La música que escuchamos o creamos se puede percibir en aspectos como el ritmo, la melodía, la armonía, el timbre o el estado de ánimo. Todos estos elementos de la música pueden ser de interés para los usuarios de sistemas de recuperación de información musical. Dado que vastos repositorios de música están disponibles para todos en el uso diario (tanto en colecciones privadas como en Internet), es deseable y se vuelve necesario explorar las colecciones de música por contenido. Por lo tanto, la recuperación de información musical puede ser potencialmente de interés para todos los usuarios de computadoras e Internet [1].

Dado un flujo musical, la tarea del análisis de la armonía musical consiste en asociar una etiqueta a cada punto de tiempo. Tales etiquetas revelan la armonía subyacente al indicar una nota fundamental (raíz) y un modo, usando nombres de acordes como 'Do menor'. La tarea de análisis musical puede representarse naturalmente como un problema de aprendizaje secuencial supervisado. De hecho, al considerar sólo las clases de tonos actualmente resonantes, difícilmente se producirían análisis razonables. Las evidencias experimentales sobre la cognición humana revelan que para eliminar la ambigüedad de los casos poco claros, los compositores y los oyentes también se refieren a las transiciones de acordes: en estos casos, el contexto juega un papel fundamental y las claves contextuales pueden ser útiles para el análisis [6].

El dominio musical siempre ha ejercido una fuerte fascinación sobre investigadores de diversos campos. En los últimos años se ha invertido un gran esfuerzo de investigación para analizar la música, bajo una presión académica e industrial. Las técnicas de búsqueda y análisis de música inteligente son cruciales para diseñar sistemas para varios propósitos, como la identificación de música, para decidir sobre la similitud de la música, para la clasificación de música basada en algún conjunto de descriptores, para la generación algorítmica de listas de reproducción y para el resumen de música. De hecho, los avances tecnológicos recientes mejoraron significativamente la forma en que los entornos automáticos componen música, la interpretan expresivamente, acompañan a músicos humanos y la forma en que se vende y compra música a través de tiendas web [5].

El análisis musical es un paso necesario para componer, interpretar y en última instancia, comprender la música, tanto para los seres humanos como para los entornos artificiales. Dentro del área más amplia del análisis musical, destacamos la tarea del reconocimiento de acordes. Este es un problema desafiante para los estudiantes de música, que dedican una cantidad considerable de tiempo a aprender la armonía tonal, así como para los sistemas automáticos. Es un problema interesante y un paso necesario para realizar un análisis estructural de alto nivel que considere los principales elementos estructurales de la música en sus interconexiones mutuas. En la música tonal occidental, en cada momento del flujo musical (o vertical) se puede determinar qué acorde está sonando: el reconocimiento de acordes normalmente consiste en indicar la nota fundamental (o raíz) y el modo del acorde (Figura 1) [5].


Figura 1 :

El problema de reconocimiento de acordes consiste en indicar para cada vertical qué acorde está sonando en ese momento. Extracto de la Sonata para piano Opus 31 n.2 de Beethoven, 1er movimiento.

En síntesis, como dice Bent [7], el análisis musical consiste en exponer y describir sintéticamente la estructura musical y la manera en que se relacionan esos elementos más simples en la estructura general. El análisis puede ir desde una parte de una pieza musical hasta una colección de obras en un periodo de tiempo exacto. Pero el proceso seguirá siendo el mismo utilizando tradicionalmente el oído, papel y un lápiz [8]. Sin embargo, si nos proyectamos a un ámbito más actual, donde frente a nosotros no tenemos una partitura sino una colección de CD´s o hasta un celular con una lista de reproducción de Spotify, las técnicas anteriormente utilizadas para analizar este contenido resultan difíciles de usar, por no decir inservibles.

En estas situaciones del mundo moderno es que surgen diferentes métodos acompañados de algoritmos, los cuales participan en nuevos sistemas de análisis [9].

En este párrafo se expondrá los métodos a utilizar en este artículo: como primer punto se empleará la técnica de árbol de decisión, ya que es una técnica de forma gráfica y analítica de representar todos los eventos o sucesos que pueden surgir a partir de una decisión asumida en cierto momento. Esto nos permitirá tomar la decisión más acertada, ante una variedad de posibles decisiones [10]. Cómo segunda técnica a emplear tenemos clustering, esta técnica es utilizada como un proceso para encontrar una estructura significativa, procesos subyacentes explicativos, características generativas y agrupaciones inherentes a un conjunto de ejemplos; lo que la hace idónea para la presente investigación [11]. Entre otras técnicas de minería de datos.

Entonces, ya habiendo comprendido las bases teóricas de esta investigación, explicaremos la finalidad de este artículo, el cual es: “Desarrollar el análisis del dataset de entrada para realizar un sistema de análisis tonal” el cual nos dará como resultado, un acorde después de recibir los siguientes datos de ingreso: archivos de Bach Central donde se reconocerá las notas musicales con un SI/NO dependiendo en qué lugar se presente el tono.

Herramientas

Árbol de decisiones: Se utilizó árboles de decisiones ya que es una manera de representación de todos los eventos que pueden surgir por una decisión asumida en cierto momento la cual puede ser gráfica y analítica que nos permite organizar el trabajo de cálculos correspondientes para así un despliegue visual del problema. Además de ello nos ayuda a tomar la decisión más idónea, desde el punto de vista probabilístico de un sin fin de posibles decisiones [17].

Correlación de Pearson: La correlación de Pearson mide la existencia (dada por un valor p) y la fuerza (dada por el coeficiente r entre -1 y +1) de una relación lineal entre dos variables continuas. Solo debe usarse cuando se satisfacen sus supuestos subyacentes. Si el resultado es significativo, concluimos que existe una correlación. Para mejor entendimiento un valor absoluto de r de 0,1 se clasifica como pequeño, un valor absoluto de 0,3 se clasifica como medio y de 0,5 se clasifica como grande [18].

Métodos y Metodología computacional

Google Colab: Es un entorno colaborativo de Google que permite trabajar con Notebooks sin alguna configuración requerida que se ejecuta en la nube y te proporciona acceso gratuito a GPU lo cual te permite escribir y ejecutar código de Python en tu navegador y que a su vez permite almacenar dichos cuadernos y trabajar con datos que tengas almacenados en el Drive y compartirlos con tu equipo de trabajo [12].

Python: Es un lenguaje de programación de alto nivel, además es un lenguaje interpretado, por lo cual no requiere ser compilado. Por este motivo el programador puede utilizar el lenguaje de forma directa en el programa o aplicación que realice. Una de las características más resaltantes es que cuenta con una amplia bibliotecas de librerías que permiten obtener diversos recursos de código abierto aplicables para la inteligencia artificial [13].

NumPy: Es una biblioteca idónea para la manipulación de muchos datos. El problema yace en que Python usa listas y no arreglos por ello NumPy nos provee estructuras muy eficientes para manipular muchos datos [14].

Pandas: Es un buen toolkit para hacer análisis de datos. Tiene herramientas para tener tablas y otras estructuras de datos. Además de ello nos permite cargar con gran facilidad archivos csv [15].

Seaborn: Es una librería que usa Matplotlib por debajo para trazar gráficos. Lo cual será usado para visualizar distribuciones aleatorias [16].

Trabajos relacionados

Si vemos en un entorno específico, dentro de la enseñanza de la música, las TICs (Tecnologías de la Información y la Comunicación) aportaron al proceso de enseñanza-aprendizaje. Por un lado, ayudaron a los maestros que tenían alrededor 15 alumnos a personalizar más sus sesiones y por otro lado, el estudiante podía solventar sus dudas en cualquier momento al interactuar con este sistema. Estas TICs como herramientas comenzaron a complementar las sesiones en diferentes conservatorios, que cabe recalcar que solo se llevaban una vez a la semana, y de tal modo el descenso del nivel de conocimiento de los estudiantes de años actuales, a comparación de años anteriores, comenzó a menguar [9].

Siguiendo esta investigación, Illescas logró desarrollar un software que realizaba análisis musical, el cual orientado a la pedagogía lo probó en el Conservatorio Superior de Música de Murcia. Para realizar una buena interpretación de una pieza, se necesita realizar un buen análisis de la partitura, por lo que este software demostró su ayuda tanto como para alumnos y como para maestros [9].

Resultados y discusión

Inicialmente se importan las librerías necesarias para ejecutar nuestro árbol de decisiones.


Figura 2:

Cargamos los valores de entrada.


Figura 3:

Para ello se usó Data Transformation para cambiar los valores “NO” y “YES”

Los valores respectivos son 0 = no, 1 = sí


Figura 4:


Figura 5:

Luego de ello se realizó un análisis de nuestros datos de entrada categóricos el cual mostrará una correlación de Pearson en su mayoría pequeña(o débil) entre los datos ya que la mayoría ésta inferior al 0.3.


Figura 6:


Figura 7:

Para continuar se realiza la creación del Árbol Decisión


Figura 8:


Figura 9:


Figura 10:


Figura 11:

Obtenemos el siguiente árbol:


Figura 12:

Se realiza el mapeo de atributos y las predicciones del árbol de decisión.


Figura 13:


Figura 14:


Figura 15:


Figura 16:

Imprimimos las predicciones


Figura 17:

Conclusiones

Se puede concluir que nuestro modelo de clasificación genera modelos acertados con un 75.52% de exactitud. Esto nos indica que nuestro árbol de decisión es capaz de predecir correctamente la nota musical en el 75.52% de los casos, esto a partir de los datos de entrada que consideramos en este trabajo así como las características que indicamos para la creación del árbol.

También encontramos que nuestro dataset, al tratarse de notas musicales de distintas canciones, y ademas, teniendo en cuenta que los eventos del dataset están numerados consecutivamente, indicándonos el orden en que estos hacen su aparición en la canción, es que podemos entender porque la correlación entre las variables de entrada es tan baja, una mejor opción sería realizar otros análisis de correlación.

Además, en la búsqueda de un mayor grado de exactitud del árbol de decisión, encontramos que la profundidad más adecuada para este era de 15, un mínimo de hojas para dividir el nodo de 20 y un mínimo de eventos para considerar hoja de 5, además, al aumentar el peso de la clase pitch_1 del dataset de 1 a 3.5 con una diferencia de 2.5 respecto a las demás clases, encontramos que el árbol de decisión incrementó su exactitud en un porcentaje mayor al 30%.

Como trabajo futuro. Teniendo ya la base del conocimiento de nuestro proyecto se puede realizar un identificador de acordes para cualquier artista, el cual con un dataset de sus pistas podemos deducir cuales son los acordes más tocados en sus pistas.

Materiales suplementarios

WebLink (html)

Referencias

[1]. Rás, Z. W., & Wieczorkowska, A. A. (Eds.). (2010). Advances in Music Information Retrieval. Studies in Computational Intelligence. doi:10.1007/978-3-642-11674-2

[2]. R. Esposito and D. P. Radicioni, “CarpeDiem: Optimizing the viterbi algorithm and applications to supervised sequential learning,” J. Mach. Learn. Res., vol. 10, pp. 1851–1880, 2009.

[3]. M. Rohrmeier and I. Cross, “Statistical Properties of Tonal Harmony in Bach ’ s Chorales Statistical Properties of Tonal Harmony in Bach ’ s Chorales,” no. January 2008, 2014.

[4]. D. P. Radicioni and R. Esposito, “Learning tonal harmony from Bach chorales,” Procs. 7th Int. Conf. Cogn. Model., no. August, 2006.

[5]. D. P. Radicioni and R. Esposito, “BREVE: An HMPerceptron-based chord recognition system,” Stud. Comput. Intell., vol. 274, no. December, pp. 143–164, 2010, doi: 10.1007/978-3-642-11674-2_7.

[6]. D. P. Radicioni and R. Esposito, "UCI Machine Learning Repository: Bach Choral Harmony Data Set", Archive.ics.uci.edu, 2014. [Online]. Available: https://archive.ics.uci.edu/ml/datasets/Bach+Choral+Harmony#. [Accessed: 20- Jun- 2022].

[7]. J. Bent. "Music analysis in the nineteenth century" 1994.

[8]. Federico Sammartino. "Ceros y unos en la musicología. Software y análisis musical". http://resonancias.uc.cl/images/PDFs_n_37/Sammartino.pdf.

[9]. P. R. Illescas Casanova. "Análisis tonal asistido por ordenador". Dialnet. https://dialnet.unirioja.es/servlet/tesis?codigo=60733 .

[10]. V. Berlanga-Silvente, M. J. Rubio-Hurtado, and R. Vilà-Baños, “Cómo aplicar árboles de decisión en SPSS,” REIRE. Rev. d’Innovació i Recer. en Educ., vol. 6, no. 1, pp. 65–79, 2013, doi: 10.1344/reire2013.6.1615.

[11]. D. Tamm, “Road Map,” Dtsch. Arztebl. Int., vol. 115, no. 35–36, p. A1554, 2018, doi: 10.4324/9781003191056-1.

[12]. “Te damos la bienvenida a Colab.” https://colab.research.google.com/?utm_source=scs-index.

[13]. “Python 3.10.6 documentation,” [Online]. Available: https://docs.python.org/3/.

[14]. “NumPy.” https://numpy.org/.

[15]. “Pandas.” https://pandas.pydata.org/.

[16]. “Seaborn.” https://www.w3schools.com/python/numpy/numpy_random_seaborn.asp.

[17]. M. C. Ruiz Abellón, “Introducción a los árboles de decisión,” pp. 1–7, 2014, [Online]. Available: http://www.dmae.upct.es/~mcruiz/Telem06/Teoria/arbol_decision.pdf.

[18]. P. Samuels, “ןוסריפ םאתמ Pearson Correlation ? םאתמ והמ ,” no. April 2014, pp. 1–5, 2015, [Online]. Available: https://www.researchgate.net/publication/274635640.

Roles de Autoría

Víctor Manuel Vilca Rojas: Conceptualización, Curación de datos, Análisis formal, Investigación, Metodología, Software, Validación, Redacción - borrador original.

Aldair Bryan Salcedo Chávez: Conceptualización, Curación de datos, Análisis formal, Investigación, Metodología, Software, Validación, Redacción - borrador original.

Jairo Miguel Castillo Rojas: Conceptualización, Curación de datos, Análisis formal, Investigación, Metodología, Software, Validación, Redacción - borrador original.

Valery Byrne Macias: Conceptualización, Curación de datos, Análisis formal, Investigación, Metodología, Software, Validación, Redacción - borrador original.

Información adicional

Tipo de artículo:: Artículos originales

Temática:: Inteligencia Artificial

Enlace alternativo

HTML generado a partir de XML-JATS4R por