RealSinger
Aspectos técnicos
|
 |
Nota :
Esta página contém uma curta descrição
dos métodos usados pelo RealSinger na produção da
voz.
Não é necessário ler este
capítulo para poder usar o RealSinger.
É capítulo, serve de facto para
responder a algumas questões técnicas que os utilizadores
possam colocar acerca dos algorítmos internos, e que não
são necessários para usar este programa. |
|
Introdução |  |
Para criar uma síntese realística da voz, a primeira ideia
que vem à mente do programador é a de usar uma colecção
de fonemas gravados e usá-los para gerar a voz.
Três problemas surgem rápidamente
:
-
O algorítmo deve ser capaz de gerar o fonema com qualquer frequência
(frequência fundamental). Gravando todos os fonemas a todas as possíveis
frequências não é apropriado, porque poderá
ser um processo longo e complexo de aprendizagem, assim como teria ficheiros
de voz muito grandes.
-
O algorítmo deverá ser capaz de prolongar o fonema para qualquer
duração.
-
O algorítmo deverá ser capaz de gerar transições
suaves de um fonema para outro, de forma a simular o fenómeno da
coarticulação (a audição do fonema seguinte
inicia-se enquanto o anterior aínda não está completamente
terminado).
Na literatura informática, pode ser encontrada uma solução
para cada um destes problemas.
Para os problemas 1 e 2, já foram desenvolvidos alguns algorítmos
eficientes. Eles processam directamente o sinal digital da amostra gravada
e permitem alterar a frequência (altura) assim como a duração.
Estes algorítmos são usados na maioria dos editores de som
conhecidos para a alteração independente da altura ou da
velocidade de um ficheiro de som. Eles também são usados
com sucesso na síntese da fala, porque as variações
de frequência (altura) da fala são pequenas.
No entanto, no caso da voz cantada, estes
algorítmos não podem ser usados porque eles não são
eficientes porque a variação em altura é muito importante.
O resultado em si não está errado, mas a voz é distorcida
à semelhança da reprodução de uma fita magnética
a alta velocidade.
Para o problema 3, a maneira mais comum de obter um bom resultado é,
não só gravar os fonemas de uma liguagem, mas também
todas as combinações possíveis de dois ou três
fonemas (difonemas/trifonemas). Este sistema armazena o efeito da coarticulação
e torna a voz síntetizada mais realística. No entanto, também
aqui, o processo de aprendizagem é trabalhose e moroso, e necessita
por vezes de várias horas de gravação. O ficheiro
de voz resultante é muito grande (vários megabytes).
O RealSinger usa algorítmos originais para solucionar estes três
problemas ao mesmo tempo, através da manipulação espectral
da frequência.
Alguns sintetizadores de fala já tentaram usar os espectros
de frequência da voz para gerar a voz.
No entanto, verificou-se que este método era dificil de implementar,
porque regenerar um sinal a partir de um espectro processado que use uma
"Fast Fourier Transform (IFFT)" inversa, necessita que os valores da "fase"
sejam reajustados adequadamente, por outro lado, as partes consecutivas
de um sinal não se juntam e um ruído de fundo não
desejado será ouvido.
Espectro da voz |  |
Quando se canta ou se fala, a forma de onda da fonte glotal (o som produzido
pelas cordas vocais quando excitadas pelo fluxo de ar proveniente dos pulmões)
é uma combinação de harmónicas (múltiplas
frequências da frequência fundamental f0).
Num gráfico de potência/frequência,
esta fonte de som glotal parece-se com um pente, cada dente do pente está
localizado numa frequência que é um múltiplo da fundamental
f0:
Quando a frequência da voz aumenta, a primeira harmónica
desloca-se para a direita (frequência mais alta), e a diferença
de frequência entre duas harmónicas consecutivas também
aumenta, para ficar igual a f0.
Ao passar através do canal vocal, as cavidades ressonantes destacam
algumas frequências e atenuam outras. Isto resulta em áreas
com frequências de alta-potência nas quais as harmónicas
são fortes, e área de frequência de baixa-potência,
nas quais as harmónicas são fracas. Este espectro do canal
vocal depende do fonema a ser dito ou cantado, e é mais ou menos
inalterado quando a frequência (altura) aumenta ou diminui.
A convulsão destes dois espectros (fonte glótica e canal
vocal) resulta num espectro, no qual o ouvinte pode determinar tanto o
fonema (o que foi dito) com a frequência (nota cantada).
Fundamento do RealSinger |  |
O objectivo do RealSinger é, para cada fonema de uma dada linguagem,
aplicar uma deconvulsão ao sínal gravado de forma a separar
os espectros da fonte glótica e do canal vocal. Então ele
só armazena o espectro do canal vocal, e aplicará uma fonte
glotal gerada a este espectro de forma a simular o fonema original gravado
a ser cantado em qualquer frequência.
Processo de aprendizagem |  |
-
Ao orador é pedido que pronúncie uma palavra para cada fonema
da linguagem escolhida.
-
Cada palavra é gravada como qualquer som normal.
-
Então, o fonema é isolado na palavra e o sinal é cortado
para manter apenas esta parte.
-
É cálculado um espectro com a média da frequência
do som.
-
Este espectro é deconvolucionado para eliminar a influência
da fonte glótica, e só mantém a curva da frequência
do ressonador do canal vocal.
-
Este pseudo-espectro é armazenado (menos de 100 valores de vírgula-flutuante
para cada fonema)
-
Para os fonema de variação-temporal, vários pseudo-espectros
são armazenados para manter a informação acerca das
alterações do espectro.
Este algorítmo permite-lhe armazenar somente alguns valores para
cada fonema, o que significa ficheiro de voz pequenos (menos de 40 Kb depois
de comprimidos).
Criação da voz |  |
-
Para cada fonema a ser cantado, o pseudo-espectro correspondente é
extraído. Nas partes de transição entre dois fonemas,
ambos os pseudo-espectros destorcidos e de seguida são unidos para
simular o processo de coarticulação.
-
Uma fonte glotal sintética é gerada, na frequência
pretendida. O espectro da fonte glotal pode ser aqui modificado fácilmente
para alterar o timbre da voz na totalidade (para a equalização
ou aplicação de vários efeitos vocoder).
-
Esta fonte é re-convolutoda com o pseudo-espectro do fonema
-
O espectro é então processado por uma transformada de fase-livre
para gerar um fragmento normal de som.
Este algorítmo simula os efeitos da coarticulação.
Portanto não é necessário gravar todo o conjunto de
difonemas ou trifonemas. Só são necessários fonemas
puros.
|