| | --- |
| | language: es |
| | tags: |
| | - audio |
| | - automatic-music-transcription |
| | - music |
| | - tensorflow |
| | - basic-pitch |
| | - pitch-estimation |
| | license: apache-2.0 |
| | metrics: |
| | - f1 (onset) |
| | datasets: |
| | - jmp684/cornetai_dataset |
| | - jmp684/evaluation_dataset |
| | --- |
| | |
| | # CornetAI: Sistema Inteligente para el Aprendizaje de la Corneta Española |
| |
|
| | Este repositorio contiene los recursos técnicos desarrollados para el Trabajo de Fin de Grado de Juan Francisco Morales Pérez, realizado en la Universidad de Almería. |
| |
|
| | CornetAI es un sistema integral basado en Inteligencia Artificial especializado en la transcripción automática y calificación técnica de la corneta española en su nivel de tercera voz. |
| |
|
| |
|
| | ## Resumen del Sistema |
| |
|
| | CornetAI funciona como una herramienta de estudio que permite al músico recibir una calificación objetiva basada en la comparación de su ejecución frente a una partitura de referencia. El sistema se apoya en los siguientes componentes fundamentales: |
| |
|
| | * Transcriptor Especializado: Modelo basado en el ajuste fino (fine-tuning) de Basic Pitch, modelo agnóstico desarrollado por Spotify, optimizado para la respuesta tímbrica de instrumentos de viento-metal. |
| | * Dataset Híbrido: Conjunto de datos compuesto por muestras sintéticas y grabaciones reales para asegurar la robustez del entrenamiento. |
| | * Módulo de Calificación: Algoritmo en Python que procesa archivos de audio, genera una transcripción y calcula una puntuación basada en métricas de precisión rítmica y melódica. |
| |
|
| | ## Estructura del Repositorio |
| |
|
| | Para el correcto funcionamiento de las herramientas, el repositorio mantiene la siguiente organización de archivos: |
| |
|
| | * CornetAI_SavedModel/: Carpeta que contiene la arquitectura y los pesos del modelo exportados para TensorFlow. |
| | * calificador.py: Script principal encargado de realizar la transcripción y evaluación por línea de comandos. |
| | * src/: Carpeta que incluye los scripts de desarrollo, tales como entrenar.py y generador_maestro_midis.py. |
| | |
| | ## Instalación y Requisitos |
| | |
| | El entorno de ejecución requiere Python 3.8 o superior y la instalación de las siguientes bibliotecas de software: |
| | |
| | * tensorflow: Para la gestión y ejecución del modelo de red neuronal. |
| | * librosa: Para el procesamiento y análisis de señales de audio. |
| | * pretty_midi: Para la manipulación y creación de datos en formato MIDI. |
| | * mir_eval: Para el cálculo de métricas estandarizadas de evaluación musical. |
| | * matplotlib: Para la generación de los informes visuales de resultados. |
| | * basic-pitch: Biblioteca base sobre la que se sustenta el transcriptor. |
| | |
| | ## Modo de Uso: Calificador por Línea de Comandos |
| | |
| | El archivo calificador.py permite realizar evaluaciones directas. El script requiere como argumentos un archivo de audio en formato WAV interpretado por el usuario y un archivo de referencia en formato MIDI. Para realizar una demo se pueden encontrar archivos preparados en el evaluation_dataset. |
| |
|
| | Comando de ejecución: |
| | python calificador.py <ruta_audio_usuario.wav> <ruta_referencia.mid> |
| |
|
| | Salida del sistema: |
| | 1. Terminal: El sistema muestra por consola la nota final calculada y una lista detallada de correcciones sugeridas basadas en la precisión de los onsets. |
| | 2. Informe Visual: Se genera automáticamente una imagen comparativa de los piano-rolls que permite visualizar las diferencias entre la partitura y la ejecución. |
| |
|
| | ## Rendimiento del Modelo |
| |
|
| | Tras el proceso de especialización, CornetAI ha logrado mejorar la precisión de ataque respecto al modelo base: |
| | * Modelo Base: 74,70 por ciento en métrica Fno. |
| | * CornetAI: 85,80 por ciento en métrica Fno. |
| |
|
| | ## Acceso a los Datasets |
| |
|
| | * Dataset de Entrenamiento: Se encuentra disponible para su consulta en la sección Datasets del perfil de Hugging Face asociado a este proyecto. |
| | * Dataset de Evaluación: Se incluye dentro de la carpeta evaluation_dataset de este repositorio para garantizar la reproducibilidad de las pruebas de calificación. |
| | |
| | --- |
| | Institución: Universidad de Almería - Escuela Superior de Ingeniería. |
| | Curso Académico: 2025/2026. |