Artigo

    

Controle o computador por voz com Simon


Por Falko Benthin


Há aproximadamente três anos, a primeira versão do software de reconhecimento de voz, Simon [1] era disponibilizada. Desde então, esse campo de aplicativos, de início, voltado a facilitar o acesso de pessoas com necessidades especiais ao computador, amadureceu de modo considerável. O Simon é mais do que um substituto de teclado e mouse para pessoas com necessidades especiais. Na verdade, os softwares de reconhecimento de voz parecem caminhar na direção da robótica em um futuro próximo. O aplicativo é baseado no Julius [2] motor (engine) de Reconhecimento de Fala Contínua de Vocabulário Amplo (Large Vocabulary Continuous Speech Recognition – LVCSR), de código aberto. Ele baseia-se também no Hidden Markov Model Toolkit (HTK) [3], bem como em muitos dicionários. A versão atual do Simon possuiu uma boa quantidade de modelos de idiomas prontos para uso, contudo, em contraste com muitos aplicativos proprietários, ele permite que usuários criem suas próprias linguagens e seus próprios modelos acústicos.



Figura 1: Durante a configuração, o Simon verifica o seu microfone.


Em função de estar preparado para entender qualquer dialeto e qualquer pronúncia, o Simon é também perfeito para pessoas com dificuldades linguísticas. O Simon permite aos usuários abrir programas, entrar em sites, simular atalhos e controlar o teclado e o mouse. O aplicativo usa uma arquitetura cliente-servidor de forma que múltiplos usuários podem, teoricamente, acessar um único servidor. Essa funcionalidade torna-o interessante para a inclusão de deficientes no mercado de trabalho ou em instituições de assistência a idosos.


Instalação


Os desenvolvedores do Simon oferecem pacotes binários para openSUSE, Ubuntu e seus derivados. Usuários do openSUSE devem fazer uso do openSUSE Build Service [4] e da instalação com um-clique (one-click installation). No Ubuntu, será necessário primeiro adicionar o PPA do Simon, da seguinte forma: digite [Alt]+[F2] e em seguida escreva na caixa de diálogo que irá surgir ao seguinte comando:


gksu add-apt-repository ppa:grasch‐simon‐listens/simon

Feito isso, é necessário instalar o aplicativo de reconhecimento de fala no seu computador. Para tanto, você já pode ir até o menu Sistema/Administração/Gerenciador de pacotes Synaptic. Com o programa aberto clique em Editar/Recarregar informações dos pacotes e no botão Procurar. Digite simon no campo que se abrirá; clique com o botão direito no pacote correspondente e em Marcar para instalação. Para finalizar, clique em Aplicar. Os usuários de outras distribuições irão encontrar pacotes DEB e RPM junto ao instalador (./simon-Version.sh) no Source-Forge.



Figura 2: A janela principal do Simon, dá acesso rápido às funções do programa.


Antes de começar a dizer ao seu computador o que fazer, você pode ainda ajustar o HTK, que melhora significativamente a taxa de detecção mais tarde. Para computadores de 64 bits, é necessário antes excluir qualquer menção ao termo -m32 nos arquivos de nome configure. Caso você queira tentar, é preciso registrar-se (gratuitamente) antes de poder fazer o download. Enquanto espera que suas credenciais de acesso sejam enviadas via email, é aconselhável instalar algumas ferramentas de desenvolvimento junto às bibliotecas de desenvolvimento do Alsa e X11. No Ubuntu, é possível instalar apenas os pacotes do build-essential, libx11-dev e libasound2-dev!!. Uma vez que você tenha o arquivo do HTK na sua máquina, descompacte-o e siga aquele típico processo de compilar um código com ./configure, make all, sudo make install.



Figura 3: Modelos acústicos prontos permitem aos usuários configurar o Simon rapidamente.


Como começar


Depois de completar a etapa de instalação, você encontrará a categoria Acessibilidade no seu menu de Aplicativos. Vá lá para iniciar o ksimond (a interface gráfica do servidor Simon) e o próprio Simon, que colocará o seu ícone na barra de tarefas e, quando clicado com o botão direito do mouse, exibe um menu que permite a você iniciar e configurar o servidor Simond. O padrão é que o Simond só aceite conexões locais. Ele escuta a porta 4444 e, como tem a habilidade de servir a múltiplos clientes, você deve criar um usuário ou mudar a senha padrão. Os dados dos usuários são armazenados em um banco de dados SQLite. Quando o programa é rodado pela primeira vez, um assistente te guia pela tela de configuração, para ajudar a criar seus próprios cenários e um modelo de linguagem pessoal ou a escolher um dos modelos pré-existentes. Além do mais, é possível escolher a localização do servidor, os dispositivos de áudio, bem como checar o volume do seu microfone (figura 1).



Figura 4: O Simon realça em vermelho o vocabulário que precisa ser treinado.


São denominados cenários os conjuntos de comandos, expressões e termos dentro de uma configuração. O Simon tem um banco de dados online bem completo que inclui cenários em vários idiomas. Ainda há algumas soluções prontas de modelos acústicos, com suporte a inglês, alemão e português, todos eles disponíveis como modelos básicos estáticos ou adaptáveis. O modelo estático requer uma pronúncia mais próxima da perfeição e não é ensinável, entretanto, em comparação aos modelos adaptáveis, faz seu trabalho sem o Hidden Markov Toolkit. Essa abordagem provê um modelo bem preparado mas flexível, que pode ser modificado para se adequar à sua própria voz e pronúncia. Embora os usuários possam se acomodar melhor entre um período curto de treinamento e um alto nível de precisão, é possível também criar um modelo do zero, com o benefício, por este esforço, de se obter um nível de precisão de reconhecimento bastante alto. Ao completar os passos iniciais, o Simon exibe a sua interface principal (figura 2). É possível que você receba uma notificação de que a senha não corresponda ao nome de usuário, impedindo o acesso ao servidor. Para resolver essa situação, você pode entrar com os valores definidos anteriormente em Settings/Configure simon.../Recognition.



Figura 5: O número de páginas em uma unidade de treinamento mostra a quantidade de palavras que ainda precisam ser praticadas.


A opção presente de iniciar de modo automático o Simond junto com o Simon parte do pressuposto de que você não necessitará do ksimond no futuro – o que é verdade se o servidor e o cliente estiverem na mesma máquina. Além de vários outros menus, a barra de ferramentas do Simon apresenta nove botões para as tarefas mais necessárias. Ao lado do botão de iniciar conexão, incluem-se as opções de ligar o controle por voz, gerenciar cenários, adicionar palavras ao seu vocabulário, acesso ao vocabulário, gramática, comandos, a função de treinamento para novas palavras e uma ferramenta de sincronização que adiciona novas palavras ensinadas ao modelo de linguagem atual. O vocabulário precisa incluir todas as palavras as quais deseja que o Simon seja capaz de reconhecer. A gramática define as combinações de palavras permitidas, tais como substantivo/substantivo, substantivo/verbo ou acionador/comando – mas retornarei a este assunto mais adiante.


Modelos básicos e cenários


O Simon suporta vários modelos básicos prontos. Você pode baixar e descomprimir um modelo em uma pasta e, depois, indicar onde ele se encontra em //Settings/Configure Simon.../Model Settings (figura 3). Modelos básicos adaptáveis dão resultado rápido, mas optar pelo esforço do treinamento ainda é aceitável para modelos gerados por usuários. O Simon analisa os dados no âmbito fonético, separados por lacunas. Por exemplo, a palavra inglesa “computer” seria escrita “k O m p j u: t @ r”, como fonemas – de novo, falarei mais sobre isso depois. Em princípio, o Simon armazenará todas as novas palavras, substantivos e comandos no cenário padrão. Estes existem, inclusive, para aplicativos especiais, como o controle do navegador Firefox ou o XBMC media center. Você pode baixar e instalar os cenários para economizar o tempo que gastaria criando termos novos. Assim, precisará apenas treinar o vocabulário existente e passá-lo ao Simond. Para criar os seus próprios cenários, é necessário clicar no botão New no recurso de gerenciamento de cenários e fornecer o número da versão e os detalhes de licenciamento. Opcionalmente, podem ser oferecidos a versão atual do Simon e o nome do autor. Assim que estiver pronto, você pode povoar o cenário com palavras e os aplicativos aos quais elas se relacionam. Se desejar contribuir com o seu trabalho ao pool de cenários públicos disponíveis, você precisará observar as convenções que regulam os nomes de cenários [Idioma/Modelo_acustico] Nome_intuitivo. Por exemplo, [PT/VF] Opera para um cenário em português relacionado ao navegador Opera. Havendo múltiplos cenários, o Simon adicionará todas as novas palavras, comandos e termos ao que estiver aberto.



Figura 6: O Simon avisa se a qualidade da gravação não foi boa o suficiente.


Treinamento


Depois de selecionar um modelo básico e, talvez, um cenário, poderá iniciar o treinamento do Simon. Ao clicar em Vocabulário, você verá um grande número de linhas realçadas em vermelho, que indicam as palavras ainda não ligadas à voz e à pronúncia do usuário (figura 4) ou – no caso de um modelo gerado pelo usuário – aquelas simplesmente desconhecidas pelo Simon, estas podem ser adicionadas ao treinamento. Como alternativa, você pode iniciar o treinamento ao clicar no botão Treinamento da barra de ferramentas. Neste caso, o Simon adicionada de modo automático todas as novas palavras a sua sessão de treinamento (figura 5). O número de páginas é tipicamente o número de palavras ou grupo de palavras que você precisa ditar. O treinamento se assemelha a um diálogo: O Simon mostra todas as palavras ou grupos de palavras que pertençam a uma unidade de treinamento. Em seguida, ele descreve exatamente o que você precisa fazer, verifica a qualidade de cada gravação e avisa se esta estiver insatisfatória (figura 6). Para tal, o Simon avalia o nível mais alto de ruído e a taxa de sinal-para-ruído. Para permitir ao Simon a habilidade de discernir entre o som da sua voz e os ruídos do ambiente, você precisa ficar em silêncio cerca de dois segundos no começo de qualquer gravação. Uma vez concluída uma unidade de treinamento, o Simon passa para a próxima. No caso de optar por um modelo acústico gerado por usuário, você precisa concluir pelo menos cinco sessões de treinamento. Ainda que reconhecimentos rudimentares funcionem após apenas duas sessões, a precisão fica muito prejudicada nesse caso. Em um ambiente de laboratório, o Simon foi capaz de reconhecer, sem erros, as palavras ditadas após 10 sessões de treinamento. Quando se trata de novas palavras, o desafio é selecionar uma “finalidade” para cada nova palavra – quer dizer, você precisa especificar quando uma palavra é um substantivo, verbo, acionador (trigger) ou comando. Além disso, você precisa definir a pronúncia, como fonemas, tal como no exemplo citado anteriormente em “k O m p j u: t @ r”. Quem não tiver conhecimentos linguísticos pode sentir dificuldades nesse processo, mas um dicionário pode poupar um bom tempo. O Simon tem um assistente de importação de dicionários com detalhes da pronúncia dos vocábulos. O Simon suporta o HTK, Sphinx [7] e PLS [8] ou os dicionários Julius das suas primeiras versões.


Comandos


Quando tudo estiver funcionando, você poderá querer incluir os seus próprios novos comandos no sistema. Os comandos processam os resultados do sistema de reconhecimento e podem ocorrer individualmente ou em combinação com um acionador. A combinação de um acionador com um comando, tal como em “Executar Skype”, em vez de apenas “Skype”, previne execuções acidentais de comandos. O Simon inclui uma variedade de plugins para rodar comandos que executam programas: acessar sites, pastas e arquivos (Locations) e fornecer atalhos de teclado, tais como Ctrl+S (Shortcuts), números (Numeric entries) e blocos de texto (Text macros), por exemplo. Você pode também abrir a lista de comandos e selecionar o que deseja dizendo o seu número, controlar o mouse (Desktop grid) ou executar comandos em lote (Combination commands). Uma conjunção de comandos, tal como telefonar mamãe, pode desencadear um cliente SIP, buscar o número do telefone da sua mãe e fazer a chamada. Você pode adicionar novos comandos à interface de comandos. Antes de pressionar o botão New command, precisa carregar um ou mais plugins de comandos através do Manage plugins que pode, opcionalmente, vir combinado com um acionador. Na caixa de diálogo de criação de comandos que surge, especifique a ação que está ligada ao comando, bem como o seu acionador (figura 7). Você precisará também treinar novas palavras de comando e criar regras para elas, à medida do necessário.



Figura 7: O Simon ajuda o usuário a criar novos comandos.


Conclusão


O Simon cresceu muito rápido nos últimos anos, se encontra em um bom nível de estabilidade e possui interface e diálogos amigáveis. O treinamento pode consumir um tempo considerável, mas a recompensa é um alto nível de precisão. Além do controle por fala, o Simon oferece mais recursos que estão além do escopo deste artigo. Entre eles, incluem-se um plugin de ditados, um treinador de pronúncias e um plugin de inteligência artificial. Presumindo que você tenha uma boa coleção de vocabulários, a função de ditado provê ditados de textos curtos; o treinador de pronúncias, em conjunto com um modelo estático, corrige a pronúncia dos usuários, em substituição ao professor de língua estrangeira. O recurso de inteligência artificial é projetado para permitir maior interação do Simon com seus usuários. Os desenvolvedores do Simon têm grandes planos para o futuro. O que inclui tornar as vidas das pessoas idosas mais fácil e implementar várias aplicações robóticas. Para atingir esse objetivo, a equipe também contribui para os projetos de pesquisa Astromobile [9]. O primeiro, pesquisa a habilidade da tecnologia de comunicação moderna para facilitar a vida de pessoas idosas e dar-lhes o máximo de autonomia possível. Já o segundo tem seu foco voltado para a interação homem/máquina.


Mais informações


[1] Simon escuta (listens): http://sourceforge.net/projects/speech2text/
[2] Julius: http://sourceforge.net/projects/julius/
[3] HTK: http://htk.eng.cam.ac.uk/
[4] openSUSE Build Service: http://software.opensuse.org/
[5] Simon repository for Ubuntu: http://ppa.launchpad.net/grasch-simon-listens/simon/ubuntu/ 
[6] VoxForge: http://www.repository.voxforge1.org/downloads/SpeechCorpus/Trunk/Lexicon/
[7] Sphinx: http://sphinxsearch.com/
[8] PLS: http://www.w3.org/TR/2005/WD-pronunciation-lexicon-20050214/ 
[9] Astromobile: http://simon-listens.blogspot.com.br/2012/04/astromobile-project-has-been-completed.html

Notícias

Certificações LPI: o caminho para turbinar a sua carreira

Publicado em: 13/10/2017 às 15:50 | leituras |

O Linux Professional Institute (LPI) oferecerá provas de certificação na Latinoware, em Foz do Iguaçu, em outubro, na Poticon, em Natal e no FGSL em novembro. Fique antenado! Este artigo elenca as últimas novidades sobre o LPI.

Blog do maddog: Ambientes de nuvem privada virtual

Publicado em: 06/10/2017 às 14:09 | leituras |

O Subutai é uma solução de nuvem de código aberto, ponto a ponto (P2P), segura e estável, que cria ambientes de nuvem privada virtual (VPC) para usuários finais usando um modelo de nuvem de contêineres como serviço (CaaS). O usuário final pode instalar qualquer tipo de serviço, aplicativo ou software de infraestrutura que desejar nas máquinas em execução nessa nuvem.

Ambientes de nuvem privada virtual

Publicado em: 06/10/2017 às 13:23 | leituras |

O Subutai é uma solução de nuvem de código aberto, ponto a ponto (P2P), segura e estável, que cria ambientes de nuvem privada virtual (VPC) para usuários finais usando um modelo de nuvem de contêineres como serviço (CaaS). O usuário final pode instalar qualquer tipo de serviço, aplicativo ou software de infraestrutura que desejar nas máquinas em execução nessa nuvem.

4Linux abre vagas para Líder Técnico em São Paulo e Brasília

Publicado em: 25/07/2017 às 14:12 | leituras |

A 4Linux — uma empresa líder em soluções Open Source e em práticas DevOps — está procurando profissionais para trabalhar como gerente técnico, que tenha bons conhecimentos em Linux e Softwares Livres. São duas vagas: uma para trabalhar em Brasília e outra para São Paulo.

Seminário sobre gestão de privilégios do Linux dá direito a certificado CPE

Publicado em: 23/05/2017 às 10:35 | leituras |

O evento irá abordar a forte disseminação de sistemas Linux em toda a estrutura de informação e mostrará a importância de técnicos da área serem capazes de identificar rotas, especificar controles de acesso para usuários Linux e monitorar a atividade privilegiada do usuário ao longo da rede de informação e, especialmente, na complexidade da nuvem. Participantes poderão requerer gratuitamente os créditos de CPE (Continuing Professional Education).


Mais notícias

lançamento!

LM 119 | Backup e Restauração




Impressa esgotada
Comprar Digital  R$ 10,90 Digital

  1. Soluti Certificação Digital em busca de especialista Linux

    Publicado em 19/04/2017 às 17:18 | 457888 leituras

  1. Baixe o curso de shell script do Julio Cezar Neves

    Publicado em 07/04/2008 às 19:41 | 440274 leituras

  1. Seminário sobre gestão de privilégios do Linux dá direito a certificado CPE

    Publicado em 23/05/2017 às 10:35 | 374420 leituras

  1. Novo evento "Universidade Livre" será realizado em Belém/PA em 06/05/2017

    Publicado em 28/04/2017 às 11:19 | 224601 leituras

  1. 4Linux abre vagas para Líder Técnico em São Paulo e Brasília

    Publicado em 25/07/2017 às 14:12 | 213598 leituras

  1. ASUS trará tablet com Android para o Brasil

    Publicado em 04/07/2011 às 18:10 | 13395 leituras

  1. Firefox deve se tornar navegador padrão dos computadores da IBM

    Publicado em 02/07/2010 às 15:35 | 9230 leituras

  1. Um repositório git para o Zarafa

    Publicado em 06/02/2012 às 11:50 | 8930 leituras

  1. Lançado o Meego 1.2

    Publicado em 20/05/2011 às 17:17 | 11430 leituras

  1. ONU lança documento com “10 Direitos e Princípios da Internet”

    Publicado em 01/04/2011 às 12:56 | 10356 leituras

whitepapers

mais whitepapers