Escolar Documentos
Profissional Documentos
Cultura Documentos
101 2427 875
101 2427 875
RESUMO
A dificuldade de dominar o uso dos recursos disponíveis faz com que grande parte das pessoas não utilize
toda capacidade dos computadores. Seja pela falta de adaptação ao ambiente ou pela dificuldade do
entendimento de uma interface complexa. Capacitar as interfaces dos computadores para comunicar-se com
o usuário em sua própria linguagem através do processamento da linguagem natural (PLN) pode ser uma
solução para tais problemas. Este artigo descreve como foi desenvolvido um Chatterbot com habilidade de
reconhecimento e síntese de fala acessível por um navegador Web de voz. O Chatterbot realiza cálculos de
expressões matemáticas com operações de soma, subtração, multiplicação e divisão. A forma como é
interpretada a linguagem natural do usuário e as tecnologias envolvidas são descritas para que seja possível
recriar todo o experimento em outra situação de aplicabilidade, definindo assim um framework de
tecnologias para aplicações Web de voz, dotadas de razoável inteligência.
Palavras-chave: Chatterbot, IA, VXML, XHTML e Reconhecimento de Voz.
1. INTRODUÇÃO
A dificuldade de trabalhar com o conhecimento relacionado à informação em sistemas inteligentes vêm
sendo a bastante tempo alvo de pesquisas pelo meio acadêmico, manipular símbolos que representam
entidades do mundo real. Tornar o computador inteligente ao ponto de ser semelhante a inteligência humana
é algo que parece possível há décadas, no entanto ainda não se conseguiu criar um comportamento dito
inteligente¹ onde existisse capacidade de aprendizado, acúmulo de conhecimento, uso de experiências
passadas, criatividade e expressão semelhante ao cérebro humano. Abordando assim processos cognitivos,
associativos e de raciocínio lógico numa máquina.
Segundo Peirce [1][2], linguagem, comunicação e mídia são partes imprescindíveis à compreensão da
história do homem e sua evolução material e cognitiva, já que dizia que a única coisa que se encontra em
expansão é a mente humana. Em nosso tempo é de extrema evidência que o homem é linguagem [2], mas
nem sempre a comunicação feita por uma determinada linguagem é simples, visto que, podem estar
associadas a eventos fenomenológicos pela percepção do indivíduo, cognição, ou ainda com os meios
tecnológicos[4]. Mostrando que a comunicação Homem-Máquina pode vir a ser complexa e difícil de ser
implementada de forma eficiente. Sendo o processamento da Linguagem Natural (PLN), uma das áreas com
que a Inteligência Artificial tem se preocupado bastante, tentando compreender como se efetua a
comunicação entre as pessoas estudando como criar sistemas computacionais com PLN a partir de
combinações com fatos lingüísticos.
O primeiro sistema que se propôs a conversar com humanos em linguagem natural foi chamado de
ELIZA[3], foi desenvolvido por Weizenbaum (1966) que argumentava ser possível a construção de
máquinas capazes de agir como humanos. ELIZA incentivou o desenvolvimento de máquinas com a
habilidade de “conversar”, criando assim o que se conhece hoje como Chatterbot: um programa de
computador, que na maioria das vezes, procuram por palavras-chave dentro da entrada fornecida pelo
usuário e dá uma resposta de acordo com um padrão associado a palavras-chave com um dado padrão de um
banco de dados. Conversar com uma máquina em linguagem natural não é algo tão simples, mas com a
simplificação encontrada em muitos Chatterbots, consegue-se conversar através de textos digitados no
teclado e estabelecer um casamento de padrão simulando uma conversa entre humano e máquina.
Já a tecnologia de reconhecimento de voz tornou-se eficiente apenas em meados dos anos 90, consolidando-
se comercialmente e possibilitando sua utilização, mas sem possibilitar a conversação em linguagem natural
com um humano. Recentemente uma das mais novas aplicações de reconhecimento de voz disponíveis são
os Navegadores Web de Voz, onde o navegador reconhece palavras faladas pelo usuário sem necessitar
previamente de algum tipo de treinamento de voz, criando assim uma interface de comunicação que pode ser
chamada de multimodal (texto e voz), proporcionando uma nova forma de acesso à informação, auxiliando
em diversas atividades como, por exemplo, ensino a distância, dando ao usuário um maior grau de interação
com a página ou ajudando pessoas com deficiência visual a interagirem por voz em páginas Webs.
A principal contribuição deste trabalho é criar um Chatterbot que interage com o usuário por meio de
reconhecimento de voz do usuário e capacidade de pronuncia do Navegador Web, definindo um framework
de tecnologias para aplicações que necessitem síntese e reconhecimento de fala na Web, dando uma visão
geral sobre cada tecnologia utilizada. O projeto que possibilitou a criação deste artigo terminou com a
criação de uma página Web onde é possível apenas com a voz realizar cálculos de expressões matemáticas
simples envolvendo as quatro operações básicas: soma, subtração, multiplicação e divisão.
A seção 2 trata da linguagem AIML –, Artificial Intelligence Markup Language seu funcionamento e
aplicações. A seção 3 trata de interfaces multimodais na Web destacando a interação entre XHTML +
VoiceXML. A seção 4 cita trabalhos relacionados. A seção 5 descreve a metodologia de desenvolvimento do
Chatterbot. A seção 6 cita os resultados obtidos. A seção 7 cita a conclusão. Por fim são expostas as
referências utilizadas.
____________________________________________________________
¹ Diversas técnicas de Sistemas Inteligentes como: Indução de Regras e Árvore de Decisão, Lógica Fuzzy, Redes Neurais, Sistemas
Híbridos, Mineração de Dados, Algoritmos Genéticos entre outros possuem certo tipo de inteligência quando se pensa em
características isoladas de atividades que o cérebro humano executa. No entanto nenhuma dessas técnicas consegue abordar
exatamente tudo o que o cérebro humano realiza. Quando essas técnicas são combinadas há dificuldade na integração de diversas
abordagens para representação e manipulação do conhecimento.
2. ARTIFICIAL INTELLIGENCE MARKUP LANGUAGE
AIML[6] (Artificial Intelligence Markup Language) é uma linguagem de marcação baseada em XML[5],
desenvolvida por Richard Wallace. O seu funcionamento assemelhasse a qualquer outra linguagem de
marcação, ou seja, uma codificação padrão da linguagem e uma aplicação que interpreta esse código. O que
diferencia a AIML de outras linguagens de marcação é o seu propósito: criar uma linguagem padrão para que
agentes de processamento de linguagem natural representem o seu conhecimento.
Todo Chatterbot que é baseado em AIML possui um módulo interpretador AIML, que é responsável por
associar uma entrada com uma resposta da base de conhecimento (ver figura 1), optou-se nesse projeto por
utilizar o interpretador conhecido como Program D [7] que é implementado em Java.
O funcionamento é basicamente um casamento de padrões do que foi digitado pelo usuário e do que o banco
de conhecimento possui, o princípio é bem semelhante ao funcionamento de ELIZA, no entanto a linguagem
AIML possui um conjunto de tags (ver tabela 1) que possibilitam uma maior flexibilidade e melhoria na
contextualização da entrada realizada pelo usuário.
Cada objeto AIML tem tanto lógica quanto uma estrutura física. A estrutura física é composta por unidades
chamadas: <topic> e <category> (ver tabela 1 e 2). Todas as outras tags aparecem dentro de <category>, mas
pode ser que <category> apareça ou não dentro da tag <topic>, fazendo que uma ou mais categorias estejam
relacionas a um tópico pré-definido. As demais tags formam a parte lógica.
TAG FUNÇÂO
<STAR> Substitui o conteúdo capturado por um wildcard (*) para seu lugar.
<SYSTEM> Instrui o interpretador AIML a transmitir o seu conteúdo para o sistema de
interpretador de comando da máquina local em que o interpretador AIML está
executando.
<THAT> Tentar simular uma linha de raciocínio do chatterbot baseado na sua última resposta.
<THINK> Permite que as tags que estejam dentro dela não sejam exibidas para o usuário como
resposta.
<TOPIC> Objeto AIML que contém uma ou mais categorias dentro dele.
* (wildcard) Um das grandes tags do AIML, o wildcard (*) funciona como um coringa dentro do
<PATTERN>.
3.1 XHTML
A linguagem HTML vem em constante evolução para atender a requisitos novos de tecnologias e do usuário,
a próxima geração após o HTML 4 é conhecido como XHTML (eXtend Hyper-Text Markup Language), que
obteve esse nome em vez de HTML 5 devido a reformulação do HTML 4 a partir das premissas de
XML(eXtend Markup Language. O padrão XHTML é um novo padrão da Web, oferecendo portabilidade
máxima independente de plataforma e navegadores[26].Criando assim uma linguagem muito mais rigorosa
que a HTML 4 por diferenças como:
Todas as tags e atributos devem estar em letra minúsculas, tags como <HTML> são consideradas
inválidas.
Todas tags devem ter fechamento, até mesmo <br> e <p>
Todas as tags devem seguir a ordem de aninhamento conforme foram abertas.
Todo documento XHTM tem que começar com uma especificação do tipo de documento.
Vale ressaltar que a linguagem XHTML foi desenvolvida para funcionar até mesmo em PDAs, Televisores,
celulares, máquinas de jogos e até mesmo relógios. Podem-se encontrar mais detalhes sobre XHTML no site
da organização W3C[10].
4. TRABALHOS RELACIONADOS
Marieta Gâta[19] analisa aplicações de uma forma genérica de reconhecimento de voz, modelando em casos
de uso o problema de como estruturar uma aplicação com interação de voz. Tal trabalho não trata da
interação entre usuário e máquina num nível de conversação semelhante ao de um chatterbot, criando apenas
menus para navegação, não abordando em totalidade as tecnologias que foram utilizadas para completa
solução do problema, fazendo uma análise apenas sobre o VXML, mas que ajudaram na elaboração deste
trabalho por apresentar uma modelagem de aplicações com interação por voz.
Coniam[20] faz uma análise sobre as tecnologias de chatterbots disponíveis, traça algumas limitações e
realiza uma análise de interfaces, no entanto a discussão da interface mantém-se apenas na interação por
texto, embora seja citado que há chatterbots com reconhecimento de voz.
Silva[21], apresenta uma solução para acesso a conteúdos Web através de uma interface de voz bidirecional,
explicando como construir uma solução que funciona com acesso também através da PSTN, no entanto é
criada uma solução onde há apenas a formulação de menus, onde há pouca inteligência na solução
apresentada.
Pode-se observar que os trabalhos citados não tratam como uma visão unificada o reconhecimento e síntese
de voz relacionada à simulação de conversação inteligente com o usuário, sendo apenas criados caminhos
dentro do formulário VXML para realizar algumas ações simples, diferentemente do que é proposto neste
trabalho, onde há certa independência do tratamento do que é reconhecido pelo navegador de voz e o que é
respondido ao usuário, devido à comunicação e interpretação feita pelo chatterbot, sendo o VXML apenas a
porta de entrada dos dados.
5. METODOLOGIA
Inicialmente criou-se uma interface Web desenvolvida em flash utilizando o servidor Apache-tomcat 6,
juntamente com o interpretador AIML conhecido por Program D, v4.1.5. A base de conhecimento utilizada
foi a mesma do projeto ALICE, que conta com cerca de 22.000 padrões de perguntas. Foi utilizado uma
página em JSP para realizar a comunicação entre a interface feita em flash (servidor Apache-tomcat) e o
interpretador AIML(servidor do Program D), que troca informações via HTTP instanciando uma classe em
JAVA que filtra o resultado obtido do interpretador AIML e exibe o resultado para o usuário (ver figura 2).
<category>
<pattern>CALCULATE THIS *</pattern>
<template>
Oh, that's easy: = <system>cmd/C java calculadora
<star/></system>
</template>
</category>
Tabela 5 - Exemplo
Onde “calculadora” é uma classe Java que passa a ser uma extensão do conhecimento do Program D,
podendo-se criar muitas outras extensões ao chatterbot que gerem relatórios ou faça alguma outra função
para qualquer outra atividade.
6. RESULTADOS OBTIDOS
O resultado obtido resume-se em um chatterbot com síntese reconhecimento de fala na Internet que calcula
expressões matemáticas simples, podendo a sua tela ser vista na figura 4. A arquitetura neste projeto pode ser
usada como exemplo de framework para outras aplicações outras finalidades.
7. CONCLUSÃO
O campo de reconhecimento de fala e inteligência artificial são fascinantes e ao mesmo tempo desafiadores,
buscando-se sempre novos métodos que tragam os melhores resultados possíveis na sinergia entre essas duas
áreas. Por isso acreditamos que este artigo acrescenta um pequeno passo à comunidade acadêmica por
mostrar como criar uma interface multimodal na Web, com ferramentas gratuitas, definindo praticamente
toda etapas necessárias do desenvolvimento.
Em trabalhos futuros pretende-se avaliar o nível de acerto da pronúncia capturada dos usuários e enviado ao
chatterbot. Pretende-se ainda avaliar outros navegadores de voz e tentar adaptar o reconhecimento de voz
para algumas palavras da língua portuguesa através da especificação PLS (Pronunciation Lexicon
Specification)[24] e do alfabeto de fonemas disponibilizados pelo IPA- Institute[25].
REFERÊNCIAS
[1] Santaella, Lucia (1996). Cultura das mídias. 4a. ed. 2004. São Paulo: Experimento.
[2] Silvana Drumond Monteiro, Semiótica peirciana e a questão da informação e do conhecimento, 2007-12-
13, Departamento de Ciência da Informação - UFSC
[3] Weizenbaum, Joseph (January 1966), "ELIZA - A Computer Program For the Study of Natural Language
Communication Between Man And Machine", Communications of the ACM 9
[4] Monteiro ,Silvana Drumond. Semiótica peirciana e a questão da informação e do conhecimento, 2007.
http://www.periodicos.ufsc.br/index.php/eb/article/view/369
[5] XML Events specification: http://www.w3.org/TR/xml-events/
[6] ALICE Bot ,:http://www.alicebot.org/
[7] Porgram D: http://aitools.org/Program_D
[8] XHTML+Voice 1.2 Specification: http://www.voicexml.org/specs/multimodal/x+v/12/spec.html
[9] VoiceXML 2.0 specification: http://www.w3.org/TR/voicexml20/
[10] What is XHTML? section in XHTML 1.0 The Extensible HyperText Markup Language (Second
Edition) A Reformulation of HTML 4 in XML 1.0 W3C Recommendation 26 January2000.
http://www.w3.org/TR/xhtml1/#xhtml
[11] Tina Holmboe. "XHTML—Myths and Reality". The Developer’s Archive. http://www.dev-
archive.net/articles/xhtml.html. Retrieved on 2008-12-29. " Since the design goals of XML itself partially
mirrored those of the original HTML, it was logical for work to begin on formulating an XML–based
markup language"
[12] Navegador Opera: http://www.opera.com/download/
[13] XHTML 1.0 - specification (using the XHTML 1.0 - Transitional DTD):
http://www.w3.org/TR/xhtml1/
[14] “Semantic Interpretation for Speech Recognition ", Luc Van Tichelen. W3C Working Draft, April
2003,http://www.w3.org/TR/2003/WD-semantic-interpretation-20030401/
[15] Speech Synthesis Markup Language Version 1.0 ". Burnett, Walker and Hunt. W3C Candidate
Recommendation, December 2003, http://www.w3.org/TR/2003/CR-speech-synthesis-20031218/
[16] "Speech Recognition Grammar Specification Version 1.0". Hunt and McGlashan. W3C Proposed
Recommendation, December 2003.http://www.w3.org/TR/2003/PR-speech-grammar-20031218/
[17] S. Oviatt. Multimodal Interfaces. In: J. Jacko and A. Sears (eds) The Human-Computer Interaction
Handbook. Mahwah, NJ: Lawrence Erlbaum and Associates, 2002.
[18] WM Watanabe, AT Neto, AG da Silva Filho, Desenvolvimento de componentes de interfaces
multimodais ricas para a Web utilizando X+V e Dojo Widgets, Instituo de Matemática – USP São Paulo.
[19] Gâta, Marieta, SPEECH RECOGNITION APPLICATION USING VOICE XML, Proceedings of the
International Conference on Theory and Applications of Mathematics and Informatics - ICTAMI 2004,
Thessaloniki, Greece.
[20] CONIAM , DAVID, Evaluating the language resources of chatbots for their potential in English as a
second language, European Association for Computer Assisted Language Learning. 2008. DOI:
10.1017/S0958344008000815 Printed in the United Kingdom.
[21] Silva, Telmo Eduardo. Interfaces de voz para a Web, Instituto Politécnico de Castelo Branco.
[22] J. Axelsson, C. Cross, J. Ferrans, G. McCobb, T. V. Raman, and L. Wilson. XHTML+Voice Profile 1.2.
Technical report, March 2004. Available online http://www.voicexml.org/specs/multimodal/x+v/12.
[23] Navegador Mozzila Firefox: http://br.mozdev.org/
[24] Pronunciation Lexicon Specification (PLS) Version 1.0, P. Baggia, Editor. World Wide Web
Consortium, 12 December 2007. This version of the PLS specification is http://www.w3.org/TR/2007/CR-
pronunciation-lexicon-20071212/ and is a work in progress. The latest version of PLS is available at
http://www.w3.org/TR/pronunciation-lexicon/.
[25] The International Phonetic Alphabet, J. Esling. This table of IPA characters in Unicode is
available.http://web.uvic.ca/ling/resources/ipa/charts/unicode_ipa-chart.htm.
[26] Tanenbaum, Andrew S. Redes de Computadores. Editora Campus, 4ª edição, 2003.