Boa Idéia
Tecnologia Speech
Aprenda como fazer softwares com comandos e sintetização de voz
Não é de hoje que podemos interagir com máquinas através da fala. Houve, porém, uma grande evolução e a tecnologia sofreu refinamentos que permitem uma reprodução mais próxima a nossa linguagem, possibilitando assim desenvolver aplicações mais avançadas.
Existem inúmeras bibliotecas e hardwares no mercado que permitem recursos de texto para voz (text-to-speech) e reconhecimento de voz, como por exemplo, o Speech SDK da Microsoft. O Framework do .NET, a partir da versão 3.0, ganhou uma camada de Speech. Embora ainda não tão difundida quando as demais inovações da versão 3.0, esta camada foi fruto de anos de pesquisa e aprimoramento e por isso merece um destaque especial.
O Microsoft speech SDK 5.1, conjugado com o .net framework 3.5, permite desenvolvimento de aplicações com recursos de voz bastante interessantes. Antes de entrarmos a fundo na programação, é importante conhecermos alguns termos.
Text-to-speech
Text to Speech é um recurso que sintetiza voz a partir de um texto. Este recurso é explorado desde meados do século passado, porém com o avanço da tecnologia há uma reprodução cada vez mais próxima à fala humana. Uma das principais aplicações desta tecnologia tem sido a leitura para deficientes visuais.
Speech recognition
É o processo inverso ao text-to-speech, ou seja, converte a fala humana
Microsoft Speech Server
Com a internet, nos acostumamos a ter acesso à informações a qualquer hora. Porém, isto nem sempre é verdade, pois nem sempre estamos na frente de computadores. Embora existam muitos dispositivos móveis que permitem acesso à internet, devemos assumir que nem todos usuários têm dispositivos móveis, então o que fazer?
Uma das soluções seria a de utilizar o Microsoft Speech Server (MSS), um servidor para rodar aplicações com suporte a recursos de voz. O MSS pode interagir, por exemplo, com o MS Outlook Voice Access do Microsoft Exchange 2007 Unified Messaging, Windows Speech Recognition do Windows Vista, entre outros. É possível desenvolver aplicações personalizadas, utilizando .net e padrões abertos como SALT (Speech Application Language Tags). O SALT é um XML criado pelo W3C (World Wide Web Consortium) permite interações da voz com telefonia.
Existem inúmeras aplicações que podem ser desenvolvidas com a tecnologia de reconhecimento de voz. Certamente você já deve ter obtido informações de sua conta bancária através do telefone. Para que isto seja possível é utilizada a tecnologia text-to-speech. Existem até pizzarias que possuem aplicações similares permitindo que você faça o pedido através da voz, em que você fala o nome da pizza, a quantidade e a bebida. Após uma confirmação o sistema, então, calcula o valor total do pedido e depois de algum tempo a pizza chega em sua casa.
Outro exemplos ocorrem em algumas empresas, que possuem sistemas de redirecionamento de chamada através da voz. Você liga para a empresa e uma voz sintetizada pergunta “com quem deseja falar?”. Você responde o nome da pessoa, e após uma confirmação, sua ligação é redirecionada para o ramal dela. Estes sistemas podem garantir grande redução de custo para as empresas, principalmente no longo prazo.
Exemplo e vantagens de aplicações que podem usar voz
- Auxílio para deficientes visual
- E-learning
- Leitor de Texto em Geral (narração)
- Suporte para aplicativos de PDAs e outros dispositivos móveis
- Segurança
- Suporte
- Call Center
- Suporte a disléxicos
- Controle de equipamentos a longa distância, em campo
- Operações cirúrgicas
- Aplicações cujo acesso é via telefonia
- Muito outros...
Visão .net
Agora que temos uma visão do cenário, vamos ver como desenvolver aplicações que tenham reconhecimento de voz e text-to-speech utlizando a tecnologia .NET.
Como pré-requisito é necessário ter a versão 3.0 ou superior do .NET Framework. Instale também o Speech SDK 5.1 ou superior.
System.Speech.Recognition Namespace
Este namespace é o responsável pelo reconhecimento de voz dentro de system.speech. A Tabela 1 mostra uma breve descrição das principais classes deste namespace.
|
Classe |
Descrição |
|
AudioLevelUpdatedEventArgs |
Classe que manipula eventos gerados quando o nível de áudio do sistema é alterado . |
|
AudioSignalProblemOccurredEventArgs |
Classe que manipula eventos gerados quando há algum problema com o sinal de áudio. |
|
AudioStateChangedEventArgs |
Classe que manipula eventos gerados quando há alteração no fluxo do áudio. |
|
Choices |
Representa uma lista de alternativas de uma fala. |
| ... |