sintetizador de partituras musicales para coro (presentaciones)
DESCRIPTION
Presentaciones asociadas al desarrollo de un sistema de síntesis en voz sonora de partituras corales para el "II Desafío Tecnológico" que organiza el DTSTC de la Universidad de Granada.TRANSCRIPT
2º Desafío TecnológicoDepartamento de Teoría de la Señal Telemática y Com unicaciones
"Sintetizador de partituras musicales para coro"I4
Grupo I4Iván Fernández Bermejo Iván López Espejo Santiago Prieto Calero
1.Introducción
� Objetivo: diseñar e implementar un buen sistema para la sintetización de partituras musicales para coro de la forma más realista posible
I4
de la forma más realista posible� Problema: gran espectro de soluciones, diferentes técnicas, etc
� Solución: experimentación con varias técnicas: adquisición de datos, síntesis de voz, etc
2. Técnicas de Desarrollo
� 2.1 Extracción de la Información Musical:� Fichero de entrada:
� Partitura en formato imagen � Fichero en formato MIDI
� 2.2 Sintetización sin Letra:
I4
� 2.2 Sintetización sin Letra:� Usando wavetables
� 2.3 Sintetización con Letra:� Síntesis LPC � HMMs (modelos ocultos de Márkov)
� 2.4 Modelado de Dinámica:� Modelo ADSR
2.1 Extracción de la Información Musical
� 2.1.1 Archivo en formato MIDI� Herramienta: MidiToolbox para Matlab� Extracción de características: notas, duración, número de canales, comienzo
I4
duración, número de canales, comienzo de las notas, velocidad…
2.1 Extracción de la Información Musical
� 2.1.2 Archivo en formato imagen� Objetivo: Extracción de características de una partitura: notas y letra
� Diseño e implementación de un sistema
I4
� Diseño e implementación de un sistema OMR (Optical Music Recognition) para la lectura de partituras.
2.2 Sintetización de Voz sin Letra
� Objetivo: generar las diferentes líneas melódicas del coro mediante wavetables
� Elaboración de una base de datos:� Matriz de dos dimensiones, correspondiéndose
I4
� Matriz de dos dimensiones, correspondiéndose una de ellas al timbre y la otra al pitch
� Posibilidad de registrar voces de diferentes cantantes (según el sexo, la tesitura, etc)
� Síntesis de voz: concatenación de unidades básicas de voz real recogidas en la base de datos
2. Técnicas de Desarrollo
� 2.1 Extracción de la Información Musical:� Fichero de entrada:
� Partitura en formato imagen � Fichero en formato MIDI)
� 2.2 Sintetización sin Letra:� 2.2 Sintetización sin Letra:� Usando wavetables
� 2.3 Sintetización con Letra:� Síntesis LPC � HMMs (modelos ocultos de Márkov)
� 2.4 Modelado de Dinámica:� Modelo ADSR
2.3 Sintetización de Voz con Letra
� 2.3.1 Síntesis LPC� La señal excitación variable a partir de la información de altura tonal extraída (pitch)
� Variación de los coeficientes del filtro todo-polos LPC para modelar el tracto vocal en
I4
polos LPC para modelar el tracto vocal en función de la letra y del tiempo
2.3 Sintetización de Voz con Letra
� 2.3.2 HMM (Modelos Ocultos de Márkov)� Buena técnica para reconocimiento de voz
I4
voz� Últimamente usada para la síntesis de voz a partir de texto
� Creación de un bloque de modulación de pitch para incluir la información relativa a la altura tonal
2.4 Modelado de Dinámica
� Variación en la intensidad sonora de cada voz (ponderación de la forma de onda en el dominio del tiempo)
� Esquema ADSR
I4
� Esquema ADSR (Attack/Decay/Sustain/Release)
3. Conclusiones Finales
� Sintetización aditiva de cada una de las líneas melódicas que componen el coro
� Modelar las cuatro cualidades del sonido de la forma más fidedigna posible (timbre, altura, intensidad y duración)
I4
(timbre, altura, intensidad y duración)� Emplear psicoacústica para evitar el solapamiento de voces
� Resultado: fichero de audio con la pieza coral sintetizada de la forma más realista posible
Gracias
Grupo I4
I4
Grupo I4
2º Desafío TecnológicoDepartamento de Teoría de la Señal Telemática y Com unicaciones
"Sintetizador de partituras musicales para coro"I4
Grupo I4
Iván Fernández Bermejo Iván López Espejo Santiago Prieto Calero
Sumario
� Introducción
� Procesamiento MIDI y de audio
� OMR y síntesis de partituras
I4
� Interfaz de usuario
� Conclusiones y trabajo futuro
� Referencias
Introducción
� Extracción de la información musical:� Fichero de entrada:
� Partitura en formato imagen � Fichero en formato MIDI
Síntesis sin letra:
I4
� Síntesis sin letra:� Usando wavetables
� Modelado de dinámica:� Modelo ADSR
Procesamiento MIDI y de audio
� Uso de las voces corales de Colossus
� 32GB de sonidos reales
Compatible con GM
I4
� Compatible con GM
� UnNKS � NKS a WAV
Procesamiento MIDI y de audioI4
� El problemas se divide� En canales
� En notas� En notas
� Se atacan por separados
� Uniéndose los resultados en una solución única
Procesamiento MIDI y de audioI4
� Filtrado ADSR lineal para cada nota
� Mejoras� Incorporación de un modelo más � Incorporación de un modelo más realista
Procesamiento MIDI y de audio
� Filtrado de acústica� Suavizado de interfases
� Correlación de las líneas melódicas
� Emulación de la acústica del recinto
I4
� Emulación de la acústica del recinto
� Obtención de respuestas con Adobe Audition
Procesamiento MIDI y de audio
� Implementación en el dominio de la frecuencia� Zero-padding de h(n)
I4
OMR y síntesis de partituras
� En la actualidad sólo partituras muy sencillas
I4
OMR y síntesis de partituras
� Preprocesamiento de la imagen� Conversión a niveles de gris
� Inversión
� Binarización
I4
� Binarización
� Corrección de la inclinación� Transformada de Hough
OMR y síntesis de partituras
� Segmentación de pentagramas� Mediante la proyección horizontal de histograma
� Segmentación de símbolos
I4
� Segmentación de símbolos� Mediante la proyección vertical de histograma
OMR y síntesis de partituras0
50
100
150
200
250
I4
300
350
400
450
5000 2 4 6 8 10 12 14 16 18
x 104
0 100 200 300 400 500 600 700 800 9000
0.5
1
1.5
2
2.5
3x 10
4
OMR y síntesis de partituras
� Fase de clasificación de símbolo� Sustracción de la componente DC
� Normalización de la proyección de histograma segmentada
I4
histograma segmentada
� 24 coeficientes del módulo de la FFT
� Comparación con los patrones de la base de datos � Seleccionar el de mínima distancia euclídea
OMR y síntesis de partituras
� Inclusión de diferentes versiones de un símbolo en la DB
I4
OMR y síntesis de partituras
� Detección del tono� Mediante proyección horizontal de histograma
I4
0
10
20
30
40
50
60
70
80
90
1000 500 1000 1500 2000 2500 3000 3500 4000
OMR y síntesis de partituras
� OMR � Fichero de texto� Pitch, duración (negra, blanca, redonda)
� Extracción vector (notas, duración)
� Pitch (frecuencia fundamental)� Pitch (frecuencia fundamental)
� Duración (negra=1, blanca=2, redonda=4)
� Síntesis � Wavetables� Pitch � Notación MIDI
� Duración � Nº de muestras según bpm
� Modelo dinámico (ADSR) por nota
Interfaz de usuario
� Se crea para el fácil manejo de las funciones habilitadas
� Permite leer archivos .mid y .jpg para realizar la síntesis Funciones:
� Visualizar la partitura en un panel de imagen
� Cambiar la acústica de la señal sintetizada
Modificar la velocidad de reproducción� Modificar la velocidad de reproducción
� Reproductor de música
Conclusiones y trabajo futuro
� Modelo más realista de dinámica (ADSR)
� OMR de partituras más complejas (incluyendo la letra)
� Síntesis de piezas con letra� Síntesis de piezas con letra
Referencias
� MIDI Toolbox, Departamento de Música, Universidad de Jyväskylä, Finlandia, https://www.jyu.fi/hum/laitokset/musiikki/en/research/coe/materials/midi-toolbox/
� X. Fernández Hermida y C. Sánchez-Barbudo y Vargas, “Development of an Optical Music Recognizer”
I4
“Development of an Optical Music Recognizer”
� A. Sánchez, J. J. Pantrigo y J. I. Pérez, “Extracción de Líneas Melódicas a partir de Imágenes de Partituras Musicales”
Sintetizador de partituras musicales para coro
GRACIAS
I4
GRACIAS
2º Desafío TecnológicoDepartamento de Teoría de la Señal Telemática y Com unicaciones
"Sintetizador de partituras musicales para coro"I4
Grupo I4
Iván Fernández Bermejo Iván López Espejo Santiago Prieto Calero
Sumario
� Introducción
� Procesamiento MIDI
I4
� OMR
� Android
Introducción
� Mejoras:� Procesamiento de MIDI con track
� Mejora OMR
I4
� Mejora OMR
� Aplicación Android (Modo didáctico)
� Carencias:� Síntesis sin letra (Solfeando)
� Base de datos sin derechos
Procesamiento de MIDI con trackI4
� Se comprueba si el midi es mono canal, y en ese caso si usa track.
� Se realiza la misma síntesis que ya teníamos pero con la columna track teníamos pero con la columna track y no con los canales.
� En equipos pequeños hay problemas al existir una carencia de memoria.
OMR (Optical Music Recognition)
� Reconocimiento Automático de Partituras Musicales� Problema complejo
� Ventajas:
I4
� Ventajas:
�Almacenamiento perpetuo en el tiempo de la información musical en formato digital
�Tratamiento de los datos digitales
(modificación, transmisión...)
�Gestión más eficaz de las obras (mediante bases de datos)
Desarrollo del OMR
� Análisis de partituras corales en formato JPG
� Se utiliza la herramienta Image Toolboxde Matlab para:
Diseño e implementación de un bloque que
I4
1. Diseño e implementación de un bloque que separe los pentagramas de la partitura y los símbolos de cada pentagrama.
2. Creación de un clasificador que reconozca los símbolos proporcionados
3. Utilización de las reglas de teoría musical para comprobación de errores y búsqueda de símbolos compuestos
Pre-procesado de la imagen� Binarizar la imagen mediante el método de Otsu
� Inversión de la imagen binaria
I4
Segmentación de pentagramas� Se aplica a la imagen el histograma horizontal� Se descartan los valores del histograma horizontal por debajo de un umbral (máximo valor del histograma horizontal/2)
� Se busca el patrón característico que conforman los pentagramas
I4
Segmentación de símbolos� Se aplica el histograma vertical a cada pentagrama segmentado
� Se haya la mediana del histograma vertical
� Se eliminan los valores por debajo de este valor
I4
Reconocimiento de símbolos
� Segmentación de los símbolos mediante el histogramavertical del pentagrama modificado
� Erosión mediante elemento horizontal de 20 píxeles
� Substracción de la imagen erosionada a la original paraeliminar las líneas del pentagrama
I4
eliminar las líneas del pentagrama
Reconocimiento de símbolos
� Comparación de patrones entre los símbolos segmentados y las imágenes de la base de datos
� correlación cruzada normalizada:
� Valor comprendido entre [-1,1]
I4
� Valor comprendido entre [-1,1]
Algoritmo de reconocimiento de símbolos
� Primero se busca la clave (Sol, Fa)� Seguidamente se busca el compás� Después se reconoce cada uno de los símbolos segmentados
I4
Reconocimientos de símbolos unidos� Se detectan mediante la anchura de píxeles� Se erosionan mediante elemento horizontal de 5 píxeles
� Se sustrae el elemento cuya longitud horizontal es mayor (barra horizontal o ligadura)
� Se comparan las figuras para obtener su duración y tonalidad
I4
� Se comparan las figuras para obtener su duración y tonalidad
Detección de la tonalidad� Extraer la posición de las líneas del pentagrama� Extracción del punto medio de la posición de cada nota (utilizando información del histograma horizontal)
� Obtener la frecuencia de la nota mediante la distancia mínima a las líneas del pentagramaRegistro de cada figura y frecuencia en un fichero
I4
� Registro de cada figura y frecuencia en un fichero de texto
Síntesis de la partitura� Utilización de las reglas de la teoría musical:
� Si el pentagrama está en clave de Fa se transportan todas las notas del mismo
� Si se detecta un punto después de una figura se alarga la duración (1.5x duración)
I4
se alarga la duración (1.5x duración)
� Si se detectan dos puntos verticales y una barra doble se repiten todos los compases anteriores
� Extracción de un vector de notas y duración de cada pentagrama
� Multiplexación de pentagramas aprovechando las características de las partituras corales
AndroidI4
AndroidI4
AndroidI4
Android
� Partitura electrónica, nos permite música simple.
� Orientada a enseñanza.
I4
AndroidI4
Android
.txt
I4
.wav
ResumenI4
Sintetizador de partituras musicales para coro
I4
Referencias
[1] D. Carretero de la Rocha, Sistema de Reconocimiento de Partituras Musicales. Proyecto fin de carrera, 2009.
GRACIAS
[2] http://developer.android.com/index.html