Soltando a voz
Matheus Degiovani

Interfaces alternativas são um tema popular no cenário atual dos jogos de computador. Controles por voz, biométricos e até por pensamento têm aparecido frequentemente em jornais e revistas internacionais. Porém, até hoje não houve um jogo brasileiro que incorporasse qualquer sistema mais sofisticado que um joystick.

Portanto, como não poderia deixar de ser, nós da TILT online tomamos a dianteira e apresentamos o primeiro sistema para jogos com reconhecimento de voz em português, com especial atenção aos jogos do tipo adventure.

Chega de digitar "norte", "abra a mala" ou "beba água": agora, jogar o Amazônia é tão fácil quanto dizer "O rato roeu a roupa do rei de roma".

O TILT Vox:

Visando reduzir o trabalho dos desenvolvedores de jogos, criamos um programa de controle por voz genérico, chamado TILT Vox, que pode ser usado em qualquer tipo de jogo, seja ação, esporte ou raciocínio. Na verdade, o sistema pode ser usado inclusive para controle do micro e de outros programas além de jogos.

Ele funciona reconhecendo as palavras faladas em um microfone, decodifindo-as em comandos específicos e enviando teclas ou sentenças ao Sistema Operacional. Elas são divididas em duas áreas: comandos e ditado.

Os comandos são palavras isoladas que provocam uma ação, como executar um programa, um conjunto de teclas ou a habilitação do reconhecimento de outros comandos. Eles tomam precedência de qualquer outro tipo de ação (exceto dos modificadores numéricos).

Já a área de ditado contém palavras que, quando reconhecidas, são "digitadas" pelo programa como se o próprio usuário estivesse usando o teclado normalmente.

Instalando e testando:

Para rodar o TILT Vox são necessários dois downloads: o da biblioteca Sphinx e do próprio programa (disponíveis no final desta página). O instalador da Sphinx é simples; basta rodá-lo, selecionar um diretório de destino e o programa se encarrega do resto. ATENÇÃO: a biblioteca Sphinx tem dificuldade em operar quando o diretório possui espaço em seu nome, portanto, evite esse tipo de diretório. Esse pacote instalador não cria nenhum executável em si - apenas os dados necessários para reconhecimento de voz. E vale lembrar que só funciona à partir do Windows NT (ou seja, não é possível usar o TILT Vox nas versões 95, 98 ou ME do Windows).

O próximo passo é descomprimir o arquivo zip em qualquer diretório e rodá-lo. Antes, porém, tenha certeza de que o seu microfone está conectado e funcionando corretamente (é possível testá-lo gravando uma frase qualquer no gravador de som do Windows). Um bom microfone é essencial para um reconhecimento eficaz, os melhores são os do tipo headset, que mantém o microfone perto da boca do usuário (eles podem ser encontrados em qualquer loja de informática por cerca de 20 reais).

Dentro do TILT Vox é possível criar comandos, palavras para ditado ou utilizar algum profile já existente. Incluso na distribuição da TILT estão três profiles-padrão: principal (com alguns comandos-execmplo para controlar o desktop), amazônia (para controle desse jogo) e um em branco.

Para jogar o Amazônia com controle de voz, basta carregar o profile correspondente, clicar em "reconhecer", minimizar o programa (botão no canto superior direito) e rodar o jogo. Dependendo de suas preferências, você pode escolher criar um comando para ativação de reconhecimento, ou deixá-lo ligado continuamente.

Comandos e ditado:

Criar comandos é simples: basta especificar uma palavra identificadora, uma pronúncia usando os fonemas adequados e a ação a ser executada quando o comando for identificado, que o TILT Vox automaticamente se encarrega do resto. Os tipos de ação suportados são:

1- Execução: Executa um programa com os parâmetros especificados. É útil para criar profiles de controle do computador.

2- Tecla: Simula o pressionamento de uma tecla ou combinação. O programa ativo irá responder como se o usuário tivesse realmente pressionado o teclado (alguns jogos que usam o directx têm problema em detectar algumas teclas específicas como as setas).

3- Ativação: Ativa o reconhecimento de outros comandos. Se nenhum comando de ativação for especificado, o sistema irá reconhecer continuamente todas as palavras falados no microfone. No entanto, se houver um comando desse tipo, as palavras reconhecidas (excetuando-se as de ativação) serão descartadas a não ser que o sistema seja ativado. Ou seja, nenhum comando será aceito se antes não houver um de ativação.

4- Digitação: Envia uma frase ao Sistema Operacional como se o próprio usuário houvesse digitado. Esse tipo de comando é útil para simplificar textos que são digitados muitas vezes (por exemplo, dizer "nome" ao invés de ditar o nome completo). Para um profile com muitas palavras, no entanto, a melhor maneira de inserir textos para digitação é através de palavras para ditado.

A área de ditados é um pouco mais complicada. Devido ao modo de funcionamento da engine de reconhecimento de voz usada (CMU Sphinx), os melhores resultados para reconhecimento de um grande número de palavras são alcançados quando um modelo de linguagem é construído à partir de sentenças normalmente pronunciadas.

Portanto, para utilizar a área de ditados, primeiro é preciso construir um corpus (um acervo de sentenças "naturais") com as palavras que podem ser reconhecidas inseridas dentro do contexto de uso (por exemplo, as sentenças mais comuns utilizadas no jogo Amazônia) e salvá-lo em um arquivo de texto comum (com uma sentença por linha). E então carregar esse arquivo para a área de ditados do programa, que se encarregará de criar as informações necessárias para o seu correto entendimento.

Uma última classe de comandos que também é entendida são os modificadores numéricos (um, dois três...) que são codificados diretamente no programa e permitem a repetição de um comando repetidas vezes. Esses modificadores podem ser habilitados ou desabilitados nas seção de preferências, e editados manualmente dentro do arquivo modnum.ini.

Pronúncia:

O segredo do reconhecimento de voz é a pronúncia. Todo comando que pode ser entendido pela engine deve ser associado a uma ou mais pronúncias que são construídas a partir de uma lista de fonemas.

Embora o Sphinx seja um sistema para reconhecimento de voz em inglês, ao contrário de outras bibliotecas como o SAPI da Microsoft ele não requer treinamento e é independente de locutor. Com um pouco de adaptação, é possível utilizar os mesmos fonemas do inglês para palavras em português com um ótimo resultado.

Dentro do Vox, quando um comando é digitado, algumas regras básicas de pronúncia do português são aplicadas à palavra, gerando uma lista de fonemas perto da pronúncia real (com alguma margem de erro para casos especiais), o que significa que na maioria das vezes não será necessário conhecer o alfabeto de fonemas.

É importante lembrar porém, que algumas palavras são simplesmente difíceis para o programa identificar, devido à própria forma da pronúncia, do dialeto ou dicção do usuário, o que pode tornar necessário um ajuste fino das palavras para locutores diferente. Por esse motivo, está incluso no programa (dentro no arquivo phoneset.txt) a lista de fonemas aceitos junto com uma palavra e a sua pronúncia.

Sphinx:

A engine utilizada pelo TILT Vox para reconhecimento de voz é a CMU (Carnegie Mellon University) Sphinx II, de código aberto, que vêm sendo desenvolvida a vários anos. Dentre as diversas versões presentes (2, 3 e 4) a escolhida foi a versão 2 por executar reconhecimento em tempo real, e por ter integração simples com o Delphi.

Ela foi compilada em um OCX que pode ser utilizado importando-o como uma Type Library dentro das versões mais recentes do Delphi. Seu único problema é não suportar os sistemas operacionais Windows 95 e 98 (e possivelmente o ME) devido à incompatibilidades do modelo de threads entre esses SOs e as versões mais recentes como o Windows 2000 e XP.


Download...
Clique no link para fazer o download dos arquivos. Se sua assinatura do club TILT está para vencer, clique aqui e saiba como renová-la.

Instala a engine no seu computador
O programa de controle port voz
 
online