Reconocimiento de notas musicales en un pentagrama digital - Arrigueño Moncisvaiz, Oscar Roberto (Universidad Autónoma de Ciudad Juárez, 2017)
Las ciencias de la computación incluyen el estudio de las bases teóricas de la información y la computación, así como su aplicación en sistemas computacionales. Existen diversos campos o disciplinas dentro de estas Ciencias, algunas enfatizan los resultados específicos del cómputo, mientras que otras se relacionan con las propiedades de los algoritmos usados y otras por su parte se enfocan en los problemas que requieren la implementación de cómputo. Una rama de las ciencias de la Computación es la inteligencia artificial la cual se dedica al desarrollo de agentes racionales no vivos. Entiéndase agente como cualquier parte del sistema capaz de percibir eventos en su entorno (entradas), procesar y mostrar dicha información (salidas); este proceso es conocido como racionalidad siendo esta una capacidad humana que permite evaluar y actuar conforme a ciertos principios para satisfacer algún objetivo o finalidad, y definiendo inteligencia como la propiedad en la que se relacionan habilidades tales como las del pensamiento abstracto, el entendimiento, la comunicación, el raciocinio, el aprendizaje, la planificación y la solución de problemas, la inteligencia artificial es la disciplina que se encarga de construir procesos que al ser ejecutados sobre una arquitectura física producen acciones o resultados que buscan maximizar el rendimiento, basándose en secuencias de entradas y el conocimiento almacenado en dicha arquitectura. Existen diversos tipos de conocimiento y medios para representarlo, el cual puede ser cargado en el agente por su diseñador o puede ser aprendido por el agente utilizando técnicas de aprendizaje. También se distinguen varios tipos de procesos válidos para obtener resultados racionales esto determina el tipo del agente. A continuación se lista de más simple a más complejo, los principales tipos. 1. Respuesta predeterminada por entrada (actos reflejos en seres vivos). 2. Búsqueda de estado en el conjunto de estados producidos por acciones posibles. 3. Algoritmos genéticos (proceso evolutivo de las cadenas de ADN). 4. Redes neuronales artificiales (similar al funcionamiento físico del cerebro). 5. Razonamiento mediante una lógica formal (pensamiento abstracto humano). Varios ejemplos se dan en áreas de control de sistemas, planificación automática, diagnósticos y consultas, reconocimiento de escritura, habla y patrones. Los sistemas de IA actualmente son parte de rutina en campos como economía, medicina, ingeniería y ejército, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez y videojuegos. Las redes neuronales son una rama de la Inteligencia Artificial, donde el conocimiento se incorpora mediante el aprendizaje a partir de ejemplos. Las redes neuronales son eficientes en tareas como el reconocimiento de patrones, problemas de optimización o clasificación, estas se pueden integrar en un sistema de ayuda para la toma de decisiones, pero no son capaces de resolver todos los problemas, son modelos muy especializados que pueden aplicarse en campos muy concretos. El campo del procesamiento de imágenes es un área que tiene gran importancia actualmente y cuenta con diversas aplicaciones de tipo morfológicas, redes neuronales artificiales, procesamiento de imágenes a color o en escalas de grises, compresión de datos, reconocimiento y análisis de imágenes. El reconocimiento es un atributo básico de algunos seres vivos entre ellos el humano, esto se da normalmente por medio de patrones. En general, un patrón es una estructura de datos con rasgos distintivos. Para la clasificación se puede emplear un conjunto de aprendizaje, el cual ya cuenta con una clasificación conocida y se usa para entrenar el sistema, esto se conoce como aprendizaje supervisado. El mayor número de aplicaciones se utilizan para la clasificación de documentos, reconocimiento de voz, escritura y caras humanas, estos ejemplos son representativos del procesamiento mediante entradas de imágenes digitales y dando como salida la clasificación, siendo esto lo más parecido al proceso de identificación de la escritura musical en un pentagrama. Partiendo de que la música es el arte de arreglar sonidos y estos pueden ser representados de manera escrita por medio de caracteres o símbolos musicales, pueden ser vistos como patrones que representan nota, duración, intención, melodía, armonía y arreglos entre otras, mismos patrones que el músico tiene que aprender y reconocer mediante procesos cognitivos de asimilación, interiorización y refuerzo entre otros, procesos que se desarrollan en el cerebro humano mediante las múltiples conexiones existentes entre las neuronas y su funcionamiento eléctrico (recepción-asimilación-transferencia). ¿Es posible el reconocimiento de símbolos musicales contenidos en una imagen digital? Muchas veces tenemos o necesitamos leer o practicar alguna pieza musical escrita en pdf o algún formato digital, ya que en la actualidad es común encontrar partituras en ese formato, pero acaso es posible poder tener acceso a dicha pieza, ya sea para modificarla, reescribirla, pasarla a algún otro formato o reutilizarla. Basado en esto se construirá un sistema automático que dada una pieza musical escrita en un pentagrama, sea capaz de entenderla e interpretarla automáticamente, esto ya se da en el área académica en algunas universidades y también en el área comercial con diversos productos como Vivaldi aplicación capaz de corregir, transportar y verificar distintos ritmos (VivaldiStudio, 2002). Otro ejemplo de esto es SmartCore de musitek programa que ayuda en el escaneo de partituras de una canción y las muestra en forma gráfica (Corporation, 2010). Así mismos existen otros como el Photoscore y los más conocidos en el ámbito musical como lo son sibelius y finale. Se propone que este sistema sea capaz del reconocimiento de partituras musicales no manuscritas por medio del procesamiento de imagen digital y una red neuronal artificial feed-forward backpropagation entrenada de manera supervisada. El tema de investigación versa en los algoritmos de procesamiento de partituras musicales sobre todo el proceso de segmentación y morfología para 12 notas musicales (Do4-Sol5), cada una con sus duraciones (Blanca, Negra, Corchea, Semicorchea) junto al separador de compases (barra); así como robustecer la red para reducir errores mediante el entrenamiento con ruido de las entradas. Este documento está dividido de la siguiente forma, en el capítulo 2 se encuentra el marco teórico donde se amplía la información sobre música, procesamiento de imagen, redes neuronales y los módulos de matlab que se utilizaran ara desarrollar la aplicación. En el capítulo 3 se presentan las técnicas e información propuesta para la resolución del problema descrito. En el capítulo 4 está el desarrollo que se hizo en este proyecto, incluyendo las especificaciones del problema que este documento aborda, así como las técnicas empleadas para su solución. Y por último el capítulo 5 los resultados y conclusiones.