Clique aqui para ler essa revista em PDF.
JavaSpeech
Reconhecimento e sintetização de voz com Java
O reconhecimento de comandos de voz por computadores sempre fascinou o Homem. Vários filmes apresentam a possibilidade de conversar com um computador, ditar um texto ou emitir comandos utilizando a voz.
Na outra direção, imagine um programa complexo que deve se comunicar com o usuário através de sons. Pense como seria desgastante descrever todas as mensagens possíveis para se gravar em .wav, por exemplo. É por isso que jogos como o FIFA fazem uso de sintetizadores de voz para as narrações das partidas de futebol. Existem ainda muitos outros benefícios como a possibilidade de pessoas com limitações físicas poderem ouvir seus e-mails ou ditar cartas.
Varias empresas trabalham intensamente para permitir esta façanha. Um bom exemplo é o Via Voice da IBM, um programa comercial que permite, entre outras coisas, ditar cartas em produtos como o Microsoft Office. Outras empresas como a Microsoft e a Dragon System oferecem ótimos sistemas, ou engines, para tratamento de voz.
Tecnologias e implementações
A tecnologia de fala computadorizada pode ser dividida em duas categorias: reconhecimento de voz e sintetização de voz.
Reconhecimento de voz habilita o computador a ouvir uma linguagem falada e determinar o que foi dito, ou seja, é o processo de converter em texto um som contendo palavras. Sintetização de voz é o processo inverso, transformando texto em som. É freqüentemente chamado de text-to-speech.
Java não fica atrás nesta área. A Sun definiu uma especificação que representa uma interface genérica para um engine, a Java Speech API (JSAPI). A JSAPI não implementa o engine em si, funcionando apenas como uma camada entre seus programas e os engines desenvolvidos por terceiros. Os engines podem ser soluções em hardware ou software e podem estar na máquina local ou em um servidor. São eles que realmente trabalham com a placa de som capturando as falas ou sintetizando palavras.
Ao contrário do que acontece com outras APIs Java, não é fornecida uma implementação de referência da Java Speech API. Em vez disso, no site oficial da JSAPI (veja links) fornece uma lista de produtos e empresas que implementam a API. Algumas implementações são relacionadas na Tabela 1.
Na Figura 1 podemos ver o poder da JSAPI. Ela possibilita que nossos programas utilizem qualquer engine de qualquer empresa e em qualquer sistema operacional sem necessidade de alterar uma única linha de código e usufruindo de toda a potencialidade do Java.
Produto |
Descrição |
FreeTTS
|
Sintetizador de voz de código aberto totalmente escrito em Java. |
IBM Speech for Java |
Implementação da JSAPI baseada no IBM Via Voice. |
The Cloud Garden |
Implementação desenvolvida para funcionar com engines baseados na SAPI da Microsoft. Funciona com os produtos IBM ViaVoice, Dragon NaturallySpeaking e outros. |
Conversa Web 3.0 |
Um browser habilitado para funcionar com comandos de voz." |