XIII JORNADA DE ENSINO, PESQUISA E EXTENSÃO – JEPEX 2013 – UFRPE: Recife, 09 a 13 de dezembro. RECONHECIMENTO E SINTETIZAÇÃO DE VOZ COMO ALTERNATIVA PARA SOFTWARE INCLUSIVO Paulo César Florentino Marques1, Alessandro Bezerra Advíncula2, Isledna Rodrigues Almeida3 Introdução O avanço tecnológico traz consigo a inserção maciça de dados em computadores. Os processos manuais estão cada vez menos presentes no nosso dia a dia. Com isso temos várias vantagens no que se refere a armazenamento, recuperação e disseminação de informação. No entanto, nem tudo é benefícios para a população. Se faz necessário pensar na inclusão de pessoas nesse meio, pois existem tecnologias, mas também existem indivíduos que são excluídos por essas tecnologias. É fato que temos grandes avanços tecnológicos no mundo virtual, mas o acesso aos conteúdos digitais está distante do ideal esperado. São diversos fatores que levam a exclusão digital, dentre eles podemos citar: fatores sociais; econômicos; educacionais; fatores de deficiências físicas; além de outros motivos que levam os indivíduos a estarem fora desse avanço. A inclusão é, de fato, um direito de qualquer cidadão, para tanto é necessário a adaptação de várias aplicações de computadores que possibilite o uso por pessoas com limitações, de qualquer tipo, incluindo assim todos que por ventura, venham a usar o software desenvolvido. Recentemente, surge nas áreas de estudo da computação e da ciência da informação a abordagem que estuda o problema apresentado. Denominada de Interação Humano-computador (IHC), é uma área que tende a ser absorvida com intensidade por desenvolvedores e que estuda características multidisciplinares buscando, como objetivo principal, tornar máquinas sofisticadas mais acessíveis no tocante da interação aos seus usuários característicos (CARVALHO, 2003). Para que isso aconteça, o estudo e implementações de interfaces de interação é importante para estabelecimento de padrões utilizáveis por todos os tipos de usuários. Toda a parte do software que tem contato com o usuário é denominada de interface de usuário. Parte a qual o usuário tem acesso direto, e com ela interagem possibilitando a realização de tarefas complexas através da utilização de elementos gráficos, auditivos e físicos. Interface pode ser descrita por software ou hardware (dispositivos de entrada e saída: teclado de computador, mouse ou outros dispositivos) (PRATES & BARBOSA, 2003). Com foco no desenvolvimento de interface para deficientes visuais, este trabalho descreve metodologia de implementação de interface através de reconhecimento e sintetização de voz. Método aplicado na implementação de software para lanchonete a qual apresenta um cardápio digital onde o cliente pode realizar seus pedidos por comandos de voz. Nas próximas seções descrevemos sobre acessibilidade, avaliação de interface de usuário, público-alvo, ambiente de teste, apresentação da aplicação desenvolvida e resultados da aplicação. Materiais e Métodos A. Público-Alvo O projeto desenvolvido tem como público-alvo usuários de lanchonetes que possuam deficiência visual e que possam utilizar o software como um cardápio digital, permitindo que o mesmo efetue pedidos através de comandos de voz ou entradas de teclado e mouse. O fato da aplicação ter como público-alvo deficientes visuais, não afetou no desenvolvimento de elementos gráficos que auxiliam usuários que não possuam esse tipo de deficiência ou que a tenha em menos nível de gravidade. B. Ambiente de Teste Para o desenvolvimento da aplicação foi utilizada a API (Application Programming Interface) Java Speech, esta API foi criada com o objetivo de promover a síntese e o reconhecimento de voz em aplicações Java (MARANGONI & 1 Primeiro autor é bacharelando em Sistemas de Informação na Universidade Federal Rural de Pernambuco, Unidade Acadêmica de Serra Talhada. Fazenda Saco, s/n, Caixa Postal 063, Serra Talhada-PE. E-mail: [email protected] 2 Segundo autor é bacharelando em Sistemas de Informação na Universidade Federal Rural de Pernambuco, Unidade Acadêmica de Serra Talhada. Fazenda Saco, s/n, Caixa Postal 063, Serra Talhada-PE. E-mail: [email protected] 3 Terceiro autor é Professora do Curso de Bacharelado em Sistemas de Informação na Universidade Federal Rural de Pernambuco, Unidade Acadêmica de Serra Talhada. Fazenda Saco, s/n, Caixa Postal 063, Serra Talhada-PE. E-mail: [email protected] XIII JORNADA DE ENSINO, PESQUISA E EXTENSÃO – JEPEX 2013 – UFRPE: Recife, 09 a 13 de dezembro. PRECIPITO, 2006). Além desta API foi utilizado também softwares que possibilitassem a sintetização e o reconhecimento, foi utilizado o IBM ViaVoice que possui comunicação com a API descrita. Para tanto foi utilizado um computador com sistema operacional Windows XP, no qual foi instalado o IBM ViaVoice, o Eclipse (IDE de desenvolvimento Java), e devidamente configurado como descrito abaixo: B.1. Instalação do TTS SDK Segundo Software a ser instalado, é utilizado em conjunto com o anterior e fornece os arquivos de bibliotecas necessários para o desenvolvimento de aplicações que utilizem o TTS Runtime. B.2. Instalação do VVCC Runtime Assim como o TTS Runtime é para a sintetização o VVCC Runtime é para o reconhecimento de voz. É necessário a instalação dele também. B.3. Instalação do IBM ViaVoice SDK O IBM ViaVoice SDK é o conjunto de arquivos necessários para o desenvolvimento de aplicações capazes de reconhecer comandos de voz. B.4. Instalação do SDK com Java Todo o desenvolvimento de aplicações Java se faz necessária a instalação do SDK do Java com essa não seria diferente. Então Instale o SDK e baixe a API do Java Speech. É necessário ainda a configuração de variáveis de ambiente. Inclua junto da CLASSPATH o caminho para a API do Java Speech. B.5. Treinando o IBM ViaVoice É importante ainda treinar o IBM ViaVoice para que ele possa reconhecer as palavras a serem inseridas no sistema via voz. Para isso siga os passos em Opções do IBM ViaVoice que estará no painel de controle do OS. B.6. Implementação de gramática de reconhecimento Para que o reconhecedor funcione de forma adequada é necessário que tenha uma gramática, a qual ele procurará a palavra a partir da pronúncia dela, ou seja, para qualquer comando que seja oferecido pela voz, deve está descrito na gramática. Com essas configurações estamos aptos para o desenvolvimento da aplicação. Podemos definir várias configurações na gramática de reconhecimento da seguinte forma: grammar gramatica; public <comandos> = usuários | ajuda | ir para | examinar; public <direcao> = Esquerda | Direita | Cima | Baixo; public <name> = Computador | Paulo César | Alessandro | Isledna; public <sentence> = {comandos} A partir da gramática é possível reconhecer uma palavra, uma sentença, um nome, ou qualquer definição que esteja descrita na gramática. C.Apresentação da Interface de Usuário Como mencionado anteriormente foi desenvolvido um sistema de atendimento em lanchonete, o qual será utilizado pelos usuários da lanchonete, com a particularidade de oferecer interface para deficientes visuais que vão interagir por meio de comandos de voz. Na tela principal (Figura 1) o cliente tem a opção de escolher entre três ações predefinidas: Fazer pedido, Fechar pedido e Detalhamento da conta, estas opções são informada ao cliente por um sistema de alto-falantes. Ao selecionar a opção fazer pedido, abre-se a tela onde será informado o produto desejado (Figura 2), depois de selecionada a categoria, produto, tamanho e quantidade, ele seleciona a ação desejada: Confirmar, Cancelar, Ler pedido ou Reiniciar pedido. No final do processo, o cliente seleciona fechar pedido, abrindo a tela de fechamento de pedido (Figura 3) e depois de selecionado a modalidade de pagamento (Crédito ou Débito), poderá escolher entre as opções: Confirmar, Cancelar ou Ler pagamento. Resultados e Discussão Os testes realizados com o sistema aconteceram de forma controlada, em local silencioso o qual foi obtido um resultado favorável a utilização de reconhecimento de voz através da API Java Speech. XIII JORNADA DE ENSINO, PESQUISA E EXTENSÃO – JEPEX 2013 – UFRPE: Recife, 09 a 13 de dezembro. No entanto, foi observado uma certa sensibilidade do microfone com relação a ruídos externos, podem atrapalhar na interpretação do comando dependendo do ambiente isso pode ser um fator que possa atrapalhar a execução correta do sistema. Outro fator que é incomodo é a configuração do computador para o funcionamento correto do IBM ViaVoice, ainda é necessário melhorar na facilidade de instalação e configuração do mesmo, apesar de ser muito poderoso no reconhecimento, foi notado também que a interpretação é melhor a partir da voz que inicialmente configurou o sistema para funcionar, além de em alguns momentos deixa de reconhecer. Contudo foram realizados testes suficientes no qual foram obtidos cerca de 98% dos resultados favoráveis, ou seja, em apenas 2% dos testes não conseguimos finalizar o pedido devido algum problema de reconhecimento de voz. Já os testes de eventos de teclado e mouse foram todos favoráveis e conseguindo efetuar o pedido com facilidade. Dessa forma, podemos concluir que a API Java Speech, junto com o IBM ViaVoice acompanhados de eventos de teclado podem sim está presente em aplicações Java tornando-a acessível a qualquer usuário. Referências CARVALHO, José Oscar Fontanini. (2003) “O papel da interação humano-computador na inclusão digital” Transinformação, Campinas, 15 (Edição Especial): 75-89, set/dez., 2003; PRATES, R.O.; BARBOSA, S.D.J. (2003) “Avaliação de Interfaces de Usuário – Conceitos e Métodos”, Anais do XXIII Congresso Nacional da Sociedade Brasileira de Computação. XXII Jornadas de Atualzação em Informática (JAI). SBC 2003, Agosto de 2003; SOUZA, Andrea Poletto; SANTAROSA, Lucila Maria Costi (2003) “Ambientes Digitais Virtuais: Acessibilidade aos Deficiêntes Visuais”, Novas Tecnologias na Educação, V. 1 Nº 1, Fevereiro, 2003; MARANGONI, Josemar Barone.; PRECIPITO, Waldemar Barilli. (2006) “Reconhecimento e Sintetização de Voz usando Java Speech”, Revista Científica Eletrônica de Sistemas de Informação. Ano II, Nº 04, Fevereiro de 2006; Figura 1. Tela principal da aplicação. Figura 2. Tela realizado o pedido. Os comandos de voz, são os mesmos que estão em cada lista de seleção. (Bebida, Lanche, Pizza, Suco, Confirmar, Cancelar, Ler pedido, Reiniciar). Figura 3. Tela de fechar pedido. Os comandos de voz, são os mesmos que estão em cada botão ou lista. (Crédito, Débito, Fechar, Cancelar Fechamento, Ler Pagamento)