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:
- 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.
- 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.
- Downloads last month
- -