Reconhecimento Síntese de Voz no GNU/Linux

Atualizado em: 01/04/2007



Sobre este documento

Documento original enviado em 31 de março de 2007 por Ederson Luiz Honorato <ederson.luiz.santos # itelefonica.com.br>, "Reconhecimento Síntese de Voz no GNU/Linux" original em formato doc.

Endereço para baixar o documento original em formato .doc
http://200.204.198.164/zago/Reconhecimento_de_voz.doc

Este documento é uma conversão do original .doc para .html via tx2tags

tutorial

Reconhecimento Síntese de Voz no GNU/Linux

Recentemente o reconhecimento de voz no linux melhorou bastante, relembrando que em outras plataformas existem aplicativos de reconhecimento de voz bastante satisfatórios, mas existe um porém, esses aplicativos são proprietários e custam caro.

Como não poderia ser diferente, existem alternativas livres como o Cvoicecontrol, mas ao que parece o seu desenvolvimento foi interrompido.

À pouco tempo conheci o Sphinx um utilitário de reconhecimento de voz desenvolvido pela Carnegie Mellon University que usado em conjunto com o Festival fornece uma ferramenta de reconhecimento de voz espetacular.

Nesse pequeno manual quero mostrar como fazer a integração desses dois excelentes programas utilizando uma interface feita em Perl chamada PerlBox-Voice.

Reconhecimento de voz

Para o reconhecimento de voz vamos utilizar o Sphinx2.

Existem novas versões: o Sphinx3 e Sphinx4, porém o Sphinx2 é mais leve que as duas últimas versões e possui boas características como reconhecimento contínuo e independência do locutor.

Você pode obter os fontes em :
http://cmusphinx.sourceforge.net/html/download.php#sphinx2

Após baixa-lo é só descompactar e instalar da forma usual como segue :

  tar zxvf sphinx2****.tgz 
  cd sphinx2**** 
  ./configure 
  make 
  make install
Se o seu Linux usa o sistema de pacotes RPM ou DEB, você pode baixá-lo em:
http://ku.wru.umt.edu/~scmason/pbox/rpm/sphinx2-0.3-2.i386.rpm

Se o seu Linux usa o sistema de pacotes DEB o link é esse:

ou

# apt-get install sphinx2-bin

Síntese de Voz

Para síntese de voz utilizaremos a última versão disponível do Festival. Basta acessar o site do desenvolvedor em... e baixar o pacote para a usa distribuição.

Caso use o Debian basta:

# apt-get install festival

Integração do Sphinx2 e Festival com PerlBox-Voice

Para fazer a integração do Sphinx2 com o Festival usaremos o PerlBox-Voice, uma bela interface feita em Tcl. Antes de fazer a instalação do PerlBox-Voice propriamente dita, é preciso instalar o Perl-Tk para que o PerlBox-Voice funcione corretamente. O Perl-Tk é um toolkit gráfico para Perl e se não veio junto com a sua distribuição, você pode encontrá-lo em :

http://cpan.org/

Para usuários do Debian basta:

# apt-get install perl-tk

Para instalar o Perlbox-Voice, basta baixar o pacote nos links abaixo:

Pacote Deb

http://ufpr.dl.sourceforge.net/sourceforge/perlbox/perlbox-voice-0.09.noarch.deb

Pacote RPM

http://ufpr.dl.sourceforge.net/sourceforge/perlbox/perlbox-voice-0.09.noarch.rpm

Após fazer a instalação do pacote, basta abrir um terminal e executar:

$ perlbox-voice

Irá se abrir a seguinte interface:

Clicando na Seção Control você terá a seguinte tela :

A caixa em branco no menu é onde você poderá escrever ou colar qualquer texto para que o PerlBox-Voice leia.

O que mais interessa é o botão Start Listener que vai iniciar o listering, interpretando todos os comandos falados no microfone e executando a ação correspondente que foi configurado na seção Vocab. O botão Stop Listener para o listering.

Clicando na Seção Vocab você terá a seguinte tela:

Nesta seção você vai configurar os comandos de voz propriamente ditos. Um inconveniente é que os comandos de voz devem ser dados em inglês que é a linguagem padrão do PerlBox-Voice ( e a única por enquanto ;-) ).

Para adicionar um comando, basta digitar na caixa When You Say (Quando Você Disser ...) o comando de voz e na caixa Computer Does (O Computador Faz...) a chamada a um comando de sistema ou aplicativo. Depois basta clicar no botão Add Entry e reiniciar o listering.

Na Seção Config você terá a seguinte tela :

No botão deslizante você configura o nível de verbosidade do locutor. Se você usa o KDE como Window Manager na caixa Desktop Plugins você encontrará a opção kde, que ativa o plugin de compatibilidade com o KDE.

Após fazer as mudanças, basta clicar no botão Apply Changes e reiniciar o listering.

Conclusão

O uso do Sphinx2 juntamente com o Festival e PerlBox-Voice fornece uma ferramenta muito útil e OpenSource, para deficientes que fazem uso do Linux. Embora falte suporte para a lingua portuguesa (e outros idiomas) o trio cumpre o que promete e mostra mais uma vez que soluções livres podem competir com softwares proprietários em qualidade e usabilidade, já que o consumo de recursos (CPU e memória ) é mínimo se comparado com aplicativos existentes para outras plataformas e o tempo de resposta é aceitável além da boa integração com os gerenciadores de janelas mais usados KDE e Gnome.

Indicações especiais para deficiente visual

linvox - download, tutorial e dicas...
http://intervox.nce.ufrj.br/linvox/
Oralux : distro GNU/Linux para pessoas cegas e com baixa visão
http://oralux.org/
Festival - sintetizador de voz
The Festival Speech Synthesis System
http://www.cstr.ed.ac.uk/projects/festival/
SPHINX2 - de voz para texto
http://sourceforge.net/projects/cmusphinx/

MBROLA - de texto para voz.
http://tcts.fpms.ac.be/synthesis/mbrola.html
Página principal deste site (FAQ)
http://www.zago.eti.br/menu.html