RealSinger
Aspecto técnico
|
 |
Nota:
Esta página sólo es un vistazo rápido de los métodos utilizados por RealSinger para generar la voz.
No es preciso leerla para ser capaz de utilizar RealSinger.
Este
capítulo sirve para responder a las preguntas técnicas que se pueden
hacer algunos usuarios sobre los algoritmos internos así que no es
necesario para utilizar el producto. |
|
Introducción |  | Para producir una sítesis vocal
cantada realista, la primera idea del programador es utilizar una
colección de fonemas grabados para generar la voz.
Tres problemas se notan rápidamente.
-
El algoritmo debe ser capaz de
generar el fonema en cualquier frecuencia. Grabar todos los fonemas
posibles en todas las frecuencias posibles no se puede imaginar porque
llegará a un proceso de grabación largo y complejo, así como archivos
de definición de voz muy voluminosos.
-
El algoritmo debe ser capaz de alargar el fonema tanto como se lo pide.
-
El algoritmo debe ser capaz de
generar una transición dulce entre un fonema y otro, para simular rel
fenómeno de coarticulación (se empieza a oír el fonema siguiente
mientras que el fonema en curso no está completamente acabado).
En los libros de informática, se puede encontrar una solución para cada uno de estos problemas.
Para los problemas 1 y 2, ya
existen algunos algoritmos eficaces. Tratan directamente la señal
digital de la muestra grabada y permiten cambiar la frecuencia y la
duración. Estros algoritmos se utilizan en la mayorí de los editores de
sonido, para cambiar la frecuencia o la duración de un archivo sonoro
de manera independiente. También se utilizan con éxito en sítesis vocal
hablado porque las variaciones de frecuencia son bastante limitadas.
Sin
embargo, en voz cantada, no se pueden utilizar estos algoritmos porque
no son eficaces si el cambio de frecuencia es demasiado grande. El
resultado no es realmente "falso" pero se desforma la voz, exactamente
como una cinta reproducida demasiado deprisa (voz de pato).
Para el problema 3, existe
una solución que consiste en no sólo grabar los fonemas de un idioma,
sino también todas las combinaciones posibles de dos o tres fonemas
(difonemas, trifonemas). Este sistema almacena las coarticulaciones y
hace la voz sintetizada más realista. Sin embargo, aquí también, el
proceso de grabación es bastante largo y complejo y requiere varias
horas horas de grabación por el cantante. El archivo que define suele
la voz muy gordo (varios megaoctetos).
<>RealSinger utiliza algoritmos originales para resolver estos tres problemas a la vez, manipulando los espectros de frecuencia.
Algunos sintetizadores vocales ya han intentado utilizar los espectros de frecuencia para generar la voz.
Sin embargo, este método fue
difícil en crear porque generar una señal a partir de un espectro
utilizando una tranformada inserva rápida de Fourier (IFFT) exige que
se reajusten correctamente los valores de "fase", sino las partes
consecutivas de señal no se juntan bien y se puede oír un ruido de
fondo.
Espectro vocal |  |
Cuando hablamos o cantamos, la forma de onda de la fuente glotal
(sonido producido por las cuertas vocales cuando las exita el flujo de
aire que viene de los pulmones) es una combinación de
armónicas (frecuencias múltiples de la frecuencia de la
fundamental f0).
En un gráfico potencia/frecuencia, la señal producida por
la fuente glotal se parece a un peine, con cada diente del peine que
está en un múltiple de la fundamental f0:
>
Cuando la frecuencia de la voz aumenta, f0 mueve hacia la derecha
(altas frecuencias) y la diferencia de frecuencia entre dos
armónicas consecutivas aumenta también, para que quede
igual a f0.
Pasando
por el conducto vocal, las resonancias de las cavidades ponen de
relieve algunas frecuencias y amortiguan otras. El resultado es algunas
armónicas son más potentes que otras. Este espectro de
respuesta del conducto vocal depende del fonema pronunciado o cantado y
queda más o menos sin cambiar cuando la frecuencia aumenta o
disminuye.
La
convolución de ambos espectros (fuente y conducto vocal) da el
espectro resultado, donde la persona que escucha puede determinar a la
vez el fonema (lo que se dice) y la frecuencia (nota cantada)
Las bases de RealSinger |  | El objetivo but de RealSinger es,
para cada fonema de un idioma dado, aplicar una desconvolución a la
señal grabada para separar los espectros de la fuente glotal y del
conducto. Luego, únicamente el espectro del conductose almacena. Una
fuente glotal artificial se aplicará a este espectro para estimular el
fonema original grabado cantado en cualquiera frecuencia.
Proceso de grabación |  |
-
Se pide al usuario que pronuncie una palabra para cada fonema del idioma elegido
-
Se graba cada palabra como datos sonoros tradicionales
-
Luego, se aisla el fonema en la palabra y la señal se recuadra para sólo conservar esta parte.
-
Se calcula un espectro de este sonido.
-
Se desconvolúa este espectro para
eliminar la influencia de la fuente glotal y sólo guarda la curva de
frecuencia de las resonancias del conducto vocal.
-
Este seudo-espectro se almacena (menos de 100 valores para cada fonema).
-
Para los fonemas que varian en el
tiempo, como las plosivas, varios seudo-espectros se almacenan para
conservar las informaciones sobre los cambio en el espectro.
Estos algoritmos sólo almacenan un
pequeño número de datos para cada espectro, lo cual permite obtener
archivos de definición de voz muy cortos (menos de 40 Ko por voz una
vez compactados)
Generación de la voz |  |
-
Para cada fonema que cantar, se
extrae el seudo-espectro correspondiente. En las partes de transición
entre dos fonemas, ambos seudo-espectros se desforman y se mezclan
juntos para simular el proceso de coarticulación.
-
Se genera una señal de fuente
glotal sintética a la frecuencia deseada. El espectro glotal de la
fuente se puede cambiar fácilmente para modificar el timbre global de
la voz (para igualar o aplicar varios efectos del tipo vocoder).
-
Esta fuente se convolú de nuevo con el seudo-espectro del fonema.
-
Luego, este espectro es tratado por una transformación sin fase, para generar un bloque de datos sonoros estándar.
Este algoritmo simula los efectos
de coarticulación así que no es preciso grabar el juego completo de
difonemas y trifonemas: un sólo juego de monofonemas es necesario.
|