Máquinas que falam já são uma realidade de nosso tempo: saldos bancários, brinquedos em lojas, sistemas de aviso de entrada e saída e em muitos outros locais já podemos ver estes interessantes elementos que entram em nossa sociedade e que fazem parte do mundo da eletrônica. Neste artigo descrevemos um sintetizador de voz que está ao alcance do grande público e que pode ser usado de diversas maneiras para que as máquinas dêem um passo em direção ao futuro, falando por si próprias.

Obs. Este artigo é de 1991, quando os DSPs ainda estavam numa fase inicial de desenvolvimento e dentre elas, os sintetizadores de voz se destacavam. O artigo tem valor histórico, já que hoje temos soluções muito mais avançadas para a síntese de voz. Sugerimos que os leitores visitem o site da Texas Instruments para soluções atuais ( www.ti.com ).

 

O leitor já pensou em colocar em sua casa ou na sua loja um dispositivo eletrônico que cumprimentasse as pessoas, que se despedisse na sua saída, ou ainda lhes dirigisse mensagens publicitárias com uma voz real sintetizada por um circuito eletrônico?

E, que tal um jogo eletrônico em que ao acertar ou errar um alvo o jogador fosse avisado pela própria máquina, com voz sintetizada sobre seu acerto ou ainda a quantidade de pontos feitos?

Uma outra aplicação importante seria em relógios que poderiam falar as horas ou despertá-lo com uma frase amigável, de uma maneira bastante interessante.

Na verdade, não existem limites para o que uma máquina que fala pode fazer. A possibilidade de interarmos uma máquina com um usuário humano através da voz é algo que há bem pouco tempo nem sequer pensávamos, abre caminhos totalmente inéditos para a eletrônica.

Mas, as aplicações de um sintetizador de voz vão ainda além das consideradas 'recreativas' ou 'domésticas' como as citadas acima.

Conectado a conversores analógicos/digitais os sintetizadores podem dar informações sobre o funcionamento de máquinas, alertando um operador e até mesmo realizar medidas em instrumentos para cegos.

Muitas empresas empregam deficientes visuais em suas linhas de montagem que, entretanto não tem muitas possibilidades de ampliar seu trabalho pela incapacidade de leitura de instrumentos de medida.

Com o uso de um sintetizador de voz ligado a um instrumento, um multímetro por exemplo, o instrumento passará a 'falar' o valor lido no instrumento, este princípio de funcionamento pode ser observado na figura 1.

 

Figura 1 – Um instrumento falante
Figura 1 – Um instrumento falante

 

Nos automóveis, como já existem hoje, situações do sistema elétrico e mecânico poderão ser continuamente monitoradas e em caso de qualquer anormalidade o motorista será avisado com uma voz que lhe dará indicações precisas do que ocorre.

A Texas Instruments possui uma vasta linha de dispositivos dedicados a síntese da voz. Um deles é o TMS 50C20, em tecnologia CMOS e que pode combinar até 512 palavras em 256 frases diferentes, gerando até aproximadamente 8 minutos de fala sintetizada.

Este integrado é o componente básico de nosso artigo que descreve um sintetizador de voz que o leitor poderá utilizar, pois será disponível com sua placa básica (Na época em que o artigo foi escrito).

Nesta placa dispomos de um sintetizador propriamente dito, uma fonte de alimentação de 5 V, um amplificador de áudio de pequena potência (TBA820) e uma memória onde estarão gravadas digitalmente as frases a serem sintetizadas.

Para facilitar o leitor, já que as palavras e frases devem ser gravadas num estúdio especial que digitaliza as palavras de um locutor, teremos na placa memórias com determinadas sequências de palavras que podem ser escolhidas de acordo com a aplicação que o leitor tenha em mente.

Uma destas sequências, por exemplo, é destinada a elaboração de jogos onde temos frases a respeito de acerto, erro e pontuação.

 

COMO FUNCIONA

Conforme explicado na introdução, a base de nosso circuito é um sintetizador TMS 50C20 da Texas Instruments em tecnologia CMOS.

Este componente sintetiza dados de fala contidos numa memória EPROM, PROM ou RAM.

Diferentemente dos componentes da família TMS5000 que necessitavam de contadores externos para o endereçamento da memória EPROM, alimentação simétrica e outros incômodos, o TMS 50C20 opera com um mínimo de componentes e sua alimentação é simples de 5 Volts e é mostrado na figura 2.

 

   Figura 2 – Pinagem do TMS 50C20
Figura 2 – Pinagem do TMS 50C20

 

Para que este integrado gere 512 palavras em 256 combinações será necessário usar uma memória EPROM do tipo 270512.

Com memórias menores como a 27064, como a que vai na nossa placa teremos um período menor de fala.

O TMS 50C20 opera de duas formas principais.

 

1. MODO DE LEITURA DE EPROM

Nesta modalidade o sintetizador lê o número da frase a ser sintetizada de uma das seguintes maneiras:

Via pulso

Via Interface paralela

Via interface serial

Via teclado

Em seguida, lê os dados de fala diretamente da EPROM, enviando o sinal de áudio sintetizado para um amplificador externo, conforme mostra a figura 3.

 

Figura 3 – Modo de operação com EPROM
Figura 3 – Modo de operação com EPROM

 

 

No caso de ser adotado o modo de operação via pulso, pressionando um interruptor de pressão o circuito sintetiza as frases gravadas em seqüência.

A placa tem elementos para controles externos em todas as modalidades citadas.

 

2. MODO PROCESSADOR

Nesta modalidade o sintetizador lê o número da frase a ser sintetizada via barramento de dados enviado por um microprocessador externo.

Os dados de fala podem estar tanto na memória de programa como numa memória de fala.

Para qualquer um dos modos de operação o hardware necessário está reduzido a um número mínimo de componentes.

A saída analógica está disponível nos pinos D/A1 (pinos 29 e 40).

O oscilador de clock do sintetizador opera numa freqüência de 3,07 MHz obtida a partir de um cristal.

Analisemos os modos de operação do sintetizador em mais pormenores:

Devido as várias possibilidades de configurações do componente vamos nos deter em apenas dois arranjos: no modo de leitura de EPROM e por impulso via teclado.

 

ACIONAMENTO POR PULSOS

As frases contidas na memória EPROM são lidas e os dados de fala sintetizados.

Cada vez que um pulso negativo for aplicado ao pino 31 do componente, temos a síntese de uma frase, em sequência.

Após falar cada frase o componente aguarda um novo pulso para falar a frase seguinte.

Após a última frase ele volta à primeira. (figura 4)

 

   Figura 4 – Modo por pulso
Figura 4 – Modo por pulso

 

 

INTERFACE POR TECLADO

O modo de leitura de EPROM via teclado permite a conexão do teclado diretamente ao componente. O teclado pode ter até 24 teclas (3 x 8) conforme mostram as ligações da figura 5.

 

Figura 5 – Operação por teclado
Figura 5 – Operação por teclado

 

Cada vez que uma tecla é pressionada a frase correspondente será imediatamente sintetizada.

Para evitar conflitos no barramento de dados é necessário a utilização de um buffer tri-state (LS244) entre o teclado e o TMS 50C20.

Embora o teclado possa conter apenas 24 teclas, isso não significa que possamos programar apenas 24 frases.

O componente funciona interna mente com o conceito de páginas. Assim, ao pressionarmos a tecla n” 24, o componente irá sintetizar a frase 24 e imediatamente mudará para a próxima página em que existem outras 24 frases.

Além disso, não é necessária a utilização de todo o barramento de dados para a formação do teclado.

Este pode ter 3, 6, 9, 12, 15, 18, 21 ou 24 teclas.

Com menos teclas teremos somente o aumento da quantidade de páginas necessárias a síntese de um mesmo número de frases.

Tanto a quantidade de páginas como o número de linhas do barramento de dados a serem utilizadas devem ser indicadas no programa, conforme veremos adiante.

 

CONTEÚDO DA EPROM

A memória EPROM deve conter:

a) três bytes de informação sendo:

- HEADER-BYTE que informa ao componente qual é a configuração que está sendo usada.

- SETOFF TIME que desliga o componente após o tempo programado

Cada bit equivale a 250 ms. Para reativar o componente é necessária nova inicialização (reset). Serve para economizar energia.

- Número de frases.

b) O endereço inicial da tabela de endereços de cada frase.

c) Tabela de endereços de cada palavra que irá compor a frase.

d) Dados de 'fala'.

Damos a seguir um exemplo de programa contido na EPROM:(TabeIa 1)

Os dados de fala estão gravados nos endereços mencionados pela tabeIa e são gravados em laboratório com equipamento especial.

 


 

 

 

Figura 6 – Jumpers no diagrama
Figura 6 – Jumpers no diagrama

 

O header byte é o principal byte da EPROM. Ele contém os dados necessários para a correta operação do componente.

O bit mais significativo é o bit 7 (HB1(7)) e o menos significativo é o bit O (HB1 (0)).

Para a operação por pulsos temos:

HB1 (o) = 1

HB1(1) = 1

HB1 (2) = 0

Os outros bits não tem função neste modo.

O segundo byte de informação, SETOFF TIME deve ser programado levando-se em conta que cada bit corresponde a 250 ms. Após o tempo programado o componente entra em estado de baixo consumo, aguardando uma nova inicialização.

O terceiro byte de informação conterá o número de frases a serem sintetizadas.

Na operação por teclado, o header byte deve ser programado da seguinte maneira:

HB1(0) = 1

HB1 (1) = 1

HB1(2) = 0 - cada vez que uma tecla for pressionada o número da página é incrementado.

= 1 - o número da página é incrementado cada vez que a última tecla for pressionada. O número da página é decrementado ao pressionarmos a penúltima tecla.

HB1(5-7) - indica o número de pinos do port D que estão sendo utilizados.

HB1 (5) é o bit menos significativo. Este número pode variar de 0 até 7.

O segundo byte continua sendo o SETOFF TIME conforme explicado anteriormente.

O terceiro byte irá indicar o número de páginas que será utilizado.

Este número irá variar em função do número de frases e do número de entradas do port C que forem utilizadas.

 

SETOFF TIME

O Setoff Time é um artifício que permite, via programação, desligar o componente colocando-o em estado de espera, com um mínimo de consumo e sem que ele perca as informações contidas em sua RAM interna. Para que ele volte a operar basta um reset (pino 4).

 

MONTAGEM

A placa básica tem o diagrama mostrado na figura 7.

 

Figura 7 – Diagrama completo
Figura 7 – Diagrama completo

 

A placa de circuito impresso é fornecida com a EPROM que contém uma das seleções de palavras indicadas no anúncio conforme aplicação que o leitor tenha em mente.

Para outras aplicações, aceitam-se consultas com a programação de frases especiais que dependem do uso.

Nesta placa ligamos o transformador de alimentação com secundário de 6+6V e pelo menos 250 mA, o alto-falante (o controle de volume é formado por um trimpot de 10 k na própria placa de circuito impresso) e temos duas opções para acionamento.

Uma delas consiste no emprego de um interruptor de pressão ligado do pino 31 à massa que faz o acionamento sequencial das frases programas. Outra possibilidade é através do barramento para interfacear com teclado ou microprocessador.

Dois LEDs na placa indicam o acionamento do sistema e os 5 V para alimentação de todo o conjunto são garantidos por um integrado 7805 que não precisa de radiador de calor.

Na tabela 2, temos as seguintes frases.

 


 

 

Foram omitidos os endereços iniciais, incluindo o Header Byte. Observe que as palavras podem ter o acionamento cruzado.

No caso do protótipo, o tom musical é emitido em conjunto com as demais frases (no início).

Para estas frases foi usada uma memória de 64k.

 

CONCLUSÃO

Evidentemente, as possibilidades de se partir da placa básica para uma enorme gama de aplicações depende do leitor. Lembramos que a placa fala palavras previamente programadas segundo disponibilidade sob consulta.

O interfaceamento com os dispositivos de acionamento é relativamente simples já que as entradas são compatíveis TTL.

Desta forma a elaboração de jogos controlados diretamente por este tipo de circuito ou ainda a partir de chaves do tipo reed-switch ou micro-switch é simples.