Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,76 @@
|
|
| 1 |
-
---
|
| 2 |
-
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language: es
|
| 3 |
+
tags:
|
| 4 |
+
- audio
|
| 5 |
+
- automatic-music-transcription
|
| 6 |
+
- music
|
| 7 |
+
- tensorflow
|
| 8 |
+
- basic-pitch
|
| 9 |
+
- pitch-estimation
|
| 10 |
+
license: apache-2.0
|
| 11 |
+
metrics:
|
| 12 |
+
- f1 (onset)
|
| 13 |
+
datasets:
|
| 14 |
+
- jmp684/cornetai_dataset
|
| 15 |
+
- jmp684/evaluation_dataset
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
# CornetAI: Sistema Inteligente para el Aprendizaje de la Corneta Española
|
| 19 |
+
|
| 20 |
+
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.
|
| 21 |
+
|
| 22 |
+
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.
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
## Resumen del Sistema
|
| 26 |
+
|
| 27 |
+
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:
|
| 28 |
+
|
| 29 |
+
* 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.
|
| 30 |
+
* Dataset Híbrido: Conjunto de datos compuesto por muestras sintéticas y grabaciones reales para asegurar la robustez del entrenamiento.
|
| 31 |
+
* 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.
|
| 32 |
+
|
| 33 |
+
## Estructura del Repositorio
|
| 34 |
+
|
| 35 |
+
Para el correcto funcionamiento de las herramientas, el repositorio mantiene la siguiente organización de archivos:
|
| 36 |
+
|
| 37 |
+
* CornetAI_SavedModel/: Carpeta que contiene la arquitectura y los pesos del modelo exportados para TensorFlow.
|
| 38 |
+
* calificador.py: Script principal encargado de realizar la transcripción y evaluación por línea de comandos.
|
| 39 |
+
* src/: Carpeta que incluye los scripts de desarrollo, tales como entrenar.py y generador_maestro_midis.py.
|
| 40 |
+
|
| 41 |
+
## Instalación y Requisitos
|
| 42 |
+
|
| 43 |
+
El entorno de ejecución requiere Python 3.8 o superior y la instalación de las siguientes bibliotecas de software:
|
| 44 |
+
|
| 45 |
+
* tensorflow: Para la gestión y ejecución del modelo de red neuronal.
|
| 46 |
+
* librosa: Para el procesamiento y análisis de señales de audio.
|
| 47 |
+
* pretty_midi: Para la manipulación y creación de datos en formato MIDI.
|
| 48 |
+
* mir_eval: Para el cálculo de métricas estandarizadas de evaluación musical.
|
| 49 |
+
* matplotlib: Para la generación de los informes visuales de resultados.
|
| 50 |
+
* basic-pitch: Biblioteca base sobre la que se sustenta el transcriptor.
|
| 51 |
+
|
| 52 |
+
## Modo de Uso: Calificador por Línea de Comandos
|
| 53 |
+
|
| 54 |
+
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.
|
| 55 |
+
|
| 56 |
+
Comando de ejecución:
|
| 57 |
+
python calificador.py <ruta_audio_usuario.wav> <ruta_referencia.mid>
|
| 58 |
+
|
| 59 |
+
Salida del sistema:
|
| 60 |
+
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.
|
| 61 |
+
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.
|
| 62 |
+
|
| 63 |
+
## Rendimiento del Modelo
|
| 64 |
+
|
| 65 |
+
Tras el proceso de especialización, CornetAI ha logrado mejorar la precisión de ataque respecto al modelo base:
|
| 66 |
+
* Modelo Base: 74,70 por ciento en métrica Fno.
|
| 67 |
+
* CornetAI: 85,80 por ciento en métrica Fno.
|
| 68 |
+
|
| 69 |
+
## Acceso a los Datasets
|
| 70 |
+
|
| 71 |
+
* Dataset de Entrenamiento: Se encuentra disponible para su consulta en la sección Datasets del perfil de Hugging Face asociado a este proyecto.
|
| 72 |
+
* 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.
|
| 73 |
+
|
| 74 |
+
---
|
| 75 |
+
Institución: Universidad de Almería - Escuela Superior de Ingeniería.
|
| 76 |
+
Curso Académico: 2025/2026.
|