Virtual Singer
Edição de Fonemas
|
 |
Muito importante : Este capítulo requer noções
avançadas sobre o processamento digital de sinais.
Alguns conhecimentos de acústica e processamento digital de
sinais serão então necessários.
|
|
Já vimos anteriormente que os fonemas
são considerados como sendo o elemento acústico básico
para a voz falada ou cantada (Consulte o capítulo "Aspectos
técnicos da voz")
O Virtual Singer usa algoritmos complexos
de forma a sintetizar estes fonemas.
Este tipo de síntese, chamada de síntese formante,
usa algorítmos internos originais, inspirados nas publicações
de D. Klatt (veja a bibliografia),
assim como de outras fontes de informação.
O algorítmo foi desenhado e afinado graças às
nossas próprias pesquisas acerca da voz cantada.
Quando edita o timbre da voz, um botão "Avançadas" abre
uma caixa de diálogo para a definição dos fonemas.
As alterações feitas nesta janela só modificam a voz
actual do intérprete. Outras vozes ficarão inalteradas.
Um pouco de técnica |  |
 |
Questão : Como
é que o Virtual Singer gera um fonema ? |
|
Um sinal digital de excitação (históricamente
chamado "fonte glótica") é gerado, dependendo da potência
e da frequência fundamental do fonema a ser cantado. Este sinal é
constituído por um meio-período parabólico, seguido
de um meio-período silencioso (paragem glótica). A Harmónica
número 1 (frequência fundamental), número 2 (o dobro
da frequência fundamental) e 3 (o tripo da frequência fundamental)
são então amplificados, de forma a serem o mais apróximados
possível da formação de uma fonte vocal cantada. Esta
fonte é então mais ou menos amplificada, de acordo com o
valor da vocalização.
Então o processo é dividido em duas partes :
O tratamento em cascata : um ruído, chamado de ruído
de aspiração, é adicionado à fonte de
excitação. Este sinal é então processado por
um conjunto de filtros em série (cascata), cada filtro correspondento
a um formante.
O processamento Paralelo : um ruído,
chamado de ruído de fricção, é adicionado
à fonte de excitação. A derivada de primeira ordem
deste sinal é então processada por um conjunto de filtros
paralelos (cascata), cada filtro correspondendo a um formante.
A amplitude de cada formante é processada, de forma a aumentar ou
diminuír a respectiva influência de cada formante no sinal
de saída.
O resultado dos dois processamento feitos em cima é então
adicionado, e modulado se necessário por um oscilador de baixa-frequência
(20 Hz) para simular o efeito de rotação (como no
Espanhol "R"s).
Após aplicar o ganho de saída e o ajuste de agudos/graves,
o sínal de saída está finalmente completo.
Em termos concretos, este algorítmo tem implicações
mais vastas na forma como o fonema é processado :
-
A Amplitude para cada formante só é processada
pela parte paralela do algorítmo de processamento. Portanto,
mesmo que a amplitude de um formante seja ajustada para zero, este formante
continuará a ter um efeito no sinal resultante, por causa da sua
acção no processamento em cascata.
-
Ruído de aspiração passa através de
um conjunto de filtros em cascata. Ele é altamente distorcido
pelos formantes do fonema, e a sua saída tem o ruído mais
filtrado (grave), o qual pode ser usado para simular os efeitos de respiração,
gerados mais atrás do canal vocal.
-
A derivada de primeira ordem do ruído de fricção
passa através de um conjunto de filtros paralelos. Ele dá
um ruído de frequência mais elevada, o qual pode ser usado
para simular os assobios criados pela parte frontal da boca.
Fragmentos |  |
O elemento fonético base é o
fonema. Mas já vimos que alguns fonemas complexos, como os
ditongos, podem ser constituídos por vários estados
sucessivos.
Por causa disto, temos que definir a noção de fragmento,
que representa um estado "estático" num fonema.
Portanto, um fonema pode ser constituído por um ou vários
fragmentos.
Na lista da esquerda, está a lista completa de todos os fragmentos
necessários para pronunciar qualquer fonema em qualquer
linguagem.
Os fragmentos exibidos em Negrito são os que são
usados por qualquer linguagem.
 |
Nota Importante :
Nesta janela, você
pode alterar a forma de pronunciar um ou vários fragmentos.
Estas alterações são
só aplicadas ao intérprete actualmente editado.
Modificando um fragmento nesta janela somente
alterará a pronúncia para este intérprete, e não
afectará os outros'. |
|
Assim que um fragmento é modificado, ele é exibido a cores
na lista. Quando seleccionar um fragmento modificado, é possível
voltar atrás para os seus valores por defeito clicando no botão
Original abaixo da lista.
Na parte direita da janela, vários objectos gráficos permitem-lhe
modificar os dados dos fragmentos.
Na parte superior da janela, um menu pop-up
mostra-lhe o tipo de fragmento :
Vogal significa que este fragmento poderá ser prolongado
quando a sílaba na qual está incluído é extendida
no tempo.
Se a sílaba não incluír qualquer vogal, o Virtual
Singer tentará prolongar os fragmentos do tipo vogal de passagem.
Para qualquer dos tipos acima, os fragmentos do tipo consoante vocalizada
e consoante não vocalizada serão prolongados.
A duração dos fragmentos pode ser alterada através
de um indicador.
Este valor é o tempo natural para o fragmento. Se este
fragmento for prolongado, a sua duração será aumentada.
 |
Nota :
Quando um valor é
alterado gráficamente (através de um indicador por exemplo),
o seu valor numérico correspondente aparece numa moldura no canto
inferior direito da janela. |
|
A parte estática de um fragmento |  |
É um conjunto de valores usados para definir a parte
estática de um fragmento, ou seja, independente das transições
dos fragmentos adjacentes.
Estes parâmetros podem ser modificados usando uma vasta área
gráfica na parte direita da janela.
Os Formantes são exibidos como triângulos.
Para cada formante, a frequência média (in Hertz),
Amplitude (dB) e largura de banda (triângulo do fundo,
em Hz) podem ser alterados.
Um conjunto de pequenos botões por baixo deste gráfico
permitem-lhe activar ou desactivar cada formante na parte paralela do gerador
da voz.
 |
Nota :
Como foi explicado em cima, mesmo que um formante
seja desactivado, e já não seja mais exibido na parte gráfica,
a sua frequência e largura de banda continuam a ser
usados na parte em cascata do gerador de voz. |
|
À direita, um conjunto de indicadores verticais permitem-lhe alterar
os níveis de vocalização (av), rotação
(Rl), aspiração (asp) e fricção
(af).
 |
Dica :
Editando gráficamente a frequência
média ou largura de banda de um formante, são
exibidas duas linhas verticais. Elas mostram-lhe o limite superior e inferior
deste parâmetro, encontrado na lista de todos os fragmentos.
Isto evita que o parâmetro
seja ajustado para um valor demasiado "raro". |
|
Curvas de transição de fragmentos |  |
Durante uma parte falada ou cantada, a transição de um
fragmento para outro não é instantâneo : o fragmento
seguinte começa a ser falado antes do anterior ser completamente
concluído. Esta transição suave entre fragmentos é
chamada de coarticulação.
A parte gráfica no fundo da janela permite-lhe, para cada
parâmetro (frequência do formante, amplitude, largura de
banda e níveis variados) definir a sua curva de transição
através do tempo. O parâmetro para o qual a curva é
exibida aparece rodeado a vermelho na área superior.
Na curva de transição, por convenção,
o valor adjacente (anterior ou próximo) é exibido ordenadamente
do mais baixo para o mais alto.
O valor estático para o fragmento actualmente seleccionado (indicado
na parte superior do gráfico) é exibido ordenadamente do
mais alto para o mais baixo.
 |
Nota : esta é
uma exibição simbólica, sem qualquer relação
com o valor efectivo do parâmetro. |
|
A transição do parâmetro do seu valor anterior
para o valor estático actual é exibido como dois segmentos
:
Um primeiro segmento, na esquerda, cujo tempo é
'roubado' aos fragmentos anterior.
Este segmento fará o parâmetro evoluir do valor estático
do primeiro segmento para um valor intermédio, definido por dois
indicadores verticais à esquerda da curva.
Indicador de Relação (Ra) permite-lhe
seleccionar a extensão do valor do parâmetro anterior
de acordo com o valor a ser atingido.
Exemplo : uma relação de 0% ajusta
o valor intermédio para o valor a ser atingido.
Uma relação de 100% ajusta o valor intermédio
para o valor do parâmetro anterior.
Uma relação de 50% ajusta o valor intermédio para
a média dos valores do parâmetro anterior e actual.
Inicio de compensação (Od) permite-lhe adicionar
um valor fixo ao valor intermédio.
Exemplo : com uma relação (Ra) de 50%, e uma compensação
(Od) de 100, o valor intermédio é igual a : 100 + média
do valor anterior e do actual.
Na curva, o segundo segmento dá o tempo de transição
entre o valor intermédio e o valor a ser atingido (valor estático
do fragmento actual). Este tempo é obtido do fragmento actual.
Simetricamente, os dois segmentos da direita, assim como os dois
indicadores, permitem-lhe definir a transição do valor estático
actual para o valor estático do fragmento seguinte.
Foi dito em cima que uma curva de transição
pode ser definida a partir do valor estático do primeiro
segmento, e para o valor estático do fragmento seguinte.
Cada uma destas curvas de transição só serão
usadas se o fragmento actual tem uma prioridade maior que o fragmento
adjacente. A prioridade é dada pela ordem do fragmento na lista
de fragmentos.Quanto mais alto na lista, maior é a
prioridade.
Exemplo :
Se a lista contiver apenas três fragmentos, "a, b, c" nesta ordem,
e a sílaba a ser cantada é "babc", as transições
seguintes serão criadas para cada parâmetro dos fragmentos
:
-
valor estático do fragmento "b",
-
transição para o valor do fragmento "a", seguindo
os dois primeiros segmento da curva de transição do "a" (porque
o "a" tem uma prioridade maior que o "b"),
-
valor estático do fragmento "a",
-
transição para o valor do fragmento "c", seguindo
os dois últimos segmentos da curva de transição do
"a" (porque "a" tem uma prioridade maior que o "c"),
-
valor estático do fragmento "c",
-
transição para o valor do fragmento "b", seguindo
os dois últimos segmentos da curva de transição do
"b" (porque "b" tem uma prioridade maior que o "c"),
-
valor estático do fragmento "b".
Botões de acção |  |
Estes botões, localizados no canto inferior
direito da janela, permitem-lhe executar várias acções
:
Botão Testar
Você pode testar os fragmentos modificados escrevendo
uma frase simples na moldura correspondente e depois clicando no botão.
Então, a lista de fragmentos usada para pronúnciar
a frase é exibida.
Os símbolos > e < entre o nome dos fragmentos
dá-lhe a prioridade relativa de cada fragmento de acordo com os
fragmentos adjacentes.
Observação : quando selecciona outro fragmento na lista
de fragmentos, uma palavra de amostra para esse fragmento é inserida
na zona de texto.
Menu pop-up de Linguagem
Quando selecciona outra linguagem, os fragmentos usados nesta
linguagem aparecem em negrito na lista de fragmentos.
Botões Copiar/Colar
permitem-lhe copiar a totalidade dos parâmetros e curvas
de transição de um fragmento, de forma a poder colá-los
em outro fragmento. |