• Nenhum resultado encontrado

A Conversão Grafema Fonema Para o Português

CONVERSORES TEXTO-FALA

3) Sintetizadores baseados em concatenação de unidades: nestes sistemas realiza-se a concatenação de um conjunto de unidades extraídas da produção

5.3 O Conversor Texto-Fala MULTIVO

5.3.2 A Conversão Grafema Fonema Para o Português

A conversão aqui denominada por grafema-fonema que visa realizar automaticamente a transcrição fonética de um texto em fonemas, ou neste caso preciso em códigos de fonemas, para o português foi desenvolvida a partir do zero visto não se encontrar na literatura qualquer referência a regras que permitam realizar esta conversão.

A abordagem deste tema pretende não só explicar a forma de implementação desta conversão no MULTIVOX, mas também deixar documentada uma primeira abordagem ao conjunto de regras que realizam automaticamente a transcrição fonética de um texto em português.

Para a realização desta conversão é necessário estabelecer previamente um conjunto de fonemas base que caracterize a língua em causa, neste caso o português. Este conjunto foi estabelecido tendo por base a matriz fonológica para o português segundo [Martins 92] e [Mateus 90], já apresentada no capitulo 2, acrescentando alguns sons básicos que teoricamente são realizados pela junção de dois fonemas mas que na prática, no sintetizador, resulta desastrosa. Assim foi criado um conjunto de 38 sons básicos. A maior parte deles já foram caracterizados no capitulo 2, mais os sons [ão], [qu] e [t•], este último normalmente não usado na língua portuguesa mas que pode ser necessário para pronunciar nomes estrangeiros. A lista de fonemas e respectivos códigos usados é apresentada na tabela 5.1.

Tabela 5.1 - Símbolos fonéticos e respectivos códigos usados no conversor texto-fala MULTIVOX (versão portuguesa).

Símbolo Fonema Código do

fonema Exemplo (pausa) 1 (pausa) a [a] 2 pato oo []] 3 gola o [o] 4 poço u [u] 5 pula @ [c] 6 secar i [i] 7 livro e^ [e] 8 Pedro a- [α] 9 bala e [ε] 10 terra b [b] 11 bata p [p] 12 para d [d] 13 dado t [t] 14 terra g [g] 15 gato k, c [k] 16 casa ão i 17 cão lh [ ] 18 filho m [m] 19 ama n [n] 20 nada nh […] 21 pinho ii [j] 22 pai livre livre 23 v [v] 24 vaca f [f] 25 filho z [¤] 26 casa s [s] 27 sábado j [¥] 28 jardim uu [w] 29 pau i

Teoricamente trata-se de um conjunto de dois fonemas [α

~

] e [u]. No MULTIVOX foi implementado como um som base, não havendo para este som uma representação no alfabeto fonético internacional.

ch [•] 30 chama tch [t•] 31 tcheco l [ l ] 32 ala rr [r] 33 carro r [r~ ] 34 caro qu [k] e [w] 35 quando an [α ~ ] 36 canto on [o ~ ] 37 ponte in [~i ] 38 pinto un [u ~ ] 39 fundo en [e ~ ] 40 dente

De referir que o texto de entrada para esta conversão está na forma de representação interna dos caracteres para o MULTIVOX cujos caracteres que diferem dos habituais são apresentados no anexo A1.

A conversão grafema fonema no MULTIVOX é realizada em duas etapas. Uma primeira na forma tabular que comporta as regras elementares e de fácil especificação bem como algumas excepções à regra (normalmente vocábulos, palavras e pequenos agrupamentos habituais de palavras). A segunda etapa comporta regras, que pela sua complexidade não são possíveis de implementar na primeira etapa, programadas em linguagem C e actuam sobre os códigos fonéticos transcritos na primeira etapa.

As regras da primeira etapa na forma tabular são apresentadas no anexo A3 e o seu funcionamento é o seguinte:

- Armazenamento das regras: as regras estão organizadas por ordem alfabética da sua primeira letra. Cada letra do alfabeto representa um bloco separado de regras na tabela. A organização de cada um destes blocos tem contornos similares ao triângulo "saw-tooth" desenvolvido por [Olaszy 90].], isto é, no topo do bloco ficam as regras mais compridas (com maior número de caracteres) e no pico do triângulo, ao fundo, localiza-se a última regra que consiste em apenas uma letra (a letra inicial do próprio bloco de regras). A posição da regra no bloco é conducente com a sua prioridade. Assim o topo do bloco contém as regras de mais alta prioridade, sendo esta decrescente ao longo do bloco. Esta prioridade advém do modo como é feita a pesquisa das regras na tabela. Esta pesquisa é realizada da seguinte forma:

- Algoritmo de conversão:

1) O algoritmo de conversão toma a primeira letra do texto.

2) Seguidamente, coloca-se no bloco de regras iniciado por essa letra. 3) Começa por comparar a primeira coluna (lado esquerdo das regras) do bloco com a sequência de letras do texto, enquanto incrementa o apontador passo a passo.

posiciona o apontador na letra seguinte do texto da acordo com a última letra da regra. A pesquisa seguinte inicia-se na nova posição do apontador.

5) Se a comparação, da esquerda para a direita, falha numa letra o conversor coloca o apontador do texto na posição anterior ao início da pesquisa e o procedimento de comparação inicia-se no próximo bloco de regras correspondente à nova letra inicial.

- Edição das regras: cada regra contém um sinal de igualdade separando o lado esquerdo da regra que contém a sequência de caracteres a converter, do lado direito que contém os códigos fonéticos correspondentes aos caracteres do lado esquerdo. São usados dois símbolos especiais para a formatação das regras. O "backslash" (\) indica um passo atrás no apontador da sequência de caracteres na regra. O til (~) indica um caracter qualquer, isto é o algoritmo de pesquisa aceitará qualquer caracter no lugar do (~) quando usar a regra. Estes dois símbolos são usados apenas no lado esquerdo da regra. O zero (0) do lado direito serve como uma marca de fim da sequência de códigos de fonemas. Estes símbolos do lado esquerdo e o zero (0) do lado direito podem ser usados para aumentar o tamanho da regra dando-lhe assim maior prioridade. São também usados, sem qualquer efeito a nível de regra, para igualar o número de caracteres do lado esquerdo da regra com o número de códigos fonéticos do lado direito, já que esta igualdade é obrigatória por imposição de software. Chama-se a atenção para o facto de as regras iniciadas, no lado esquerdo, com um espaço ou terminadas com um espaço e "backslash", são relativas respectivamente ao início e fim de palavras.

Quer nas regras de conversão na forma tabular quer na segunda etapa desta conversão são impostas algumas marcas de prosódia. Estas marcas têm códigos, que aparecem na tabela de regras do anexo A3, com numeração superior aos códigos dos fonemas (máx. 40). Assim caberá aqui uma explicação de qual a função prosódica relativa a cada uma dessas marcas (tabela 5.2).

Tabela 5.2 - Função prosódica relativo a cada código de marca no nível 1 de representação do conversor texto-fala MULTIVOX.

Código da

marca prosódica Função Prosódica

45 marca um elemento não acentuado

49 palavra interrogativa

52 aumenta a frequência fundamental (tom) durante a próxima palavra

60 aumenta intensidade da próxima palavra 61 reduz intensidade da próxima palavra

64 aumenta a frequência fundamental (tom) no texto a partir desta marca

65 reduz a frequência fundamental (tom) no texto a partir desta marca

80 palavra mais rápida

81 palavra mais lenta

85 Impede que os códigos fonéticos da palavra sejam alterados 88 Junção à próxima palavra (elimina pausa posterior) 89 Junção à palavra anterior (elimina pausa anterior)

202 a 240 Sílaba tónica. O fonema (vogal) acentuado(a) fica com o código 200 + código do fonema.

254 Virgula

A segunda etapa da conversão grafema fonema é implementada em linguagem C e as suas regras estão descritas no anexo A2.

Em forma de finalizar o assunto da transcrição fonética para o português refere-se que o sistema de regras descrito não está completo, tendo necessidade de mais desenvolvimento, contudo a experiência do trabalho com este sistema deixa antever que este caminho leva a uma transcrição fonética perfeita. Neste momento os resultados são já bons pois para texto corrido a transcrição fonética é realizada com um sucesso elevado, sendo poucos e pouco graves os erros cometidos.