Processamento pré-prosódico

Antes de serem traduzidas, as palavras são submetidas a uma classificação,
que estabelece como será sua melodia (prosódia).

As regras de prosódia do arquivo portug.pro se referem ao contexto
localizado de uma certa palavra, em relação à palavra que a precede
e a sucede na frase.  Apesar de analisar apenas um contexto de 3 palavras,
inúmeras situações prosódicas são muito bem resolvidas.

As regras podem ser entendidas assim:

antes|atual|depois=afinainic afinatônica afinafim

A prosódia será aplicada sobre a palavra atual, de acordo com o que for
a palavra antes e a palavra depois.

As regras são analisadas da primeira até a última sequencialmente, e a análise
termina quando alguma regra puder ser aplicada.

As afinações são números entre 0 e 9.  A afinação 5 corresponde a uma
situação de repouso, valores menores que 5 indicam sons mais graves,
valores maiores que 5 indicam sons mais agudos.  A afinação 0 tem um
significado especial de processamento interno do tradutor, e não deve
ser usada.  A afinação pode ter o valor ?, em vez de um número entre 1 e 9.
Isso indica que o valor anterior de afinação será usado neste local.

Por exemplo, o código 555 indica que a palavra começa e termina no mesmo tom
básico.  O código 583, indica que a palavra começa num tom básico, fica mais
aguda na tônica, e até o final decresce bastante.

A frequencia básica é dada pela chave hertz.  No caso de uma voz feminina
é algo entre 200 e 260.  Numa voz masculina, entre 80 e 140 hertz.

A tabela tabhertz associa os números de afinação (entre 0 e 9) para as
frequencias, em percentagem.  O índice 0 deve conter o número 1, necessariamente.
O índice 5 deve conter o valor 100 (indicando 100 por cento da frequência básica).
Quanto mais espalhados forem estes números, mais oscilante será a frequência básica
da fala durante a leitura.

Um exemplo de prosódia com média variação é a seguinte:
tabhertz=1,65,75,88,94,100,106,111,118,127


Códigos de palavras

Por simplificação da análise, a especificação da palavra antes, atual e depois,
será feita por um código de exatamente 2 letras.  Seguindo um processo sugerido
por Allistair MacConkie, há 3 tipos de classificação que produzem grande impacto
na análise: localizar as palavras de função ("function words") e as palavras
não enfatizadas ("non stressed words").

De forma geral, foi implementado o seguinte como regras básicas.

FU - As palavras de função são não enfatizadas, devem ser graves, e a próxima deve
ser bem enfatizada
NS - As palavras não estressadas devem provocar um retorno ao tom básico, a próxima
deve ser levemente enfatizada.
XX - uma palavra qualquer não classificada nem como FU nem como NS.

Nota: esse código XX é fixo, não se pode trocar.

Uma lista de palavras com seus códigos correspondentes é listada na seção chaves
na forma
palavra=codificação

Podem ser inventados tantos códigos quanto se deseje, para melhorar a prosódia
em casos específicos.  A única restrição é que sejam de duas letras.  Por exemplo,
na distribuição básica deste sintetizador é incluída a codificação qu, que denota
palavras como quem, quando, onde, por, porque, que no meio de frase funcionam
como "NS" e no início ou fim da frase tem um significado de mudança de tonalidade.

Há alguns códigos pré-definidos, que são referentes aos sinais de pontuação

-- indica início de frase
.. indica um ponto final
.- indica reticências
?? indica um ponto de interrogação
!! indica um ponto de exclamação
;; indica ponto e vírgula
:: indica dois pontos
,, indica vírgula
)) indica abre parênteses
(( indica fecha parênteses

versões futuras (ainda não implementado)
-? indica início de uma frase interrogativa
-! indica início de uma frase exclamativa

