Thesis - the Spoken Language Systems Lab - INESC-ID
Transcrição
Thesis - the Spoken Language Systems Lab - INESC-ID
Fala Comigo: Agente Virtual Conversacional e Emocional Saulo Tavares Rego Dissertação para obtenção do Grau de Mestre em Engenharia Informática e de Computadores Júri Presidente: Professora Maria dos Remédios Vaz Pereira Lopes Cravo Orientador: Professor João Paulo da Silva Neto Co-Orientador: Professora Maria Luísa Torres Ribeiro Marques da Silva Coheur Vogal: Professor Rui Filipe Fernandes Prada Outubro de 2010 Página i Agradecimentos 2 Gostaria de agradecer a todos do grupo L F, em especial a: João Paulo Neto, cuja orientação foi essencial e a disponibilidade impecável. David José Rodrigues, Filipe Martins e Márcio Viveiros, pela ajuda prestada. Miguel Bugalho, Tiago Luís e Silvana Abalada, pela boa disposição e discussão de ideias. Agradeço a todos os meus amigos, em especial ao Alexandre Paulo, Bruno Coelho, Hugo Terças e Ricardo Nunes por terem sido os mais presentes, sempre bem-humorados, os melhores. Agradeço com particular carinho à Carolina Pimentel, Graça Eleutério e Tânia Rosa pela participação na minha vida que com certeza não seria a mesma sem elas. Agradeço ao Filipe Gonçalves pela compreensão e ajuda nos momentos mais difíceis. Agradeço à minha tia Urânia, pelo permanente interesse e preocupação. Agradeço aos meus pais e irmãos, pelo incessante apoio, valores, motivação, bem como segurança e optimismo transmitidos. Finalmente, desejo agradecer a todas as pessoas que não foram aqui mencionadas, mas que directa ou indirectamente contribuíram para a concretização deste trabalho. Saulo Rego. Página i Resumo Os embodied conversational agents (ECAs) proporcionam um poderoso meio de comunicação entre humanos e máquinas através da união de gestos, expressão facial/emocional e fala. A interacção caraa-cara viabiliza o uso de actos de comunicação pragmáticos, tais como ênfase nas frases, tomada de vez, representação visual de emoções, ou entoação, conseguidos através de canais verbais ou não, que servem para potenciar a credibilidade, confiança e o próprio envolvimento dos seus utilizadores. Esta dissertação insere-se na área de investigação dos ECAs e sumariza um projecto que teve por objectivo melhorar a plataforma de diálogo DIGA (Dialogue Assistance), que tem vindo a ser 2 desenvolvida no Laboratório de Língua Falada (L F) do Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento (INESC-ID) em Lisboa, e evoluir a sua estrutura para um agente conversacional e emocional. O trabalho iniciou-se com um estudo na área, seguido de um conjunto de desenvolvimentos, nomeadamente a criação de um conjunto composto por sete estados emocionais credíveis e a evolução de um módulo comportamental que passou a usar esses e outros estados em tempo-real. Para testar esse progresso foram elaboradas interacções e vídeos demonstração que foram usados e avaliados por dezenas de utilizadores. Como resultado deste trabalho surgiu uma plataforma evoluída e reestruturada, e um agente conversacional e emocional, mais natural e cativante, que de momento pode ser usado com três tipos de personalidade, e que se encontra disponível para responder a questões sobre a Custódia de Belém. Palavras-chave: Agentes conversacionais; Expressividade; Comportamento emocional; Personalidade; Naturalidade; Realismo. Página iii Abstract Embodied conversational agents (ECAs) provide a powerful means of communication between humans and machines through the union of gestures, facial/emotional expression and speech. The interaction face-to-face enables the use of pragmatic acts of communication, such as emphasis in the sentences, turn taking, visual representation of emotions, or intonation, achieved through verbal or nonverbal channels, which serve to enhance the credibility, trust and even the involvement of its users. This work fits in the research area of ECAs and summarizes a project that aimed to improve the DIGA (Dialogue Assistance) framework, which has been developed in the Spoken Language Laboratory 2 (L F) of the Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento (INESC-ID) in Lisbon, and evolve its structure to a conversational and emotional agent. The work started with a study, followed by a series of developments, including the creation of seven credible emotional states, and the evolution of a behavioral module that now uses these and other states in real-time. To test that progress real-time interactions and demonstration videos were prepared and later used and evaluated by dozens of users. As a result of this work emerged a new restructured and evolved framework, and an emotional and conversational agent, more natural and engaging, which for now can be used with three types of personality, and is available to answer questions about the Custódia de Belém. Keywords: Conversational agents; Expressiveness; Emotional behavior; Personality; Naturalness; Realism. Página v Índice 1. 2. 3. 4. Introdução ..............................................................................................................................................................................1 1.1. Agentes artificiais ......................................................................................................................................................1 1.2. Objectivos propostos ...............................................................................................................................................5 1.3. Organização da dissertação ..................................................................................................................................5 Estado da arte .......................................................................................................................................................................7 2.1. Caracterização de emoções ...................................................................................................................................7 2.2. Plataforma DIGA ........................................................................................................................................................9 2.3. MagiCster e Greta .................................................................................................................................................. 11 2.4. Galatea ........................................................................................................................................................................ 14 2.5. Olga.............................................................................................................................................................................. 16 2.6. REA ............................................................................................................................................................................... 18 2.7. MACK........................................................................................................................................................................... 20 2.8. Análise crítica e outros projectos ..................................................................................................................... 22 DIGA ....................................................................................................................................................................................... 25 3.1. Face .............................................................................................................................................................................. 25 3.2. Gestor de diálogo e QA@L2F ............................................................................................................................ 28 Desenvolvimentos ............................................................................................................................................................ 33 4.1. 4.1.1. 4.2. Face .............................................................................................................................................................................. 33 Caracterização emocional .............................................................................................................................. 34 Gestor de diálogo e QA@L2F ............................................................................................................................ 43 4.2.1. Agente comportamental ................................................................................................................................ 44 4.2.2. Transição entre estados emocionais .......................................................................................................... 46 4.2.3. Intensidade emocional .................................................................................................................................... 49 Página vii 5. 6. 4.2.4. Declínio emocional ........................................................................................................................................... 50 4.2.5. Personalidade...................................................................................................................................................... 51 4.2.6. Outros comportamentos ................................................................................................................................ 53 Resultados e avaliação.................................................................................................................................................... 57 5.1. Emoções ..................................................................................................................................................................... 58 5.2. Duarte ......................................................................................................................................................................... 62 Conclusões .......................................................................................................................................................................... 71 6.1. Estado actual ............................................................................................................................................................ 71 6.2. Trabalho futuro........................................................................................................................................................ 73 6.3. Observações finais ................................................................................................................................................. 74 Bibliografia ..................................................................................................................................................................................... 75 Apêndice A .................................................................................................................................................................................... 77 A.1. Lista completa de AUs do sistema FACS ....................................................................................................... 77 A.2. Mapeamento de AUs e músculos .................................................................................................................... 78 Apêndice B ..................................................................................................................................................................................... 81 B.1. Lista completa de músculos ............................................................................................................................... 81 B.2. Ficheiros VHML........................................................................................................................................................ 83 Apêndice C .................................................................................................................................................................................... 87 C.1. Questionário da primeira fase de avaliação ................................................................................................. 87 C.2. Diálogos dos vídeos de interacção (Questionários A, B e C) ................................................................ 88 C.3. Questionário (A, B e C) da segunda fase de avaliação ............................................................................ 92 Página viii Lista de figuras Figura 1. Representação visual da AU1. ................................................................................................................................8 Figura 2. Arquitectura da plataforma de diálogo DIGA. .................................................................................................9 Figura 3. Face. ............................................................................................................................................................................... 10 Figura 4. Duarte. .......................................................................................................................................................................... 11 Figura 5. Greta. ............................................................................................................................................................................. 12 Figura 6. Dinâmica emocional para o diálogo anterior. .............................................................................................. 13 Figura 7. Configuração dos módulos do Galatea. .......................................................................................................... 15 Figura 8. FSM. ............................................................................................................................................................................... 15 Figura 9. Olga. .............................................................................................................................................................................. 17 Figura 10. REA. ............................................................................................................................................................................. 18 Figura 11. Arquitectura da REA. ............................................................................................................................................ 19 Figura 12. MACK. ......................................................................................................................................................................... 21 Figura 13. Arquitectura do MACK. ....................................................................................................................................... 21 Figura 14. BEAT. ........................................................................................................................................................................... 21 Figura 15. GUI do Face. ............................................................................................................................................................. 27 Figura 16. Crescimento linear garantido por um valor de slope igual a 1. .......................................................... 30 Figura 17. Componentes da DIGA afectados pelo desenvolvimento do trabalho. .......................................... 33 Figura 18. Anger. ......................................................................................................................................................................... 35 Figura 19. Disgust. ...................................................................................................................................................................... 36 Figura 20. Fear. ............................................................................................................................................................................. 38 Figura 21. Joy. ............................................................................................................................................................................... 39 Figura 22. Sadness. ..................................................................................................................................................................... 40 Figura 23. Surprise. ..................................................................................................................................................................... 42 Figura 24. Suspicion. .................................................................................................................................................................. 43 Figura 25. Máquina de estados do nível de comportamento básico..................................................................... 44 Figura 26. Máquina de estados do nível de comportamento emocional. ........................................................... 45 Figura 27. Dinâmica emocional do Duarte. ...................................................................................................................... 49 Figura 28. Declínio emocional para uma taxa de 0.3.................................................................................................... 51 Página ix Figura 29. Idade e sexo dos interrogados do questionário da primeira fase. .................................................... 58 Figura 30. Profissão dos interrogados do questionário da primeira fase. ........................................................... 58 Figura 31. Resultados da emoção anger (primeiro vídeo em cima; segundo vídeo em baixo). ................. 59 Figura 32. Resultados da emoção suspicion. ................................................................................................................... 59 Figura 33. Resultados da emoção joy. ................................................................................................................................ 59 Figura 34. Resultados da emoção disgust (primeiro vídeo em cima; segundo vídeo em baixo). .............. 60 Figura 35. Resultados da emoção surprise. ...................................................................................................................... 60 Figura 36. Resultados da emoção sadness. ...................................................................................................................... 60 Figura 37. Resultados da emoção scared (primeiro vídeo em cima; segundo vídeo em baixo). ................ 61 Figura 38. Idade e sexo dos interrogados do questionário A da segunda fase. ............................................... 62 Figura 39. Profissão dos interrogados do questionário A da segunda fase. ....................................................... 63 Figura 40. Resultados de parte da interacção onde predomina a emoção joy. ................................................ 63 Figura 41. Resultados de partes da interacção onde predomina a emoção suspicion. ................................. 63 Figura 42. Resultados de partes da interacção onde predomina a emoção anger. ......................................... 64 Figura 43. Resultados de partes da interacção onde predomina a emoção disgust. ...................................... 64 Figura 44. Personalidade e naturalidade percebidas pelos interrogados do questionário A da segunda fase.................................................................................................................................................................................................... 65 Figura 45. Idade e sexo dos interrogados do questionário C da segunda fase................................................. 66 Figura 46. Profissão dos interrogados do questionário C da segunda fase. ....................................................... 66 Figura 47. Resultados de parte da interacção onde predomina a emoção joy. ................................................ 67 Figura 48. Resultados de partes da interacção onde predomina a emoção sadness. .................................... 67 Figura 49. Resultados de parte da interacção onde predomina a emoção surprise. ...................................... 68 Figura 50. Resultados de parte da interacção onde predomina a emoção fear................................................ 68 Figura 51. Personalidade e naturalidade percebidas pelos interrogados do questionário C da segunda fase.................................................................................................................................................................................................... 68 Página x Lista de tabelas Tabela 1. Emoções e AUs correspondentes (Pelachaud, 2003). ..................................................................................8 Tabela 2. Parte da lista completa de AUs do FACS (Pelachaud, 2003). ....................................................................8 Tabela 3. Saída do gestor de diálogo para o exemplo anterior. .............................................................................. 18 Tabela 4. Interpretação funcional das entradas relativas à tomada de vez. ........................................................ 20 Tabela 5. Funções de saída. .................................................................................................................................................... 20 Tabela 6. Estratégias e métodos para colecção de dados. ......................................................................................... 57 Tabela 7. Lista completa de AUs do sistema FACS. ....................................................................................................... 77 Página xi Lista de acrónimos AU Action Unit APML Attention Profiling Markup Language DIGA Dialogue Assistance ECA Embodied Conversational Agent FACS Facial Action Coding System GUI Graphical User Interface INESC-ID Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento 2 LF Laboratório de Língua Falada MNAA Museu Nacional de Arte Antiga VHML Virtual Human Markup Language Página xiii 1. Introdução A evolução de um sistema de diálogo para um ECA com comportamento emocional proporciona um novo grau de entusiasmo e riqueza interactiva que origina um importante progresso na comunicação entre sistemas e utilizadores. Com base nesta forte afirmação encontrou-se um lugar para esta dissertação. O objectivo principal deste trabalho foi estender um sistema de diálogo que tem vindo a ser 2 produzido no L F/INESC-ID, Lisboa. Pretendeu-se melhorar a plataforma DIGA e tornar o sistema mais realista através da incorporação de comportamentos e emoções. No arranque do projecto a plataforma em causa não contemplava quaisquer funcionalidades relacionadas com personalidade, comportamento e estados emocionais – o resultado era um sistema pouco natural, monótono e com o qual o utilizador fracamente se identificava. Nesse sentido, a evolução da DIGA (Martins, 2008) para um agente conversacional e emocional, foi um passo lógico para assegurar o seu posicionamento a um nível superior de qualidade. A incorporação de conceitos e características dos ECAs e sistemas emocionais constituiu o avanço nesse sentido. Este capítulo fala sobre o tema onde assenta esta dissertação. 1.1. Agentes artificiais A ideia da existência de agentes artificiais inteligentes remonta-nos às primeiras histórias de ficção científica onde os robôs existiam para auxiliar os humanos. Efectivamente, de todos os ramos da Inteligência Artificial, os agentes artificiais inteligentes são os mais presentes na resolução de problemas do utilizador comum. Observe-se o significado de agente num dicionário de língua portuguesa: “O que opera ou é capaz de operar.” Página 1 Um sistema pode ser encarado como um agente artificial inteligente quando o mesmo está apto a realizar tarefas, funcionando num contexto mais ou menos restrito que pode ou não contemplar outros agentes. Num ambiente imprevisível e em constante mudança, como o mundo real, os agentes artificiais são continuamente confrontados com novas condições, requisitos de qualidade e tipo de soluções que proporcionam. Como consequência disso o seu desenho é sempre limitado de alguma forma. Os embodied agents são um caso particular de agentes inteligentes que têm forma física ou virtual. Um conversational agent é um agente que tem a capacidade de conversar. Da combinação e evolução de ambos surgiram os ECAs, que resultam da transposição da riqueza interactiva entre humanos para a interacção entre humanos e máquinas. A investigação na área dos agentes virtuais provou que os utilizadores preferem indicadores visuais do estado interno de um agente virtual a uma verbalização desse estado, e demonstrou o elevado valor da existência de canais adicionais para comunicação não verbal (Marsi & van Rooden, 2007) – que pode ser conduzida paralelamente a outras tarefas sem que ocorra distracção dos utilizadores, verificando-se pelo contrário um aumento do entusiasmo com a própria interacção. Também se concluiu que o uso de ECAs melhora a capacidade dos utilizadores recordarem informação trocada no contexto de uma interacção (Beun, de Vos, & Witteman, 2003) e constatou-se que a eficácia de um agente está bastante dependente da sua capacidade de criar no utilizador o efeito de suspensão da descrença (Mancini, Hartmann, & Pelachaud, 2004). Intimamente ligada ao alcance do efeito referido e a toda a dimensão social dos ECAs, a representação emocional surge portanto como uma poderosa ponte entre a máquina e o utilizador na concretização de uma interacção mais inteligível e credível. Todas estas descobertas inspiraram a evolução de sistemas aborrecidos, pouco user-friendly, inexpressivos e consequentemente pouco cativantes, para sistemas com os quais os utilizadores se identificam, confiam e se envolvem. Um agente computacional percepciona e age num determinado contexto/ambiente, sendo as suas decisões por isso baseadas num modelo computacional que depende da complexidade do mundo que o rodeia, mas também do desempenho que se pretende obter. Os agentes emocionais são necessariamente mais elaborados porque se baseiam num modelo computacional mais sofisticado, visto que se inserem num ambiente tradicionalmente mais complexo e a credibilidade é um conceito muito exigente. Página 2 Tendencialmente esses agentes incluem quatro componentes essenciais: Um método para interpretar estímulos (entrada); Um modelo computacional de emoções; Um meio de direccionar o comportamento e acções adoptadas (resultantes do estado emocional); Um método para expressar o estado emocional (saída). Interpretação da envolvente Através de um conjunto de sensores os estímulos de um agente provêm de dois meios: Externo (ambiente) – Acções de outros, acontecimentos no mundo, etc; Interno (próprio estado) – Sentimentos como cansaço e aborrecimento. O sistema interpreta os estímulos considerando sempre o seu estado emocional actual e, no caso de existir, a sua personalidade. Actualmente alguma pesquisa tem destacado o conceito de atenção, que em termos práticos se traduz na preferência por alguns estímulos em detrimento de outros. Modelo Emocional Um agente emotivo tem necessariamente um estado emocional interno que vai sendo actualizado segundo os eventos que lhe influenciam o comportamento. É importante distinguir estado emocional de personalidade, cuja natureza é mais duradoura. Aliás, se considerada na implementação do agente, a personalidade influencia as suas emoções e comportamento. São vários os modelos de personalidade que capturam os traços e tendências que distinguem as pessoas, tendo-se curiosamente concluído que na inexistência de personalidade a diferença comportamental entre duas pessoas é mínima. Para haver um estado emocional é fulcral ter-se primeiro bem definido um modelo computacional de emoções – cuja base é geralmente um dos modelos cognitivos e psicológicos já existentes e bem fundamentados. A variedade desses modelos e a escolha de um deles reflectir-se-á sempre em implementações computacionais diferentes, logo variadas formas de alcançar o mesmo objectivo – credibilidade. Os extremos dessas abordagens podem-se distinguir como modelos: Página 3 Superficiais – Menor complexidade (scripting); Profundos – Maior complexidade (simulação dos processos bioquímicos do cérebro). Habitualmente a maioria das escolhas cai numa complexidade intermédia – entre ambas. Comportamento adoptado Assim que a computação do estado emocional está feita, o mesmo tem efeito sobre as acções a realizar. Uma vez que um observador externo não tem acesso ao estado interno do agente, só as acções observáveis lhe irão permitir perceber esse estado. O método que decide o comportamento adoptado pelo sistema pode variar desde scripting probabilístico a um planeamento elaborado. No primeiro caso o agente pode possuir uma lista de condições emocionais que geram acções – abordagem mais simples. No segundo caso o agente pode ter objectivos a longo prazo, atribuir prioridades a estes, reflectir sobre a sua utilidade e usar algoritmos que determinam qual o melhor percurso (acções) a tomar – abordagem mais profunda. Expressão das emoções Como decidir e tomar acções não chega para a criação de um agente sintético credível, a execução das acções deve exprimir convincentemente o seu estado emocional. É de extrema importância que todas as emoções sejam bem representadas, já que uma representação emocional fraca pode originar uma identificação emocional errada e consequentemente uma pior interacção. É através da expressão das emoções (saída) que o agente ganha vida. Naturalmente nada disto teria interesse se não tivesse uma forte aplicação prática. A utilização de ECAs e sistemas emocionais tem estado cada vez mais presente nas mais diversas áreas, nomeadamente: Cultura; Educação; Entretenimento; Governo; Saúde; Vendas. Comportando-se por exemplo: Página 4 Ao nível de educação como explicadores; Ao nível cultural como quiosques informativos; Ao nível do entretenimento como contadores de histórias. 1.2. Objectivos propostos Relativamente à plataforma DIGA, no arranque da fase de desenvolvimento pretendia-se aproveitar de forma eficaz as potencialidades da cara virtual que a plataforma já possui e produzir numa primeira fase um conjunto de estados emocionais, tais como tristeza e felicidade, que seriam posteriormente usados em tempo real. Numa segunda fase ambicionava-se a implementação de um caminho lógico para inferir e circular informação emocional/comportamental e também a concretização de um mecanismo que possibilitasse uma transição natural entre as várias emoções criadas na primeira fase, coerente com o progresso da interacção e o teor do próprio diálogo. Numa terceira fase pretendia-se elaborar um conjunto de padrões diferentes de comportamento (tipos de personalidade) que pudessem ser facilmente seleccionados e permitissem a observação de comportamentos distintos em interacções semelhantes. Esse mecanismo seria construído contemplando a possibilidade de se criar facilmente novas personalidades. Finalmente, numa quarta fase, esperava-se verificar e provar junto dos utilizadores uma clara diferença entre personalidades, bem como avaliar a naturalidade e eficiência do trabalho produzido. Para isso seria criado um cenário demonstrativo que, sendo cuidadosamente feito, iria fazer o sistema oscilar entre vários estados emocionais – dependentes da personalidade. Partindo-se desse cenário preparar-se-iam interacções em tempo-real com o objectivo de exemplificar o comportamento geral do sistema e inferir, por exemplo, a correcta percepção de emoções e do tipo de personalidade do agente pelos potenciais utilizadores. 1.3. Organização da dissertação Esta dissertação encontra-se dividida em seis capítulos: Introdução (Capítulo 1); Página 5 Estado da arte (Capítulo 2); DIGA (Capítulo 3); Desenvolvimentos (Capítulo 4); Resultados e avaliação (Capítulo 5); Conclusões (Capítulo 6). Neste Capítulo 1 apresentou-se uma visão geral do tema dos agentes virtuais, com ênfase nos ECAs e nos agentes emocionais, abordando-se as vantagens destes sistemas e as suas principais características. Falou-se também nos objectivos propostos para o trabalho. No Capítulo 2 expõe-se um grupo de projectos envolvidos neste tema e mostram-se as suas particularidades de principal interesse para o projecto. Nesse capítulo também se fala pela primeira vez da plataforma onde assentou todo o desenvolvimento e, por fim, faz-se uma avaliação crítica do material estudado. No Capítulo 3 são abordadas com mais pormenor as componentes da arquitectura da plataforma DIGA essenciais para o desenvolvimento efectuado, explicando-se as partes importantes para o trabalho. No Capítulo 4 fala-se sobre o desenvolvimento e as soluções implementadas a fim de evoluir a plataforma e melhorar o sistema segundo os objectivos propostos. No Capítulo 5 apresentam-se os resultados obtidos nos variados testes efectuados, nomeadamente os relativos à percepção de estados emocionais, bem como de personalidade. São também explicados os métodos utilizados no levantamento desses resultados. Finalmente, no Capítulo 6 encerra-se esta dissertação com as conclusões tiradas no final do trabalho e projecta-se o que ainda poderá ser feito para aperfeiçoar ainda mais a plataforma. Página 6 2. Estado da arte No âmbito dos ECAs e dos sistemas emocionais diversos artigos foram escritos e são alguns os projectos que consideram e implementam propriedades desses sistemas. As próximas subsecções apresentam trabalhos relacionados com o tema, bem como uma análise dos mesmos. 2.1. Caracterização de emoções Na vida real a expressão e representação de emoções é um conceito subjectivo e resulta de um estado interno complexo e dependente de muitos factores. Como já foi referido um agente virtual é sempre limitado e, como tal, definir o conjunto restrito de emoções que fará parte desse agente deve ser o primeiro passo a tomar. Antes de se falar de qualquer projecto que implemente e expresse emoções e comportamentos ditos emocionais, é importante perceber como é que se pode representar essas emoções na face virtual do agente. Estudos provaram que os humanos expressam-nas através da combinação de determinadas acções dos músculos faciais que podem ser simuladas em caras sintéticas (Thórisson, 1997). Embora as definições de emoção divirjam substancialmente, a maioria dos investigadores concorda que a sua afectação é fruto de eventos internos e externos. Repare-se que apesar de existir um padrão universal, a expressão emocional é dependente do ambiente social e cultural do sujeito. Em (Ekman & Friesen, 1975) são destacadas seis emoções com expressões faciais universais (anger, disgust, fear, happiness, sadness e surprise) e a grande maioria dos sistemas com animação facial usam esse conjunto. Para cada uma das anteriores a Tabela 1 mostra a correspondente lista de Action Units (AUs) do Facial Action Coding System (FACS), um sistema criado com o intuito de facilitar a simulação eficiente de emoções. A Tabela 2 mostra parte da lista de todas as AUs do FACS. A lista completa pode ser consultada no Apêndice A.1. Página 7 Emotion Anger Disgust Fear Happiness Sadness Surprise Action Units AU2 + AU4 + AU5 + AU10 + AU20 + AU24 AU4 + AU9 + AU10 + AU17 AU1 + AU2 + AU4 + AU5 + AU7 + AU15 + AU20 + AU25 AU6 + AU11 + AU12 + AU25 AU1 + AU4 + AU7 + AU15 AU1 + AU2 + AU5 + AU26 + rotate-jaw Tabela 1. Emoções e AUs correspondentes (Pelachaud, 2003). AU AU1 AU2 AU4 AU5 AU7 AU9 AU10 AU11 AU12 Name Inner Brow Raiser Outer Brow Raiser Brow Lowerer Upper Lid Raiser Lid Tightener Nose Wrinkler Upper Lip Raiser Nasolabial Furrow Deepener Lip Corner Puller AU AU15 AU17 AU19 AU20 AU24 AU25 AU26 AU45 AU58 Name Lip Corner Depressor Chin Raiser Tongue Show Lip Stretcher Lip Presser Lips Part Jaw Drop Blink Head Back Tabela 2. Parte da lista completa de AUs do FACS (Pelachaud, 2003). Cada descrição da Tabela 2 está mapeada num conjunto de músculos, por exemplo: AU1 – Inner brow raiser – Frontalis, pars medialis (Figura 1). O mapeamento completo encontra-se disponível no Apêndice A.2. Figura 1. Representação visual da AU1. Por fim, depois de caracterizada, a intensidade emocional pode ser o segundo factor a ter em conta. Em (Pelachaud, 2003) defende-se que a força de um sentimento pode ser determinada por três factores: Frequência ou número de vezes que a emoção é sentida; Duração da emoção ao longo do tempo; Intensidade da emoção sentida. Pela natureza auto-explicativa da descrição dos factores anteriores, os mesmos não são detalhados neste capítulo e remetem-se para (Pelachaud, 2003). Página 8 2.2. Plataforma DIGA Gestor de Serviços A plataforma DIGA (Martins, 2008) (Figura 2) é constituída por oito módulos: QA@L2F * 1 * Base Engine JVXML 1 Audimus Base Engine Face GJTAPI Asterisk PBX JSAPI 2.0 1 * STAR Dixi Figura 2. Arquitectura da plataforma de diálogo DIGA. Asterix PBX – Asterix Private Branch Exchange. Módulo que providencia e gere a interface telefónica com o exterior; Face – Módulo da cara virtual (Figura 3); GJTAPI – Generic Java Telephony API. Interface genérica para a gestão de chamadas telefónicas em Java (abstracção entre o módulo PBX e o interpretador de Voice XML); JVXML – Interpretador de Voice XML em Java; JSAPI 2.0 – Java Speech API. API para gestão de sintetizadores e reconhecedores de fala; Audimus – Reconhecedor de fala; Dixi – Sintetizador de fala; STAR – Gestor de diálogo; Gestor de serviços – Módulo utilizado pelo gestor de diálogo para o acesso à informação dependente do domínio; QA@L2F – Módulo de pergunta/resposta. Sistemas de banca e bolsa telefónica foram construídos sobre versões anteriores desta plataforma. O gestor de diálogo foi posteriormente integrado por dotá-la de uma eficiência superior, uma vez que contrariamente ao que acontecia antes, tornou possível o fornecimento de diversas informações em simultâneo. A inclusão desse gestor, o STAR (Mourão, 2005), passou também a exigir mais desempenho porque veio permitir a existência de diálogos mais abertos. De extrema importância para a robustez desta plataforma e de particular interesse para este trabalho, vejamos a composição do gestor de diálogo: Página 9 Reconhecedor de linguagem – Identifica os objectos relevantes de uma frase e o tipo de acto de fala proferido pelo utilizador. Entenda-se que um acto de fala define-se como a unidade mínima de comunicação entre humanos; Gestor de interpretação – Produz uma interpretação através do contexto do discurso e da informação do domínio; Gestor de tarefas – É a interface de comunicação entre o gestor de diálogo e o gestor de serviços; Agente comportamental – Encontrando-se numa fase inicial, no arranque do trabalho encaminhava as obrigações de discurso geradas pelo gestor de interpretação para o gestor de geração e fazia limpezas no contexto do discurso quando o diálogo terminava; Gestor de geração – Ainda não desenvolvido, efectuará a gestão de geração de linguagem que está neste momento a ser realizada pelo gestor de superfície; Gestor de superfície – Com base no tipo de obrigações de discurso geradas pelo gestor de interpretação, procura a regra de geração correspondente, definida no domínio, e preenche os campos dinâmicos com recurso a informação linguística e/ou de contexto; Contexto do discurso – Gere a informação relativa ao discurso que se desenrola entre o sistema e o utilizador. Figura 3. Face. Aquando do arranque desta análise já se encontrava concluída a primeira versão do quiosque para o Museu Nacional de Arte Antiga (MNAA) que, associado a uma cara virtual mutável em temporeal, passou a constituir o sistema na vertente Duarte (Figura 4) – o objecto base deste projecto. O Duarte reconhece a linguagem do utilizador e responde através da fala a questões sobre a Custódia de Belém, uma peça histórica considerada a obra-prima da ourivesaria portuguesa. Página 10 Figura 4. Duarte. É sabido que o Duarte era monótono, não tinha personalidade e não expressava qualquer tipo de emoção, mas o potencial da plataforma era e continua a ser grande. A flexibilidade do sistema anterior permite a troca da sua cara, voz, bem como do domínio. A exploração do gestor de diálogo, concretamente do módulo comportamental junto com a cara virtual, evidenciou a elevada oportunidade da sua expansão ao nível comportamental e emocional. 2.3. MagiCster e Greta Em (Cavalluzzi, et al., 2003) é apresentada uma proposta de implementação de um ECA que opera como conselheiro independente do domínio. O artigo prevê a habilidade de se reconhecer e expressar emoções, assim como de regular e utilizar as mesmas na optimização dos conselhos dados pelo agente. A fim de tornarem a mente do agente independente do seu corpo, os autores definem uma Attention Profiling Mark-up Language (APML) em XML onde através de tags se atribui significado às frases, culminando-se numa combinação apropriada entre a fala e as expressões faciais/emocionais do sistema. Os autores inspiram-se no modelo OCC (Ortony, Clore, & Collins, 1988), defendendo que as emoções devem ser usadas como condicionantes do diálogo e conduzidas por eventos, sendo as emoções positivas desencadeadas por eventos agradáveis, ao invés das negativas cuja activação é consequência de acontecimentos desagradáveis. Esses eventos encontram-se adicionalmente categorizados enquadrando-se na categoria Well-being quando relacionados com o agente, na categoria FortuneOfOthers quando relacionados com outros, e na categoria Prospective quando relacionados com o futuro. O modelo de activação de emoções é representado através de uma Dynamic Belief Network (DBN) e calcula a intensidade das últimas como função da incerteza em atingir ou não objectivos, bem como da utilidade dos mesmos. Essa é constituída por três tipos de Belief Networks (BN) – uma principal Mind-BN, uma ou mais Event-BN, e uma ou mais Emotion-BN. Página 11 Domínio teste – Conselheiro alimentar 1 No âmbito do MagiCster , e usando a Greta, construiu-se um simulador que dava conselhos sobre desordens alimentares (Figura 5). No levantamento de dados para o seu desenho foram analisados vários websites e linhas de chat. Apresentando inicialmente uma empatia muito formal, a sua evolução para um ECA teve como objectivo colmatar isso. Figura 5. Greta. Observe-se a seguinte interacção: G0: Hi, my name is Greta! I'm here to help you in finding a healthier way of feeding yourself. What's your name? U0: My name is Jana. G1: What's your problem, Jana? U1: I've been eating too much and badly in the past year and I feel I can't stop! G2: Oh I'm sorry. That's a bad situation indeed. Which is your age? U2: I'm 17. G3: Well: teens are notorious for being hungry frequently, because they need to eat more to support the major growth of their bodies. Maybe you only need an appropriate diet. U3: It's not a question of increased appetite! It's a serious problem that is out of my control! G4: How terrible! Did you try to do something, to solve this problem? U4: Yes, and I did not succeed. I now fear that stopping will not be possible to me! G5: Oh no! You have to be confident in yourself! If you want to get over this, I may help you. U5: What can I do? G6: I have some ideas and experience on how to make a smooth, quick transition from overeating back to healthful living. If you wish, I may suggest you what to do. U6: Yes, please, I want to make any possible effort to get over these problems! 1 MagiCster – Projecto focado no desenvolvimento de ECAs credíveis. Página 12 G7: Fine! This is the way I want to see you! So, let's start, first of all, from cleansing your home from all binge foods. Whatever your current food downfalls are, get rid of them! U7: But I can't stand to throw food away! G8: Well, give it to someone, then! And, if your relatives insist on keeping such foods in the house, ask them to keep it away from you for a while. Greta (G) Utilizador (U) No protótipo concretizado as frases eram traduzidas em actos de discurso simbólicos (por exemplo, U1 em Say U (Occ EatingTooMuch U) e Say U not(Desirable EatingTooMuch)) que desencadeavam a construção da DBN e constituíam a entrada das Event-BNs. Para o exemplo anterior, a figura abaixo mostra as emoções activadas ao longo do tempo: 2,5 2 Intensidade 1,5 Fear Hope 1 Joy 0,5 Sorry-for 0 0 1 2 3 4 5 6 7 8 Tempo Figura 6. Dinâmica emocional para o diálogo anterior. Verifica-se que: O evento desagradável U1 activa a emoção sorry-for no instante T2; U2 não produz nenhuma reacção – a intensidade emocional anterior diminui; O novo evento desagradável U3 intensifica em T4 a emoção sorry-for; U4 é interpretado como outro evento desagradável. O risco de que o utilizador termine o diálogo activa medo (fear) no agente; U6 é visto como um evento desejável para a Greta – surge esperança (hope); U7 não provoca qualquer reacção – a intensidade de todas as emoções vai diminuindo. Claramente se conclui pela interacção anterior que um movimento do utilizador constitui um evento e fonte de informação para o agente. Resta-nos perceber de que modo as emoções são expressas. Para esse efeito os autores definem regras que decidem activar ou não emoções. Quando Página 13 se pretende apresentar uma emoção é injectada uma tag ao movimento do agente que é posteriormente interpretada e convertida num conjunto de sinais (gestos, movimentos faciais e corporais). Contrariamente a uma abordagem puramente reactiva, onde o estado emocional do agente resultaria directamente do estado emocional do utilizador, os autores sugerem um agente que analisa e reflecte sobre os eventos que terão produzido o estado desse utilizador, para finalmente caracterizar o seu próprio estado. O estado interno do agente também responde às mudanças emocionais através de um algoritmo de activação/desactivação de objectivos e de revisão dinâmica de prioridades. A principal limitação do protótipo descrito está na interpretação dos movimentos do utilizador. A análise baseada em palavras-chave é um método relativamente simples para se identificar as necessidades e intenções do mesmo, no entanto, o principal interesse dos autores não é o reconhecimento do estado do utilizador, mas sim a sua interpretação – perceber que componentes do estado mental é que o produziram. Um conjunto de estudos ficaram responsáveis por sugerir de que modo o sistema deveria ser refinado. Uma vez que o objectivo do agente é aconselhar os utilizadores relativamente a situações de risco, a fim de se introduzirem melhorias foi também frequentemente avaliada a sua capacidade de persuasão. 2.4. Galatea Em (Kawamoto, et al., 2002) é discutida uma arquitectura para a construção de anthropomorphic spoken dialog agents (ASDAs). Os autores revelam que desenvolver ASDAs de qualidade continua a ser um grande desafio e acreditam que disponibilizar um toolkit gratuito para a implementação desse tipo de sistemas pode potenciar o progresso na área. A premissa deste toolkit é simples: através dele pode-se criar o nosso próprio ECA. Vejamos as suas características: Funções para melhorar o reconhecimento da fala (on-the-fly); Mecanismo para a sincronização do áudio com os movimentos labiais; Elevada personalização ao nível do reconhecimento e síntese da fala, bem como da criação de animações realistas; Transparência na comunicação entre módulos através de uma arquitectura inspirada em máquinas virtuais. Página 14 E a sua composição na Figura 7: Integrating Anthropomorphic Dialog Agents Module Agent Manager (AM) Task Manager (TM) Speech Recognition Module (SRM) Face Image Synthesis Module (FSM) Speech Synthesis Module (SSM) Figura 7. Configuração dos módulos do Galatea. O FSM é o foco do artigo em análise e corresponde ao componente de maior interesse para este trabalho (Figura 8). É capaz de transformar a foto de uma pessoa, ajustá-la num modelo wireframe 3D e retornar uma cara virtual animada que suporta visemas2 e emoções. Figura 8. FSM. Para mudar a forma da boca, as expressões faciais e os comportamentos é preciso definir um conjunto de parâmetros nos modelos. O sistema contempla um editor para esse fim. A modificação de expressões globais é conseguida através da combinação de outras acções mais básicas (ex: levantar sobrancelha direita). O FACS, um método já discutido para quantificar os movimentos faciais, codifica os movimentos musculares da cara em AUs ou combinações delas. Através do uso do editor de AUs, no FSM, o agente pode ser transformado por seis expressões padrão (anger, disgust, fear, happiness, 2 Visema – Representação visual dos sons de uma língua, ou seja, os movimentos faciais feitos para pronunciá-los. Página 15 sadness e surprise), assim como por expressões criadas pelo utilizador. Comportamentos como piscar os olhos e acenar com a cabeça são definidos pelo sistema, no entanto, o utilizador tem o poder de alterar a frequência dos mesmos. As animações da cara são, portanto, resultado da conjunção das formas labiais com as expressões referidas – repare-se que é fulcral que a animação da boca esteja sincronizada com o áudio criado pelo SSM. Essa sincronização entre o FSM e o SSM é assegurada por um módulo a um nível superior separado do AM. A técnica usada para alcançar essa sincronização usa apenas a duração de 3 cada fonema . Garantir que ambos os módulos estão preparados para falar antes que a fala comece é imperativo. As vantagens do toolkit são sumarizadas em quatro aspectos: Modularidade dos componentes; Código open-source; Personalização acessível; Interacção humana. Embora de interesse para este relatório, o alcance do comportamento emocional final não é abordado por nenhum dos artigos relacionados com este projecto. O modo como o agente pode transitar entre estados emocionais não é explicado e supõe-se da inteira responsabilidade do utilizador do toolkit. 2.5. Olga A Olga (Beskow & McGlashan, 1997) (Figura 9) é um ECA que, à semelhança do Duarte, opera como quiosque informativo. Apesar de ser um projecto menos recente que os anteriores, a Olga não deixa de ser relevante por contemplar uma interface gráfica, diálogo falado e um personagem animado em 3D. Possui uma arquitectura distribuída e um servidor central que se encontra encarregue da comunicação entre os módulos. Essa comunicação acontece segundo o paradigma cliente/servidor e o sistema é estimulado através de eventos, pelo que apenas reage ao utilizador, isto é, não gera output sozinho. 3 Fonema – Corresponde à menor unidade sonora de uma língua. Página 16 Figura 9. Olga. A Olga é animada em tempo-real e é capaz de sintetizar texto em fala sincronizada com os movimentos da boca. Suporta expressões faciais e gestos que podem ser usados para dar ênfase às falas, ajudar na passagem de discurso, apontar para outros objectos on-screen (tabelas, gráficos), e indiciar o seu estado interno (incerteza, à escuta, etc). A construção de emoções resulta da combinação de expressões básicas como a deformação das sobrancelhas, da boca ou dos olhos. Os autores verificaram que, em comparação com um sistema composto unicamente por voz, num ambiente ruidoso a Olga melhorou em 17% a inteligibilidade geral do mesmo. No decorrer do discurso são apropriadamente invocados gestos de acordo com as mensagens enviadas pelo gestor de diálogo. Esses gestos são procedimentos que correspondem à combinação de comandos mais simples, permitindo-se que procedimentos complexos como “encolher-se e abanar a cabeça” sejam despoletados com uma única trivial invocação. Esta abordagem baseada em scripting torna também fácil a introdução de parâmetros nos procedimentos (ex: direcção do apontar). Como se pode constatar, para além de simples, a abordagem em causa provou ser poderosa relativamente à gestão do comportamento não verbal do agente. Observe-se a seguinte interacção: O1: Whirlpool has five tested microwaves on the market. [Olga points to a graphical representation of the product information] U1: Is there anything cheaper with a grill? O2: [Olga nods to indicate she understood] Unfortunately, Whirlpool does not have cheap ovens with a grill. [Olga gives „shrug‟] But there are some cheap tested ovens. [Olga turns to the graphical display of the information] Olga (O) Utilizador (U) As mensagens que vão sendo geradas pelo gestor de diálogo podem ser consultadas na próxima tabela: Página 17 Módulo receptor Animação do personagem Interface de manipulação directa Animação do personagem Animação do personagem Mensagem state(understood) show([[manufacturer=electrolux,model=NF90,price=1500, grill:yes,…], [manufacturer=matsushita,…]]) state(regret); say(Unfortunately, Whirlpool does not have cheap ovens with a grill.) say(But there are some cheap tested ovens.); state(attention_display) Tabela 3. Saída do gestor de diálogo para o exemplo anterior. À medida que a interacção se vai desenvolvendo o sistema tem um estado comportamental interno que se vai alterando. O exemplo anterior ilustra a cinzento os gestos que a Olga vai fazendo no decorrer do diálogo. Por exemplo, em O2 o módulo responsável pela animação do agente recebe uma mensagem de estado (regret) e inicia os gestos correspondentes a esse estado – no caso anterior, regretful shrug. 2.6. REA A REA (de Real Estate Agent) em (Cassell, Bickmore, & Billinghurst, 1999) (Figura 10) é outra referência importante no contexto dos ECAs emocionais. É um sistema que suporta uma interacção multimodal em tempo-real através de uma interface conversacional baseada em vários protocolos de diálogo, mais uma vez com o objectivo de simular uma conversação cara-a-cara o mais natural possível. Figura 10. REA. Este sistema, como o próprio nome sugere, personifica uma agente imobiliária, respondendo a questões do utilizador e oferecendo visitas virtuais a propriedades. Apresenta-se como um humano totalmente articulado e percepciona o utilizador através de câmaras e reconhecedores de som. Para comunicar com ela o utilizador tem que se posicionar imediatamente após a projecção onde a agente se encontra. Página 18 Reaction Module Input Devices Input Manager Action Scheduler Understanding Module Response Planner Output Devices Generation Module Figura 11. Arquitectura da REA. Na arquitectura da REA (Figura 11), baseada no modelo FMTB (Functions, Modalities, Timing and Behavior), o módulo das reacções é responsável pela selecção das acções que determinam o que a REA está a fazer a cada momento. A chegada dessa informação ao gestor de geração traduz-se na produção de acções primitivas, a partir dessas acções complexas, e no envio das mesmas para o módulo encarregue de coordená-las a baixo nível, o action scheduler. Informação facial e gestual são algumas dessas acções primitivas. Falando com entoação, e exprimindo-se com gestos e expressões emocionais, a sofisticação deste sistema advém da sua capacidade de perceber comportamentos verbais do utilizador, mas principalmente comportamentos não-verbais. A componente interaccional do sistema é o foco primário dos autores e está funcionalmente decomposta a seguir: Reconhecimento da presença do utilizador – virando-se para o mesmo; Feedback – a REA dá resposta sob diversas formas: abana a cabeça, emite paraverbais (“Mmhmm”) ou diz frases como “I see” em resposta a pausas do utilizador; Tomada de vez – a REA apercebe-se de quem tem a vez no diálogo. Deixa-se ser interrompida e se o utilizador gesticula interpreta isso como um desejo de falar. Sempre que acaba de discursar vira-se de cara para o utilizador para indiciar o fim da sua vez; Ênfase – em palavras importantes do discurso; Funções de saudação e despedida. A tomada de vez é uma das funcionalidades mais pertinentes. As tabelas seguintes ilustram, respectivamente, o modo como nesses casos a REA interpreta o utilizador (Tabela 4) e associa comportamentos ao output que produz (Tabela 5). Página 19 State REA speaking User speaking User input Gesture Speech Pause of <500 msec Imperative phrase Interrogative phrase Declarative phrase & pause >500 msec & no gesture Declarative phrase & long gesture or pause Input function Wanting turn Taking turn Wanting feedback Giving turn Giving turn Giving turn Holding turn Tabela 4. Interpretação funcional das entradas relativas à tomada de vez. State User present REA speaking User speaking Output function Open interaction Attend End of interaction Greet Give turn Signoff Give feedback Want turn Take turn Behaviors Look at user. Smile. Headtoss. Face user. Turn away. Wave, “hello”. Relax hands. Look at user. Raise eyebrows. Wave, “bye. Nod head. Paraverbal. Look at user. Raise hands. Paraverbal, “umm”. Look at user. Raise hands to begin gesturing. Speak. Tabela 5. Funções de saída. Através da modelação de categorias comportamentais em funções ao nível do discurso os autores chegaram a uma forma fácil e natural de combinar múltiplas modalidades na entrada e na saída. 2.7. MACK Nos sistemas que actuam como quiosques de informação a compreensão e geração de conteúdo pode ser limitada. As perguntas habitualmente têm o mesmo formato e as respostas não precisam ser planeadas em tempo-real. Em (Cassell, et al., 2002) é descrito o MACK (Media lab Autonomous Conversational Kiosk) (Figura 12), um quiosque informativo que dá direcções e responde a dúvidas sobre pessoas, projectos e grupos de investigação do MIT Media Lab. É um personagem representado da cintura para cima, porque os autores referem que limitá-lo visualmente a uma cabeça eliminaria a capacidade de indicação espacial (ex: apontar para a esquerda), e foi desenhado com a possibilidade dos utilizadores referenciarem de forma natural um mapa físico que é partilhado com a máquina e constitui uma ponte Página 20 entre a realidade e o mundo virtual. Pelas características anteriores, o MACK tem que estar sempre consciente da sua localização e orientação, bem como ter conhecimento da planta do edifício onde se encontra. Mais uma vez, e à semelhança da REA, o MACK também reconhece a posição do utilizador. Figura 12. MACK. A sua arquitectura encontra-se na Figura 13. User Presence Sensor Map Sensor Database Understanding Module Reaction Module Generation Module Animation Module Speech Recognition Figura 13. Arquitectura do MACK. O módulo de animação num quiosque informativo tem um papel fulcral, por ser o responsável pela aproximação à interacção entre humanos e perfeita sincronização das modalidades de saída. No sistema em causa esse módulo é o BEAT (Behavior Expression Animation Toolkit) (Cassell, Vilhjálssom, & Bickmore, 2001), cuja arquitectura pode ser consultada na Figura 14. Discourse Model Knowledge Base Word Timing Behavior Generation Language Tagging Behavior Suggestion Behavior Selection Generator Set Filter Set Figura 14. BEAT. Página 21 Behavior Scheduling Translator Animation O BEAT foi desenhado para encaixar em sistemas de animação já existentes ou para servir de camada intermédia entre movimentos de baixo nível e características de alto nível como personalidade e emoção. Anota automaticamente o texto com todos os movimentos comportamentais: gestos, olhar, sobrancelhas e entoação. Essa anotação é garantida através de XML com consultas à base de dados do domínio, que neste caso contém dados sobre projectos, investigadores, etc, e através de um conjunto de regras geradoras de comportamento. Apesar de não ser discutido pelos autores, supõe-se que o comportamento emocional do MACK tenha sido considerado ou posteriormente incluído, já que o BEAT contempla essa possibilidade. Relativamente aos dados de entrada o MACK incorpora mecanismos de reconhecimento de fala, de presença do utilizador, e de escrita – pela tablet que se encontra entre o utilizador e o sistema. A informação que flui do módulo de compreensão para o módulo de reacção é que determina as reacções do MACK. O processo de escolha da próxima acção é implementado com uma máquina de estados, em que cada saída é encarada como um estado e os novos actos de entrada agem como um parâmetro de decisão na criação do próximo estado. Por exemplo, a chegada de um utilizador dispara um evento que faz o MACK transitar do estado “desocupado” para “saudação”. O módulo de geração assegura a interacção com a base de dados e a posterior criação do estado final que chega ao módulo de animação. 2.8. Análise crítica e outros projectos Foram vistos vários projectos no decorrer deste estudo e optou-se por se descrever um subconjunto que se considerou relevante. Vamos brevemente referenciar outros e apresentar uma análise crítica dos diferentes sistemas. No que toca à representação de emoções, o FACS pareceu o método mais versátil e usado na descrição de comportamentos faciais. É usado no Galatea e em outros projectos, sendo possível verificar que é um método bastante claro, pelo que a aposta nesse sistema para a representação emocional que se pretende no trabalho representou uma boa escolha. O MIT FitTrack (Bickmore & Picard, 2005), um agente virtual com muitos componentes parecidos aos da REA, foi desenhado com o propósito de investigar o papel dos agentes relacionais, cujo objectivo é a manutenção de longas relações emocionais com os utilizadores. Como resultado descobriu-se que os utilizadores manifestaram maior confiança com uma versão relacional do sistema Página 22 em oposição a outra desprovida de quaisquer funções relacionais. Através deste e dos outros trabalhos, constatou-se que o aspecto social nos agentes é um meio de melhorar a naturalidade e o nível de confiança inspirada pelos utilizadores. Curiosamente, em (Foster, 2007) e através do sistema COMIC, mostrou-se que uma versão expressiva desse programa tipo CAD anulou a sensação de lentidão nas respostas e atraiu mais vezes o olhar do utilizador, outra vantagem com interesse para este trabalho. A REA foi um dos agentes estudados mais interessantes pela sua flexibilidade. Capacidades como passar a vez, dar ênfase e reconhecer a presença do utilizador são as suas funcionalidades mais pertinentes. O MACK, por exemplo, apesar de também reconhecer a presença do utilizador, nesse aspecto é menos sofisticado uma vez que precisa que o utilizador se sente na cadeira pensada para esse efeito. A adopção de um mecanismo de presença do utilizador, semelhante ao da REA, é uma funcionalidade possivelmente interessante para a plataforma DIGA. Ainda, através de (Foster, 2007), constatou-se mais uma vez a importância da inteligência social. O iCat Home Companion, um agente incluído num sistema de diálogo habitacional, foi usado num estudo que, para além de outras tarefas, pedia que se programasse uma gravação num leitor de DVD. Os resultados mostraram que a versão social e expressiva da interface aumentou o grau de satisfação dos utilizadores com o leitor. Por isso, com o Duarte, a existência de consciência social também se considerou importante. Na vertente da Greta discutida neste relatório, consideramos apropriada a forma como decorre a dinâmica de emoções ao longo de uma interacção. Cada movimento do utilizador é encarado como um evento, cujo impacto está relacionado com o seu conteúdo e afecta o estado interno do agente. Como, no caso do trabalho concretizado, o foco não era o reconhecimento do teor emocional do diálogo, mas a sua representação final (cara virtual), foi possível categorizar as várias perguntas aceites pela plataforma em vários tipos – que depois originam eventos diferentes e produzem, de forma análoga ao que acontece com a Greta, as alterações necessárias ao estado interno. A parametrização de cada estado num conjunto de vários movimentos, tal como acontece com a Olga, é uma abordagem inteligente na medida em que com invocações simples se obtêm comportamentos complexos. Assim, por exemplo no caso do Duarte, agora com a simples invocação do estado “aborrecido”, o sistema automaticamente traduz essa chamada em movimentos que caracterizam esse estado sem que seja necessário estar-se sempre preocupado com a escolha de cada acção ao pormenor. Foi curioso constatar que a anotação de acções como gestos e expressões a texto, Página 23 no formato XML, é comum a quase todos os projectos. Por isso, essa pareceu uma abordagem unânime e foi contemplada no desenvolvimento do projecto. Por último, relativamente à abordagem para a personalidade do agente, considerou-se alguns artigos interessantes, nomeadamente a referência (Dias & Paiva, 2005). Fala-se, entre outros, de uma taxa de declínio para cada uma das emoções dependente da personalidade, isto é, por exemplo numa personalidade agressiva faz sentido que a raiva seja uma emoção com baixa taxa de declínio, por oposição a uma personalidade afável, cuja taxa de declínio para a mesma emoção faz sentido que seja mais elevada. Esta ideia foi assimilada na implementação do que foi realizado. Página 24 3. DIGA No capítulo anterior, mais concretamente no Subcapítulo 2.2, apresentou-se a arquitectura geral da plataforma DIGA. No presente capítulo são explicados com mais detalhe os problemas e características dos módulos verdadeiramente relevantes para este projecto: Face; Gestor de diálogo; QA@L2F. Como foi dito no Subcapítulo 2.2, no caso deste trabalho todo o desenvolvimento se desenrolou a partir de uma versão da aplicação que se encontrava preparada para responder a questões sobre a Custódia de Belém. Ainda assim note-se que todas as evoluções feitas podem ser usadas com outro domínio. 3.1. Face Incluindo uma interface gráfica para efeitos de edição, este módulo (Figura 3) efectua a gestão dos aspectos ligados à cara virtual, desde a definição e movimentação de cada músculo à composição e expressão de cada emoção. É a este módulo que chegam as instruções de estado enviadas pelo gestor de diálogo, no formato VHML (Virtual Human Markup Language) que será falado mais à frente, respeitantes à animação da cara e é portanto este que disponibiliza a janela gráfica da cara virtual que o utilizador vê. As funções da sua interface gráfica (Viveiros, 2004) utilizadas durante o processo de caracterização emocional são apresentadas neste subcapítulo, mas antes observemos a constituição de um projecto de cara virtual dessa aplicação. Compactado num ficheiro ZIP, da sua estrutura destacam-se os seguintes dois ficheiros XML: emotions; muscles. Página 25 O ficheiro emotions possui os dados de todos os músculos associados a cada emoção, tal como se verifica no próximo excerto. <emotion name="sadness"> <muscles> <muscle name="mouthLeft">1.0</muscle> <muscle name="mouthRight">0.8</muscle> <muscle name="OrbicularisOculiLeft">-0.2</muscle> <muscle name="cheekLeft">0.6</muscle> <muscle name="depressorAnguliOrisRight">1.0</muscle> <muscle name="lowerLipDummie">-0.4</muscle> <muscle name="OrbicularisOculiRight">-0.2</muscle> <muscle name="frontalisInnerLeft">1.0</muscle> <muscle name="depressorAnguliOrisLeft">1.0</muscle> <muscle name="cheekRight">0.6</muscle> <muscle name="lowerLipDummie2">1.0</muscle> <muscle name="frontalisInnerRight">1.0</muscle> <muscle name="jawRotations">0.78</muscle> </muscles> </emotion> O segmento anterior corresponde à constituição muscular da emoção sadness. O valor associado a cada músculo, que oscila entre -1 e 1, é o seu grau de variação. Em termos práticos o valor -1 faz o músculo apresentar-se neutro e o valor 1 totalmente afectado, pelo que apenas os músculos com uma variação diferente de -1 fazem parte da definição de cada emoção no ficheiro referido, já que os outros não surtem qualquer efeito no resultado final. Por outro lado, no ficheiro muscles estão presentes todos os músculos existentes na cara, bem como os parâmetros que os definem. São esses critérios que definem cada músculo que determinam de que forma a superfície da cara virtual é afectada. Esse mecanismo de mutação conduziu à diferenciação dos músculos em quatro tipos (elipsoidal, eye, jaw e linear). As particularidades que diferenciam esses tipos e o cálculo que os suporta é complexo e, por isso, mais uma vez remete-se para (Viveiros, 2004). Segue-se uma parte do ficheiro em análise que se refere a um músculo do tipo linear. <muscle name="zygomaticusMajorLeft"> <type>LINEAR</type> <maxvalue>0.024999999999999998</maxvalue> <minvalue>0.0</minvalue> Página 26 <points> <point name="musclePointIni"> <x>-0.015</x> <y>0.36</y> <z>0.416</z> </point> <point name="musclePointEnd"> <x>-0.063</x> <y>0.179</y> <z>0.423</z> </point> </points> <parameters> <parameter name="muscleAngle">0.6981317007977318</parameter> <parameter name="muscleStartRadius">0.26</parameter> <parameter name="muscleEndRadius">0.15</parameter> </parameters> </muscle> A lista completa de músculos pode ser consultada no Apêndice B.1. Aos músculos já existentes no início do projecto houve necessidade de se acrescentar duas transformações. A essas deu-se o nome de cheekLeft e cheekRight. Essa adição deveu-se à inexistência de músculos que permitissem eficazmente elevar ambas as bochechas. As funcionalidades da Graphical User Interface (GUI) do Face (Figura 15) mais usadas foram: Figura 15. GUI do Face. Página 27 Criar/Remover/Alterar emoções; Associar/Desassociar músculos; Afinação das contracções dos músculos associados à emoção; Pré visualização instantânea do resultado da aplicação da emoção ao modelo. Os problemas associados ao Face não estavam relacionados com a sua própria estrutura ou constituição, mas foi este módulo serviu de veículo para tratar o problema da pobreza das emoções existentes. A sua caracterização estava sobretudo fraca. 3.2. Gestor de diálogo e QA@L2F Quando o sistema é iniciado, e o Duarte se apresenta, automaticamente está disponível para responder a perguntas do utilizador. Toda a informação relativa ao domínio está contida no ficheiro resultQA.xml. No Subcapítulo 4.2 a estrutura desse ficheiro é apresentada e discutida. Assim que a aplicação recebe uma entrada (evento) de áudio esse input é traduzido em texto e passado ao módulo de pergunta/resposta, QA@L2F, onde é feito o matching entre o que foi percebido e as perguntas existentes no domínio. A partir dessa associação é encontrada (ou não) a resposta para a questão. Depois de descoberta, essa resposta flui para o gestor de diálogo e é usada. Para além de outras tarefas, o gestor de diálogo é responsável pelo encapsulamento dessa resposta num ficheiro de formato VHML, onde é complementada com outros parâmetros para ser posteriormente enviada ao Face. O VHML é um subconjunto do XML, e define uma estrutura que permite descrever vários aspectos da interacção pessoa–máquina, nomeadamente ao nível da animação facial, conversão de texto em fala, animação do corpo, interacção com gestores de diálogo, representação emocional e outros tipos de informação multimédia. Tendo em conta a extensão do VHML e visto que nem todas as funcionalidades disponibilizadas seriam necessárias, e como também nem todos os requisitos colocados eram inteiramente suportados pela especificação, a plataforma suporta uma versão simplificada desses ficheiros, adaptada à solução pretendida. Vejamos o seguinte exemplo de um ficheiro nesse formato simplificado para percebermos a seu estrutura: Página 28 <?xml version='1.0' encoding='utf-8'?> <vhml> <!--look--> <p> <headmovement name='eyeblink' duration='.3' nblink='1' slope='.1'/> </p> <p> <headmovement name='eyeslook@' xintensity='#X_Eyes#' yintensity='#Y_Eyes#' slope='1' duration='2'/> </p> <p> <headmovement name='headlook@' xintensity='#X_Head#' yintensity='#Y_Head#' slope='1' duration='3'/> </p> <p> <emotion name='#EMOTION#' slope='1.0' intensity='#INTENSITY#' duration='5'/> </p> </vhml> O código anterior, que corresponde ao estado look (“look.xml”), tal como o nome sugere tem como objectivo fazer o agente olhar para um determinado sítio. A constante chegada de instruções como as do exemplo à cara, responsabilizam-se pelo seu comportamento visual contínuo e natural. Cada ficheiro VHML incorpora três tipos de informação: Movimentos da cabeça (headmovement); Emoções (emotion); Pausa (break); Texto. Por sua vez cada um desses tipos suporta várias das seguintes propriedades: duration; intensity; name; nblink; slope; xintensity; Página 29 yintensity. A duração (duration) define a duração temporal em segundos de uma emoção, movimento ou pausa. O parâmetro intensity define a intensidade das instruções do tipo emotion. O elemento name indica o nome da emoção (emotion) ou o tipo de movimento (headmovement) a executar. O nome do tipo de movimento aceita os valores eyeblink, eyeslook@ ou headlook@ para, respectivamente, o piscar de olhos, o direccionamento do olhar ou o direccionamento da cabeça. O elemento nblink serve para especificar o número de piscares de olhos nas instruções headmovement com name=’eyeblink’. O elemento slope, variável entre 0 e 10, define a curva de progresso do movimento, isto é, desde o seu início até ao momento em que o seu efeito é total. O gráfico seguinte exemplifica um valor de slope que proporciona um crescimento linear. 100 80 60 40 20 0 0 2 Tempo 4 6 Figura 16. Crescimento linear garantido por um valor de slope igual a 1. Os elementos xintensity e yintensity, variáveis entre -100 e 100, definem a intensidade e condicionandam o olhar do agente relativamente ao eixo dos x e ao eixo dos y, respectivamente. Os valores #X_Eyes#, #Y_Eyes#, #X_Head#, #Y_Head#, #EMOTION# e #INTENSITY# correspondem a variáveis que serão preenchidas em tempo-real pela aplicação. As quatro primeiras foram incluídas durante os desenvolvimentos deste trabalho. Finalmente, o elemento p, denominado de parágrafo, contém os elementos que descrevem a animação. É bastante importante pois afecta a ordem de processamento das instruções. As que se encontram abrigadas pelo mesmo parágrafo ocorrem sequencialmente, isto é, a próxima só começa Página 30 após o final da anterior. Por outro lado, as instruções que se encontram em parágrafos diferentes ocorrem ao mesmo tempo e, portanto, iniciam-se em simultâneo. O problema do sistema quando se iniciou o desenvolvimento era o facto do estado interno do agente ser sempre o mesmo. As instruções enviadas à Face correspondiam apenas a acções de piscar os olhos e falar. Isso empobrecia e tirava a naturalidade das interacções. No Capítulo 4 é exposto o progresso efectuado, nomeadamente ao nível do agente comportamental, que colmatou essa necessidade. Página 31 4. Desenvolvimentos Após a análise dos projectos relacionados com o tema, incluindo o trabalho previamente realizado na plataforma, procedeu-se a um levantamento mais concreto dos requisitos e problemas do sistema. Este capítulo explica as estratégias e desenvolvimentos efectuados para colmatar ou minimizar esses problemas. De um modo geral o esquema da Figura 17 mostra a amarelo os componentes que sofreram alterações a fim de se proporcionarem os objectivos propostos, tendo sido o Face, bem como o gestor de diálogo (STAR), os módulos sujeitos à maioria das modificações. A vermelho está traçado o caminho percorrido pelo fluxo de informação que permite a evolução emocional do agente desde a Gestor de Serviços identificação e percepção do teor do diálogo à expressão de emoções em tempo-real. QA@L2F * 1 * Base Engine 1 Audimus Base Engine Face JVXML JSAPI 2.0 Asterisk PBX GJTAPI 1 * STAR Dixi Figura 17. Componentes da DIGA afectados pelo desenvolvimento do trabalho. A organização do capítulo em causa foi alinhada com o decorrer temporal do trabalho. 4.1. Face Apesar de já se encontrarem parametrizadas algumas emoções, era sabido que nenhuma delas estava plenamente caracterizada, pelo que o seu correcto reconhecimento por parte dos utilizadores era sobretudo fraco. O primeiro objectivo do desenvolvimento efectuado consistiu em melhorar Página 33 substancialmente todas essas emoções através de um demorado processo iterativo feito em conjunto com os utilizadores. A cada nova iteração era feita uma avaliação junto de algumas pessoas a fim de se perceber que emoções ou pormenores das mesmas não se adequavam. Pelo acrescento complexional resultante da eventual combinação de emoções, desconsiderou-se essa possibilidade no trabalho efectuado. 4.1.1. Caracterização emocional Neste passo seleccionou-se o conjunto inicial de estados emocionais básicos de acordo com (Ekman & Friesen, 1975), trocando-se a palavra happiness por joy, e acrescentando-se a esse conjunto um outro estado – desconfiança. Para uma eficaz representação emocional sugeriu-se caracterizar cada um dos estados referidos segundo o sistema FACS e as tabelas referidas em (Pelachaud, 2003), já que todos os sistemas analisados (ex: Galatea) usam representações emocionais iguais ou parecidas à proposta. No entanto, repare-se que o estado “desconfiado” resultou de um levantamento de características proveniente da observação de imagens e fotografias, uma vez que a sua composição não era conhecida. Analisemos cada emoção ao pormenor. Anger A raiva pode ser despertada a partir de frustração, ameaça física ou dano psicológico. A sua expressão facial envolve todas as zonas da cara. Resumidamente o sujeito com raiva franze as sobrancelhas, fecha a boca pressionando-a firmemente ou então abre-a de forma tensa. Segundo o FACS: Emotion anger Action Units AU2 + AU4 + AU5 + AU10 + AU20 + AU24 Onde: AU AU2 AU4 AU5 Name Outer Brow Raiser Brow Lowerer Upper Lid Raiser AU AU10 AU20 AU24 Página 34 Name Upper Lip Raiser Lip Stretcher Lip Presser Considerando os dados anteriores e o constante feedback dos utilizadores chegou-se à emoção final Anger (Figura 18). Figura 18. Anger. Cuja composição muscular resultou no seguinte conjunto: <emotion name="anger"> <muscles> <muscle name="frontalisOuterLeft">0.1</muscle> <muscle name="risoriusRight">-0.3</muscle> <muscle name="corrugatorLeft">0.5</muscle> <muscle name="upperLipdummie">-0.6</muscle> <muscle name="risoriusLeft">0.05</muscle> <muscle name="OrbicularisOculiLeft">-0.04</muscle> <muscle name="depressorAnguliOrisRight">0.25</muscle> <muscle name="alaequeNasiLeft">-0.35</muscle> <muscle name="lowerLipDummie">0.0</muscle> <muscle name="alaequeNasiRight">-0.35</muscle> <muscle name="procerusRight">1.0</muscle> <muscle name="zygomaticusMajorRight">-0.4</muscle> <muscle name="OrbicularisOculiRight">0.04</muscle> <muscle name="depressorAnguliOrisLeft">0.2</muscle> <muscle name="corrugatorRight">0.4</muscle> <muscle name="procerusLeft">1.0</muscle> <muscle name="zygomaticusMajorLeft">-0.3</muscle> <muscle name="frontalisOuterRight">0.1</muscle> </muscles> </emotion> Página 35 Disgust O nojo resulta de qualquer coisa desagradável ou repugnante. A sua manifestação facial é principalmente caracterizada pelo nariz franzido, a subida do lábio superior e a descida ou subida do lábio inferior. As sobrancelhas também podem descer. Segundo o FACS: Emotion disgust Action Units AU4 + AU9 + AU10 + AU17 Onde: AU AU4 AU9 Name Brow Lowerer Nose Wrinkler AU AU10 AU17 Name Upper Lip Raiser Chin Raiser Considerando os dados anteriores e o constante feedback dos utilizadores chegou-se à emoção final Disgust (Figura 19). Esta foi uma emoção particularmente complexa de simular porque a subida dos lábios muitas vezes levava os utilizadores a confundi-la com a anger. Figura 19. Disgust. Cuja composição muscular resultou no seguinte conjunto: <emotion name="disgust"> <muscles> <muscle name="corrugatorLeft">-0.2</muscle> <muscle name="OrbicularisOculiRight3">-0.2</muscle> Página 36 <muscle name="OrbicularisOculiLeft">-0.09</muscle> <muscle name="cheekLeft">1.0</muscle> <muscle name="depressorAnguliOrisRight">-0.26</muscle> <muscle name="alaequeNasiLeft">1.0</muscle> <muscle name="lowerLipDummie">1.0</muscle> <muscle name="depressorAnguliOrisLeft">1.0</muscle> <muscle name="OrbicularisOculiRight">0.02</muscle> <muscle name="corrugatorRight">0.0</muscle> <muscle name="lowerLipDummie2">0.4</muscle> <muscle name="zygomaticusMajorLeft">1.0</muscle> <muscle name="cheekRight">-0.4</muscle> <muscle name="frontalisInnerRight">-0.6</muscle> <muscle name="jawRotations">0.0</muscle> </muscles> </emotion> Fear O medo pode ser despoletado por objectos, pessoas ou situações (reais ou imaginárias) consideradas perigosas. Os olhos tendem a ficar muito abertos, as sobrancelhas levantadas e a boca tensa, provavelmente aberta. Segundo o FACS: Emotion fear Action Units AU1 + AU2 + AU4 + AU5 + AU7 + AU15 + AU20 + AU25 Onde: AU AU1 AU2 AU4 AU5 Name Inner Brow Raiser Outer Brow Raiser Brow Lowerer Upper Lid Raiser AU AU7 AU15 AU20 AU25 Name Lip Tightener Lip Corner Depressor Lip Stretcher Lips Part Considerando os dados anteriores e o constante feedback dos utilizadores chegou-se à emoção final Fear (Figura 20). Esta foi outra emoção reajustada vezes consecutivas porque os utilizadores confundiam-na com a emoção surprise. Página 37 Figura 20. Fear. Cuja composição muscular resultou no seguinte conjunto: <emotion name="fear"> <muscles> <muscle name="mouthLeft">0.8</muscle> <muscle name="mouthRight">0.6</muscle> <muscle name="OrbicularisOculiLeft3">1.0</muscle> <muscle name="OrbicularisOculiRight3">1.0</muscle> <muscle name="orbicularisOris">0.5</muscle> <muscle name="depressorAnguliOrisRight">1.0</muscle> <muscle name="lowerLipDummie">-0.28</muscle> <muscle name="procerusRight">-0.06</muscle> <muscle name="depressorAnguliOrisLeft">1.0</muscle> <muscle name="frontalisInnerLeft">1.0</muscle> <muscle name="procerusLeft">-0.02</muscle> <muscle name="frontalisInnerRight">0.3</muscle> <muscle name="jawRotations">0.4</muscle> </muscles> </emotion> Joy A felicidade é principalmente caracterizada por um puxar dos cantos da boca para trás e a apontar para cima. Quando se trata de um sorriso a boca pode permanecer fechada, quando por outro lado no caso de maior entusiasmo a mesma tende a abrir-se. As bochechas e as pálpebras inferiores também sobem. Página 38 Segundo o FACS: Emotion Action Units happiness AU6 + AU11 + AU12 + AU25 Onde: AU AU6 AU11 Name Cheek Raiser & Lid Compressor Nasolabial Furrow Deepener AU AU12 AU25 Name Lip Corner Puller Lips Part Considerando os dados anteriores e o constante feedback dos utilizadores chegou-se à emoção final Joy (Figura 21). Figura 21. Joy. Cuja composição muscular resultou no seguinte conjunto: <emotion name="joy"> <muscles> <muscle name="cheekLeft">1.0</muscle> <muscle name="lowerLipDummie">0.0</muscle> <muscle name="frontalisMiddleLeft">0.8</muscle> <muscle name="levatorLabiiSuperiorisLeft2">0.0</muscle> <muscle name="levatorLabiiSuperiorisRight2">0.0</muscle> <muscle name="cheekRight">1.0</muscle> <muscle name="upperLipdummie">-0.28</muscle> <muscle name="frontalisMiddleRight">0.2</muscle> <muscle name="jawRotations">0.0</muscle> Página 39 </muscles> </emotion> Sadness Os lados interiores das sobrancelhas elevam-se e os cantos da boca descem. Esses são os movimentos faciais que expressam tristeza. Segundo o FACS: Emotion Action Units sadness AU1 + AU4 + AU7 + AU15 Onde: AU AU1 AU4 Name Inner Brow Raiser Brow Lowerer AU AU7 AU15 Name Lid Tightener Lip Corner Depressor Considerando os dados anteriores e o constante feedback dos utilizadores chegou-se à emoção final Sadness (Figura 22). Figura 22. Sadness. Cuja composição muscular resultou no seguinte conjunto: Página 40 <emotion name="sadness"> <muscles> <muscle name="mouthLeft">1.0</muscle> <muscle name="mouthRight">0.8</muscle> <muscle name="OrbicularisOculiLeft">-0.2</muscle> <muscle name="cheekLeft">0.6</muscle> <muscle name="depressorAnguliOrisRight">1.0</muscle> <muscle name="lowerLipDummie">-0.4</muscle> <muscle name="OrbicularisOculiRight">-0.2</muscle> <muscle name="frontalisInnerLeft">1.0</muscle> <muscle name="depressorAnguliOrisLeft">1.0</muscle> <muscle name="cheekRight">0.6</muscle> <muscle name="lowerLipDummie2">1.0</muscle> <muscle name="frontalisInnerRight">1.0</muscle> <muscle name="jawRotations">0.78</muscle> </muscles> </emotion> Surprise Surpresa é a reacção a um acontecimento inesperado e repentino. O maxilar tende a descair, enquanto as sobrancelhas se elevam e os olhos se abrem mais. Segundo o FACS: Emotion Action Units surprise AU1 + AU2 + AU5 + AU26 + rotate-jaw Onde: AU AU1 AU2 Name Inner Brow Raiser Outer Brow Raiser AU AU5 AU26 Name Upper Lid Raiser Jaw Drop Considerando os dados anteriores e o constante feedback dos utilizadores chegou-se à emoção final Surprise (Figura 23). Ao contrário do que aconteceu com o fear, apesar de semelhantes, esta emoção tipicamente não foi confundida. Página 41 Figura 23. Surprise. Cuja composição muscular resultou no seguinte conjunto: <emotion name="surprise"> <muscles> <muscle name="lowerLipDummie">0.04</muscle> <muscle name="frontalisMiddleLeft">0.27</muscle> <muscle name="frontalisInnerLeft">-0.07</muscle> <muscle name="OrbicularisOculiLeft3">1.0</muscle> <muscle name="upperLipdummie">-0.21</muscle> <muscle name="OrbicularisOculiRight3">1.0</muscle> <muscle name="frontalisMiddleRight">0.4</muscle> <muscle name="frontalisInnerRight">-0.06</muscle> <muscle name="jawRotations">0.56</muscle> </muscles> </emotion> Suspicion Finalmente, esta emoção não fazia parte do conjunto descrito em (Pelachaud, 2003). Por esse motivo foi necessário efectuar um estudo com o fim de se perceber que músculos são afectados na sua representação. Esse trabalho consistiu na análise de diversas imagens (caras) da emoção. Concluiu-se que a desconfiança é sobretudo caracterizada pelo franzir das sobrancelhas, ou mesmo pela subida do exterior de uma das sobracenlhas e a descida do interior da outra sobrancelha, bem como pelo franzir da boca (que pode acentuar-se para um dos lados). Página 42 Considerando as conclusões anteriores e o constante feedback dos utilizadores chegou-se à emoção final Suspicion (Figura 24). Figura 24. Suspicion. Cuja composição muscular resultou no seguinte conjunto: <emotion name="surprise"> <muscles> <muscle name="lowerLipDummie">0.04</muscle> <muscle name="frontalisMiddleLeft">0.27</muscle> <muscle name="frontalisInnerLeft">-0.07</muscle> <muscle name="OrbicularisOculiLeft3">1.0</muscle> <muscle name="upperLipdummie">-0.21</muscle> <muscle name="OrbicularisOculiRight3">1.0</muscle> <muscle name="frontalisMiddleRight">0.4</muscle> <muscle name="frontalisInnerRight">-0.06</muscle> <muscle name="jawRotations">0.56</muscle> </muscles> </emotion> 4.2. Gestor de diálogo e QA@L2F Tal como o nome sugere, o gestor de diálogo é o componente que processa a gestão do diálogo na plataforma. Como já foi falado atrás, concretamente no Capítulo 2.2, esse gestor incorpora Página 43 componentes cruciais da plataforma, sendo um deles o agente comportamental. Esse módulo, criado a pensar no futuro do sistema, concentrou em si grande parte do desenvolvimento efectuado. 4.2.1. Agente comportamental Antes de se iniciar qualquer desenvolvimento de código, estudou-se de que modo se poderia aproveitar e evoluir o gestor de diálogo para comportar as emoções criadas. Optou-se por criar dois níveis de comportamento, um que descreve o estado geral do agente (comportamento básico, Figura 25), e outro que determina o estado emocional do mesmo (Figura 26). Essa decisão resultou do facto dos comportamentos entre níveis serem totalmente independentes, portanto não fazendo sentido ficarem juntos. O nível básico foi concretizado através de uma máquina com três estados principais que reagem a eventos de fala (entrada do utilizador) e timeouts. Bored timeout Speaking Bored User input Sleep timeout Sleeping User input User input Figura 25. Máquina de estados do nível de comportamento básico. Como se pode observar pela figura, qualquer entrada do utilizador (fala) conduz o agente ao estado speaking. Nesse estado o sistema está alerta e mantém uma postura visual atenta, direccionando-se para o utilizador. Se ao fim de algum tempo (bored timeout) não ocorrer qualquer interacção com a máquina o sistema caminha para o estado bored. Nesse estado o agente semicerra os olhos e olha entediado em seu redor. Finalmente, na continuação da inexistência de interacção com a aplicação (sleep timeout) o sistema transita para um novo estado – sleeping. Esse último corresponde a um estado adormecido e só em caso de nova interacção o agente desperta e volta ao estado speaking. Página 44 A concretização visual desses três estados internos é conseguida através de outros estados implementados em ficheiros VHML, o formato já discutido no Subcapítulo 3.2. A nível interno o agente comportamental responsabiliza-se por saber em que estado está o sistema, mas são os ficheiros VHML que o permitem exteriorizar esse estado. É importante referir que durante o mesmo estado interno do nível de comportamento básico podem chegar diversos estados em VHML ao Face. O conteúdo dos oito estados VHML criados e/ou modificados, cujos nomes se encontram a seguir, pode ser consultado no Apêndice B.2: blink.xml; bored.xml; look.xml; look_eyes_only.xml; no.xml; sleeping.xml; talk.xml; yes.xml. User input Disgust Anger Fear Joy Sadness Suspicion Surprise Figura 26. Máquina de estados do nível de comportamento emocional. Página 45 Por outro lado o estado emocional do agente que pode ser incluído nas instruções dos estados básicos anteriores é calculado pelo nível de comportamento emocional. Esse reflecte a transição entre sete estados – as emoções. O agente pode passar de cada um desses estados para o próprio ou qualquer um dos outros (Figura 26), dependendo apenas da intensidade e do tipo de eventos que lhe chegam. Pela complexidade falada no Capítulo 4.1 apenas uma das emoções ocorre em cada instante, não podendo o agente estar, por exemplo, simultaneamente zangado e triste. O modo como esses estados variam entre si é explicado no próximo Capítulo 4.2.2. 4.2.2. Transição entre estados emocionais Partindo de uma abordagem reactiva para o modelo emocional, efectuou-se a categorização de afirmações/perguntas que podem ser feitas ao sistema para qualquer domínio, e chegou-se ao seguinte conjunto: Confusion – Afirmação ou pergunta que o sistema não entendeu ou cuja resposta é desconhecida; Domain – Afirmação ou pergunta relacionada com o tema/domínio a que o sistema responde; Neutral – Afirmação ou pergunta sem impacto emocional; Offense – Afirmação ou pergunta de teor ofensivo para o agente; Personal – Afirmação ou pergunta do âmbito pessoal do agente; Threat – Afirmação ou pergunta que represente perigo ou uma ameaça; Unexpectation – Afirmação ou pergunta imprevisível ou inesperada; Yuck – Afirmação ou pergunta que suscite repugna. Uma vez que as perguntas/respostas previstas pelo sistema se encontravam todas definidas no ficheiro resultQA.xml, evoluiu-se a sua estrutura e atribuiu-se uma tag (tipo) a cada pergunta do domínio do Duarte na vertente Custódia de Belém. Sendo que esse ficheiro não continha perguntas que se enquadrassem em todas as categorias anteriores, acrescentaram-se variadas perguntas para que todos os tipos estivessem presentes no conjunto. Assim, ao nível do agente comportamental o sistema passa a saber qual o teor ou significado das frases proferidas pelo utilizador e, então, pode decidir que emoções serão afectadas pelas mesmas. Por exemplo, se forem feitas perguntas sobre o domínio às quais o agente sabe responder é Página 46 natural que isso o faça sentir-se feliz. Repare-se que esse processo de decisão é directamente influenciado pela personalidade. Analisemos um excerto do ficheiro resultQA.xml: <unexpectation> <!-- Global emotional variation level --> <global_variation>75</global_variation> <qa> <!-- Specific emotional variation level (Only if necessary, otherwise global variation level is applied) --> <specific_variation></specific_variation> <questions> <q>Acorda!</q> <q>Acorda Duarte!</q> </questions> <answers> <a aggressive='true' bipolar='true'>Ninguém me pergunta nada! É normal que adormeça!</a> <a moderate='true' bipolar='true'>Desculpa, adormeci! Pergunta-me coisas!</a> <a naive='true' bipolar='true'>Perdão! Adormeço quando fico aborrecido!</a> </answers> </qa> No exemplo o texto a negrito corresponde à tag emocional que estará associada a todas as perguntas incluídas nesse bloco (unexpectation) e que servirá para a aplicação efectuar a devida afectação emocional. Estruturalmente, dentro de cada bloco desse tipo existe um ou mais blocos de outro tipo, qa, sendo que cada um inclui um par de grupos de perguntas/respostas (questions/answers). Resumidamente, o ficheiro será então constituído por vários blocos de tipos de perguntas e a aplicação decide que emoções afectar baseando-se nesses tipos. Supondo a seguinte configuração: Confusion – Afecta sadness; Domain – Afecta joy; Neutral – Não afecta o estado emocional; Offense – Afecta anger; Personal – Afecta suspicion; Página 47 Threat – Afecta fear; Unexpectation – Afecta surprise; Yuck – Afecta disgust. A intensidade de cada emoção varia de 0 a 100%. Não havendo composição emocional, a cada novo evento (pergunta) o sistema averigua que emoção afectar, podendo: A emoção afectada ser igual ao estado emocional actual – A nova intensidade emocional corresponde à soma da intensidade actual com a intensidade do evento; A emoção afectada ser diferente do estado emocional actual – A nova intensidade emocional corresponde à diferença entre a intensidade actual e a intensidade do evento. A título ilustrativo do comportamento descrito, observe-se a seguinte interacção e respectivo gráfico: D0: Olá, boa tarde! Eu sou o Duarte digital. Gosto imenso de museus e agora estou a fazer um trabalho sobre a Custódia de Belém. Quem me quer fazer perguntas sobre a Custódia? Vamos lá! U1 (Domain): O que é a Custódia? D1: A Custódia de Belém é um objecto para ser utilizado durante a missa ou em celebrações especiais, onde são colocadas as hóstias consagradas. Hoje em dia está exposta no Museu Nacional de Arte Antiga, em Lisboa. Que mais posso dizer para ficares a conhecer a Custódia de Belém? U2 (Domain): Porque é que se chama Custódia de Belém? D2: Chama-se Custódia de Belém porque esteve muito tempo no Mosteiro de Santa Maria de Belém. Sabias que este Mosteiro é hoje designado por Mosteiro dos Jerónimos? U3 (Domain): Quem é que a fez? D3: A Custódia de Belém foi feita por Gil Vicente, o ourives de Dona Leonor, irmã do Rei Dom Manuel. Foi este que, juntamente com os artífices da sua oficina, construiu a Custódia de Belém. U4(Confusion): Em quantos euros está avaliada a Custódia de Belém? D4: Tenho tanta pena, mas não sei a resposta a essa pergunta! U5 (Confusion): É verdade que Gil Vicente escreveu várias obras? Sabes dar-me algum exemplo? D5: É verdade sim, mas infelizmente eu agora não te sei dizer nenhuma! Duarte (D) Utilizador (U) Página 48 100 80 Intensidade 60 Joy 40 Neutral 20 Sadness 0 0 1 2 3 4 5 Tempo Figura 27. Dinâmica emocional do Duarte. Na interacção anterior o Duarte estava configurado com a personalidade naive sem taxas de declínio emocional (Capitulo 4.2.4). Conforme se pode ver pelo gráfico à medida que vão sendo feitas perguntas o sistema vai se adaptando ao diálogo. Enquanto o utilizador vai questionando a aplicação sobre o domínio o Duarte vai ficando progressivamente feliz (instantes T1, T2 e T3). Por outro lado, assim que o agente deixa de saber dar resposta às questões colocadas (confusion) o seu estado de contentamento decresce e dá lugar a um estado de tristeza (instantes T4 e T5). Depois de se saber que emoções são afectadas no contexto da interacção, outro aspecto importante é perceber com que intensidade essas emoções variam. De facto nem todas as perguntas têm o mesmo impacto no sistema e, por isso, a cada pergunta está associada uma determinada intensidade. 4.2.3. Intensidade emocional À medida que o utilizador confronta o sistema com diferentes frases, e tal como se constata na Figura 27, é natural que nem todas tenham o mesmo impacto. Por esse motivo no ficheiro resultQA.xml abordado anteriormente para além de se atribuir uma tag emocional atribui-se também a intensidade de cada frase. Essa propriedade é definida a dois níveis: Geral – Corresponde à intensidade para cada grupo de tipo de frases, isto é, todas as perguntas desse tipo variam segundo essa intensidade; Página 49 Específico – Particulariza o impacto de determinadas frases e sobrepõe-se ao valor atribuído pelo nível geral. <personal> <!-- Global emotional variation level --> <global_variation>50</global_variation> <qa> <!-- Specific emotional variation level (Only if necessary, otherwise global variation level is applied) --> <specific_variation></specific_variation> <questions> <q>Quem é o Duarte?</q> <q>Quem és tu?</q> <q>Quem foi o Duarte?</q> Para exemplificar ambos os casos, no excerto anterior pode se verificar que as perguntas abrangidas pela tag de valor personal irão variar com uma intensidade de 50% (global_variation). No caso do excerto essa será a intensidade em vigor para todas as suas perguntas, já que não está definido um valor de specific_variation. Atribuir um valor à variação específica contraria esse efeito e faz com que as frases tenham a sua própria variação. 4.2.4. Declínio emocional A intensidade emocional define a força de uma emoção, no entanto, durante o seu ciclo de vida a intensidade não permanece uma constante no sistema. Efectivamente, a intensidade de uma emoção entra em declínio a partir do instante em que é gerada – essa característica é resultado da ideia de que uma emoção não dura para sempre e não afecta os próximos estados emocionais da mesma forma. Assim, e de acordo com o que é sugerido na fonte (Dias & Paiva, 2005), o modelo emocional implementado no contexto deste trabalho reflecte a função de declínio proposta por Picard e que caracteriza a intensidade emocional em função do tempo. Em qualquer instante (t) o valor da intensidade de uma emoção (Emotion) é portanto dado pela seguinte fórmula: Intensity (Emotion, t) = Intensity (Emotion, t0) × e-b×t Página 50 A constante b determina a taxa de declínio de uma determinada emoção, isto é, a velocidade com que a intensidade decresce e tende para zero ao longo do tempo. Na implementação concretizada cada emoção tem a sua própria taxa de declínio (drop_rate), ou seja, esse valor é controlado no sentido de reflectir durações diferentes entre emoções. O valor Intensity (Emotion, t0) descreve a valor da intensidade emocional no instante em que foi gerada. Quando ao fim de algum tempo o valor Intensity (Emotion, t) se aproxima de zero, a emoção deixa de caracterizar o estado emocional do agente. Na prática, considerando uma taxa de declínio de valor 0.3, a título de exemplo a emoção anger decresce com o ritmo evidenciado pelo seguinte gráfico. 100 80 60 Intensidade 40 Anger 20 0 0 1 2 3 4 5 6 7 8 Tempo Figura 28. Declínio emocional para uma taxa de 0.3. Esta propriedade é outra que vem complementar as funcionalidades discutidas anteriormente e contribuir para um comportamento emocional apropriado ao sistema. 4.2.5. Personalidade Ao nível da computação a personalidade é um conceito tão complexo que por si só poderia motivar outra tese de mestrado. A principal meta deste trabalho consistiu na correcta representação emocional na plataforma DIGA e o seu aproveitamento lógico em tempo-real, portanto nunca foi objectivo do mesmo construir um verdadeiro modelo de personalidade. Ainda assim foi discutida a ideia de se criar um mecanismo que permitisse a criação de comportamentos diversos para o mesmo cenário, ou seja, acções diferentes para o mesmo acontecimento que em conjunto formam padrões distintos de comportamento – individualidade. A esse padrão de acções resolveu-se dar o nome de personalidade por ser a palavra que mais se aproxima do objectivo que se pretendia. A abordagem tomada resume Página 51 então a personalidade do agente num traço que o caracteriza e influencia o seu comportamento emocional na resposta aos eventos que lhe sucedem. Concretamente, esta abordagem reactiva para a personalidade é simulada através de um ficheiro XML (“personalities.xml”), sendo que todas as personalidades estão contidas nesse ficheiro e que para cada uma delas há uma correspondência directa entre tipo de evento e emoção afectada. Vejamos a sua estrutura: <moderate> <confusion>sadness</confusion> <personal>suspicious</personal> <domain>joy</domain> <unexpectation>surprise</unexpectation> <offense>anger</offense> <threat>fear</threat> <yuck>disgust</yuck> <!-- Total inactive time (ms) after which the agent gets bored --> <bored_timeout>20000</bored_timeout> <!-- Total inactive time (ms) after which the agent falls asleep --> <sleep_timeout>40000</sleep_timeout> <!-- Emotions drop rates with passing time (Picard perspective: Choose value between 0 and 1) --> <fear_drop_rate>0.4</fear_drop_rate> <disgust_drop_rate>0.3</disgust_drop_rate> <anger_drop_rate>0.3</anger_drop_rate> <suspicious_drop_rate>0.2</suspicious_drop_rate> <sadness_drop_rate>0.1</sadness_drop_rate> <surprise_drop_rate>0.4</surprise_drop_rate> <joy_drop_rate>0.05</joy_drop_rate> </moderate> Como se pode observar, a negrito está essa correspondência entre tipos de perguntas e emoções afectadas. Esse é o principal elemento de cada personalidade, no entanto, as taxas de declínio também são outra componente bastante importante. Para além disso cada bloco de personalidade também inclui outra informação – os tempos de timeout (em milissegundos) que desencadeiam as transições do estado speaking para os estados bored e sleeping. O ficheiro resultQA.xml inclui a personalidade que será usada no arranque da aplicação. Assim que o sistema inicia essa informação é carregada e usada logo que necessário. Mas para além disso é importante referir que esse ficheiro contém outra informação relevante ao nível da personalidade, uma Página 52 vez que essa também influencia as respostas do agente, isto é, se por exemplo o sistema está configurado com uma personalidade agressiva as suas respostas serão tendencialmente antipáticas. É nesse ficheiro que se encontra concretizada uma outra categorização das respostas que é usada pelo agente de acordo com a personalidade. No fundo cada resposta está etiquetada com as personalidades onde se enquadra. Essa etiquetagem é realizada como no próximo exemplo onde facilmente se pode deduzir que as perguntas só serão usadas pelo sistema quando a personalidade for agressiva ou bipolar. <a aggressive='true' bipolar='true'>Mas estás a falar de quê?</a> <a aggressive='true' bipolar='true'>Mas afinal o que é que queres saber?</a> 4.2.6. Outros comportamentos Apesar de todo o progresso enumerado anteriormente, para se conseguir um comportamento visual ainda mais natural e contínuo foi necessário complementar o agente e introduzir outros comportamentos simples: Movimentos da cabeça e olhares; Piscares de olhos; Concordância. No decorrer de um diálogo nenhum dos intervenientes permanece sempre estático, ou seja, em simultâneo com a fala decorre sempre alguma linguagem corporal. Essa corresponde a todos os movimentos gestuais e de postura que fazem com que a comunicação seja mais efectiva. As acções listadas quando combinadas com a fala e as emoções tornam a experiência de interacção com o sistema bastante mais fluída e normal. O modo como cada uma foi implementada é descrito neste capítulo. Movimentos da cabeça e olhares Quando o agente está activo a sua cabeça e olhar não permanecem imóveis. Em diálogo com o utilizador ela vai oscilando subtilmente em várias direcções, embora o olhar se mantenha no centro do monitor, onde se presume encontrar-se o utilizador. Quando no estado bored a cabeça oscila ainda mais, sendo que nesse caso o olhar não fica fixo no utilizador. O cálculo desses movimentos é Página 53 aleatório, o que os torna imprevisíveis. É através dos campos #X_Eyes#, #Y_Eyes#, #X_Head#, #Y_Head# abordados no Capítulo 4.2.1, e que a aplicação preenche em tempo-real, que isso é conseguido, tal como se pode verificar no próximo exemplo. //Horizontal direction if (Math.random() <= 0.4) { //Look to the left result = result.replaceAll("#X_Eyes#", "-" + x); result = result.replaceAll("#X_Head#", "" + x); } else { //Look to the right result = result.replaceAll("#X_Eyes#", "" + x); result = result.replaceAll("#X_Head#", "-" + x); } //Vertical direction if (Math.random() <= 0.4) { //Look down result = result.replaceAll("#Y_Eyes#", "-" + y); result = result.replaceAll("#Y_Head#", "" + y); } else { //Look up result = result.replaceAll("#Y_Eyes#", "" + y); result = result.replaceAll("#Y_Head#", "-" + y); } Piscares de olhos À semelhança do que acontece com a funcionalidade anterior, a aplicação calcula aleatoriamente o número de piscares de olhos que o Duarte dá no decorrer do diálogo. Esse número varia entre 0, 1 e 2. Concretamente há uma probabilidade menor do que 30% do Duarte piscar duas vezes os olhos. Concordância Na sequência da linguagem gestual que existe no decorrer de um diálogo, quando concordamos com aquilo que nos estão a dizer é habitual acenarmos positivamente com a cabeça. Analogamente, quando discordamos daquilo que nos está a ser dito é comum acenarmos negativamente. Página 54 Partindo dessa ideia efectuou-se ainda outra etiquetagem das frases que se encaixam neste conceito. Às respostas que concordam positivamente com a pergunta é atribuída a tag agreement='yes', e às respostas que concordam negativamente com a respectiva pergunta é associada a tag agreement='no'. A aplicação usa em tempo-real essas etiquetas para inferir se deve mandar instruções que simulam esses gestos de concordância em conjunto com a frase proferida pelo sistema. O código seguinte, que é parte do ficheiro VHML no.xml, ilustra essas instruções. <!--speech (no) detected--> <p> <headmovement name='eyeslook@' xintensity='0' yintensity='0' slope='1' duration='2'/> </p> <p> <headmovement name='headlook@' xintensity='-10' yintensity='0' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='10' yintensity='0' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='-10' yintensity='0' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='0' yintensity='0' slope='1' duration='.5'/> </p> Página 55 5. Resultados e avaliação Em (Foster, 2007) são expostas avaliações de vários projectos, nomeadamente a REA, e é dito que este tipo de sistemas é avaliado através da resposta dos utilizadores à saída gerada, podendo assumir duas formas: o comportamento como um todo pode ser avaliado segundo um determinado contexto ou os vários aspectos comportamentais podem ser avaliados separadamente. A avaliação geral contempla três aspectos: a fluência da interacção com o utilizador, a sua experiencia subjectiva, e a eficácia da aplicação no alcance dos seus objectivos. Já a avaliação de aspectos individuais, tais como as emoções ou a personalidade, é necessária para inferir se os comportamentos incorporados no agente são compreendidos pelos utilizadores segundo o que é esperado. Para efeitos de avaliação normalmente são gerados conteúdos a partir do sistema que são depois estudados e analisados. Os autores evidenciam novamente que os ECAs de facto melhoram a satisfação dos utilizadores e o envolvimento com os sistemas, podendo até influenciar a sua opinião sobre objectos descritos por esses. Para a avaliação deste tipo de sistemas em (Christoph, 2004) são descritas estratégias que se encontram resumidas na Tabela 6. Data collection method Questionnaire Survey Yes Interview Yes Experiment Yes Case study Yes Observation Yes Yes Log files Biological measures Yes Yes Yes Tabela 6. Estratégias e métodos para colecção de dados. Após ponderação dos vários métodos, a avaliação do trabalho desenvolvido foi subdividida em duas partes. A primeira (Capítulo 4.1) decorreu ao longo da etapa de caracterização de todas as emoções do agente e a segunda (Capítulo 4.2) iniciou-se no final de todo trabalho de implementação. Página 57 5.1. Emoções Apesar das emoções terem sido avaliadas diversas vezes ao longo do seu processo de caracterização, neste capítulo serão apenas apresentados os resultados respeitantes à avaliação das emoções no seu estado final. Como já foi referido anteriormente, o objectivo desta análise foi averiguar a fiabilidade da caracterização emocional efectuada. Para isso preparou-se um questionário composto por 13 perguntas, em que as três primeiras correspondiam a questões pessoais. A cada uma das outras 10 havia um vídeo associado com uma determinada emoção. A sua estrutura total pode ser consultada no Apêndice C.1. A amostra total de pessoas foi de 29 elementos e segue-se os resultados obtidos em termos percentuais: 100 100 80 80 59 60 60 35 40 69 20 20 0 Até 29 anos Entre 30 e 49 anos 31 40 7 0 Mais de 50 anos Feminino Masculino Figura 29. Idade e sexo dos interrogados do questionário da primeira fase. 100 80 60 38 40 20 24 3 3 10 21 0 Cozinheiro/a Engenheiro/a Estudante Funcionário/a Investigador(a) público/a Figura 30. Profissão dos interrogados do questionário da primeira fase. Página 58 Professor(a) 100 83 80 60 40 20 3 14 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado 100 100 80 60 40 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 31. Resultados da emoção anger (primeiro vídeo em cima; segundo vídeo em baixo). 90 100 80 60 40 20 3 3 3 Feliz Surpreso 0 Assustado Desconfiado Enojado Triste Zangado Triste Zangado Figura 32. Resultados da emoção suspicion. 90 100 80 60 40 10 20 0 Assustado Desconfiado Enojado Feliz Surpreso Figura 33. Resultados da emoção joy. Página 59 90 100 80 60 40 20 3 3 3 0 Assustado Desconfiado 100 Enojado Feliz Surpreso Triste Zangado 83 80 60 40 20 10 7 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 34. Resultados da emoção disgust (primeiro vídeo em cima; segundo vídeo em baixo). 100 76 80 60 40 20 10 3 0 0 Assustado Desconfiado Enojado 7 Feliz 3 Surpreso Triste Zangado Figura 35. Resultados da emoção surprise. 93 100 80 60 40 20 7 0 Assustado Desconfiado Enojado Feliz Surpreso Figura 36. Resultados da emoção sadness. Página 60 Triste Zangado 100 80 60 59 38 40 20 3 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado 100 80 72 60 40 21 20 3 3 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 37. Resultados da emoção scared (primeiro vídeo em cima; segundo vídeo em baixo). Nas figuras anteriores onde surgem dois gráficos, o primeiro refere-se aos resultados obtidos quando os utilizadores vêem a emoção pela primeira vez e o segundo refere-se aos resultados obtidos quando os utilizadores vêem a mesma emoção pela segunda vez, no mesmo questionário. Em todos os casos essa segunda vez surge depois de todas as emoções terem aparecido. Como se pode verificar a percepção emocional melhora quando o utilizador já viu todas as emoções. Os níveis de sucesso na identificação emocional estão a seguir resumidos: Anger: 92% (média); Suspicion: 90%; Joy: 90%; Disgust: 87% (média); Surprise 76%; Sadness: 93%; Fear: 66% (média). As emoções mais confundidas (uma com a outra) foram a “surpresa” e o “medo”. Essa confusão não foi surpreendente porque a literatura refere-a como frequente. Página 61 A média de percentagens de identificação emocional bem-sucedida, conforme a lista anterior, foi de 85%. 5.2. Duarte Esta fase da avaliação teve início com a preparação de um cenário demonstrativo contemplando um conjunto de grupos de perguntas de tipos distintos (domínio, pessoais, ofensas, etc). Posteriormente usadas em interacções em tempo-real, com o sistema configurado com diferentes personalidades, essas perguntas e outros eventos fizeram-no transitar para vários estados ao longo do tempo. Criaram-se vídeos dessas interacções que foram incorporados em questionários online cuidadosamente elaborados. A escolha de questionários neste formato prendeu-se à possibilidade de se reunir mais facilmente um conjunto maior de resultados. Esses inquéritos serviram para verificar a percepção de emoções, comportamentos naturais e a noção de personalidades diferentes por parte dos utilizadores. Finalmente, e de acordo com os resultados obtidos, esses questionários também evidenciaram onde o trabalho pode ser melhorado. Questionário A A estrutura deste questionário pode ser consultada no Apêndice C.3 e as perguntas da interacção que constou no mesmo podem ser vistas no Apêndice C.2. Com o Duarte configurado com uma personalidade agressiva, vejamos os resultados percentuais da amostra composta por 18 elementos: 100 80 100 67 80 60 60 40 20 11 22 56 44 40 20 0 Até 29 anos Entre 30 e 49 anos Mais de 50 anos 0 Feminino Masculino Figura 38. Idade e sexo dos interrogados do questionário A da segunda fase. Página 62 100 80 60 44 40 22 11 20 11 11 Funcionário/a público/a Professor(a) 0 Consultor/a Engenheiro/a Estudante Figura 39. Profissão dos interrogados do questionário A da segunda fase. 100 100 80 60 40 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 40. Resultados de parte da interacção onde predomina a emoção joy. 100 80 78 60 40 22 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 41. Resultados de partes da interacção onde predomina a emoção suspicion. Página 63 100 89 80 60 40 20 11 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado 100 100 80 60 40 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste 100 Zangado 78 80 60 40 22 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 42. Resultados de partes da interacção onde predomina a emoção anger. 100 80 67 60 40 20 22 11 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 43. Resultados de partes da interacção onde predomina a emoção disgust. Página 64 100 100 78 80 78 80 60 60 40 40 22 20 0 0 Agressiva Moderada 22 20 0 Muito natural Ingénua Natural Pouco natural Nada natural Figura 44. Personalidade e naturalidade percebidas pelos interrogados do questionário A da segunda fase. Os níveis de sucesso na identificação emocional estão a seguir resumidos: Joy: 100%; Suspicion: 78%; Disgust: 67%; Anger: 89% (média). A média de percentagens de identificação emocional bem-sucedida, conforme a lista anterior, foi de 84%. É curioso, e também estranho, verificar que a emoção disgust sofreu um decréscimo percentual na correcta identificação. É provável que tenha sido confundida com a emoção anger porque neste cenário o Duarte era agressivo nas suas respostas. A percentagem de utilizadores que reconheceu que o Duarte tinha uma personalidade agressiva foi de 78%, o suficiente para se considerar que essa personalidade foi bem conseguida. Todos os utilizadores acharam que ao nível global o Duarte tinha um comportamento natural ou muito natural, o que também revela sucesso na concretização dos objectivos propostos. No que toca às opiniões dos interrogados, foi dito que o Duarte podia estar a ser agressivo demais, apesar de incentivar e ser simpático quando questionado a propósito do domínio. Foi também dito que nos momentos mortos o Duarte podia ter iniciativa e perguntar coisas. Página 65 Questionário B A estrutura deste questionário pode ser consultada no Apêndice C.3 e as perguntas da interacção que constou no mesmo podem ser vistas no Apêndice C.2. Com o Duarte configurado com uma personalidade moderada, era esperado analisar-se a percepção de emoções para esse caso, mas tal não foi possível. Questionário C A estrutura deste questionário pode ser consultada no Apêndice C.3 e as perguntas da interacção que constou no mesmo podem ser vistas no Apêndice C.2. Com o Duarte configurado com uma personalidade ingénua, vejamos os resultados percentuais da amostra composta por 14 elementos: 100 100 71 80 80 60 60 29 40 57 43 40 20 20 0 Até 29 anos Entre 30 e 49 anos 0 Mais de 50 anos Feminino Masculino Figura 45. Idade e sexo dos interrogados do questionário C da segunda fase. 100 80 60 36 40 20 14 21 14 14 Médico/a Professor(a) 0 Consultor/a Engenheiro/a Estudante Figura 46. Profissão dos interrogados do questionário C da segunda fase. Página 66 100 100 80 60 40 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 47. Resultados de parte da interacção onde predomina a emoção joy. 100 86 80 60 40 20 14 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado 100 100 80 60 40 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado 100 100 80 60 40 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 48. Resultados de partes da interacção onde predomina a emoção sadness. Página 67 100 86 80 60 40 14 20 0 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado Figura 49. Resultados de parte da interacção onde predomina a emoção surprise. 100 80 71 60 40 20 14 14 Surpreso Triste 0 Assustado Desconfiado Enojado Feliz Zangado Figura 50. Resultados de parte da interacção onde predomina a emoção fear. 100 86 100 86 80 80 60 60 40 40 20 14 20 0 0 Agressiva Moderada 14 Muito natural Ingénua Natural Pouco natural Nada natural Figura 51. Personalidade e naturalidade percebidas pelos interrogados do questionário C da segunda fase. Os níveis de sucesso na identificação emocional estão a seguir resumidos: Joy: 100%; Sadness: 95% (média); Surprise: 86%; Fear: 71%. Página 68 A média de percentagens de identificação emocional bem-sucedida, conforme a lista anterior, foi de 88%. A percentagem de utilizadores que reconheceu que o Duarte tinha uma personalidade ingénua foi de 86%, mais uma vez o suficiente para se considerar que essa personalidade foi bem conseguida. Todos os utilizadores acharam que ao nível global o Duarte tinha um comportamento natural ou muito natural, o que outra vez também revela sucesso na concretização dos objectivos propostos. Quanto às opiniões dos interrogados, foi dito que o Duarte era vulnerável, sensível demais, e que não inspirava muita confiança pois não parecia muito seguro. No fim desta análise pode-se concluir que a implementação dos objectivos foi bem-sucedida. Os utilizadores consideram que o Duarte manifesta um comportamento natural, reconhecem correctamente as emoções e personalidade do Duarte, construindo opiniões diferentes em cenários semelhantes. Página 69 6. Conclusões Vários artigos foram estudados a fim de se perceber que abordagens e funcionalidades caracterizam a maioria dos ECAs e sistemas ditos emocionais. A aproximação da interacção com estes agentes à interacção entre humanos é o objectivo base destes sistemas, sendo a naturalidade e credibilidade as principais características pretendidas. Assim a concretização de uma correcta representação emocional e de um comportamento geral credível foram as principais funcionalidades deste trabalho. No Subcapítulo 6.1 é feito um apanhado das contribuições deste trabalho para a plataforma, assim como uma ponte entre o que foi feito e o estado da arte – sumário da situação actual do sistema. Depois no Subcapítulo 6.2 é feita uma previsão das características e funcionalidades que podem ser introduzidas para progredir o trabalho já efectuado e melhorar ainda mais a plataforma DIGA. Por fim, no Subcapítulo 6.3 tecem-se os comentários finais a este projecto. 6.1. Estado actual Resumidamente, com este trabalho o sistema passou a incorporar: Sete estados emocionais com uma elevada taxa de identificação bem-sucedida (assustado, desconfiado, enojado, feliz, surpreso, triste e zangado); Um renovado agente comportamental e emocional que reflecte esses sete estados emocionais, bem como os estados “aborrecido” e “adormecido”, e outros comportamentos como por exemplo a concordância (ou discordância) com o diálogo visível na cara; Declínio emocional distinto para todas as emoções e variante com a personalidade; Um reestruturado formato de ficheiro de domínio resultQA.xml que considera oito tipos de questões (confusion, domain, neutral, offense, personal, threat, unexpectation e yuck) e impactos emocionais diferentes (intensidades); Uma abordagem simples ao conceito de personalidade, com o intuito de se possibilitar comportamentos distintos para perguntas semelhantes; Respostas condicionadas pelo tipo de personalidade. Página 71 O conjunto de estados emocionais básicos foi seleccionado de acordo com (Ekman & Friesen, 1975) (Capítulo 2.1), e a esse acrescentou-se um outro estado – desconfiança. Para uma eficaz representação emocional caracterizou-se cada um dos estados referidos segundo o sistema FACS (Capítulo 2.1), as tabelas presentes em (Pelachaud, 2003) (Capítulo 2.1) e o contínuo feedback dos utilizadores. Todos os sistemas analisados no decorrer do estado da arte, por exemplo o Galatea (Capítulo 2.4), usam representações emocionais iguais ou parecidas à implementada. Ficou provado pelos testes que essa solução foi uma mais-valia porque se obteve elevadas percentagens de correcta identificação emocional. À semelhança do que acontece com sistemas como a versão da Greta discutida no Capítulo 2.3 ou a REA (Capítulo 2.6), são eventos de diferentes tipos que influenciam o comportamento geral do agente por intermédio do redesenhado módulo comportamental. Por outro lado e atendendo ao tempo de vida de uma emoção o declínio emocional é calculado de acordo com a fórmula de Picard (Capítulo 4.2.4). Já o formato VHML usado nas instruções que chegam ao Face vai de encontro à APML usada por exemplo no sistema Greta. Confirmou-se que todas as contribuições efectuadas funcionam como um todo, já que os utilizadores no geral classificaram o Duarte como “natural” e verificou-se que apesar da simplicidade do conceito de personalidade desenvolvido, os seus objectivos foram atingidos – os utilizadores correctamente associam personalidades distintas em interacções semelhantes. Um fenómeno interessante e que ficou também perceptível é a influência que o comportamento do Duarte tem na opinião e confiança que os utilizadores depositam no sistema, uma vez que por exemplo o Duarte na sua versão tímida despromoveu a confiança dos utilizadores no agente. Outra característica interessante é a relevância do diálogo social, já que frequentemente o sistema é confrontando com perguntas de teor pessoal e social. É importante o sistema saber ter resposta para esses casos. Resumidamente, neste momento a plataforma DIGA é um sistema melhor, mais natural e atractivo, mas também mais envolvente e intuitivo que o inicial. Pelos testes efectuados verificou-se que os utilizadores envolvem-se e interessam-se bastante mais pelo sistema durante as interacções, o que estimula e prolonga a sua duração, ou seja, são feitas mais perguntas. Página 72 6.2. Trabalho futuro É possível descrever um conjunto de propostas de melhoria do sistema actual. Assim sendo neste subcapítulo apresentar-se-ão cinco sugestões para esse efeito. Conjunção de emoções: É sabido que as pessoas são frequentemente invadidas por conjuntos de emoções, pelo que muitas vezes exibem um estado emocional que é composto por mais do que uma emoção. Efectivamente a conjunção de emoções é um fenómeno habitual, podendo suscitar combinações de felicidade e surpresa, repugna e medo ou tristeza e raiva. Seria interessante arranjar um mecanismo que permitisse a evolução dos estados emocionais e do módulo Face a fim de se possibilitar a conjunção de emoções; Histórico interaccional e emocional: Os eventos passariam a ter um impacto mais profundo. Por exemplo, se o sistema fosse confrontando com eventos desagradáveis sucessivos, seria cada vez mais difícil reverter o estado emocional negativo resultante. Não bastariam alguns eventos agradáveis para o Duarte voltar a estar bem-humorado; Espontaneidade: Em vez de estar apenas disponível para responder ao que lhe é perguntado, o sistema podia ser mais proactivo e na ausência de questões perguntar ou falar ao utilizador sobre questões relacionados com o domínio, referir curiosidades ou contar piadas; Percepção espacial: Possibilitaria, por exemplo, que o sistema percebesse onde se encontrava o utilizador. Essa localização talvez pudesse ser inferida através de uma webcam ou um array de microfones. O Duarte poderia então acompanhar com o olhar o utilizador enquanto esse se movesse; Tomada de vez: Outra funcionalidade muito atractiva. A eficiência do sistema poderia aumentar imenso com esta introdução. O Duarte passaria a deixar-se ser interrompido pelo utilizador ou a reconhecer gestos que indiciassem o seu desejo de falar. Página 73 6.3. Observações finais Uma das fundamentais dificuldades deste trabalho resultou do facto de ter partido de uma plataforma já existente. Para além de todo o trabalho associado a qualquer dissertação relativa a um novo projecto, bastante tempo foi consumido no estudo da própria DIGA. A ajuda das pessoas que participaram no desenvolvimento da mesma foi crucial na concretização deste projecto. Por outro lado a subjectividade da principal temática do trabalho, as emoções, também o dificultou. O processo de caracterização emocional foi bastante moroso. Ainda assim, praticamente todos os objectivos inicialmente propostos no arranque do projecto foram concretizados. Infelizmente, apenas não foi possível efectuar a avaliação do cenário do questionário B (Apêndice C.2) na fase de testes, apesar de se encontrar totalmente criada a personalidade moderada, e efectuar uma segunda avaliação dos três cenários com a inclusão do declínio emocional. Pelo que foi dito no Subcapítulo 6.2 não é lógico pensar-se que este sistema esteja algum dia terminado, já que há sempre espaço para novas funcionalidades. Existirá, portanto, sempre espaço para se introduzir melhorias e, por isso, espera-se que esta tese sirva de base para outros trabalhos. Página 74 Bibliografia Beskow, J. e McGlashan, S. 1997. Olga a conversational agent with gestures. Proceedings of the IJCAI'97 workshop on animated interface agents - Making them intelligent. San Francisco, CA, USA : Morgan Kaufmann Publishers, 1997. Beun, R., de Vos, E. e Witteman, C. 2003. Embodied conversational agents: Effects on memory performance and anthropomorphisation. Proceedings of the International Conference on Intelligent Virtual Agents 2003. s.l. : Springer-Verlag, 2003. pp. 315–319. Bickmore, T. W. e Picard, R. W. 2005. Establishing and maintaining long-term human-computer relationships. ACM Transactions on Computer-Human Interaction (TOCHI). s.l. : ACM, 2005. Vols. 122, p. 327. Cassell, J., Bickmore, T. W. e Billinghurst, M. N. 1999. Embodiment in conversational interfaces: Rea. Proceedings of the SIGCHI conference on human factors in computing systems: The CHI is the limit, p. 520-527. New York, USA : ACM Press, 1999. Cassell, J., et al. 2002. MACK: Media lab Autonomous Conversational Kiosk. Proceedings of IMAGINA '02. Cambridge : MIT Media Lab, 15 de Dezembro de 2002. Cassell, J., Vilhjálssom, H. H. e Bickmore, T. 2001. BEAT: the Behavior Expression Animation Toolkit. Proceedings of the 28th annual conference on computer graphics and interactive techniques. New York, USA : ACM New York, 2001. pp. 477-486. Cavalluzzi, A., et al. 2003. Emotional dialogs with an embodied agent. Intelligent Interfaces, Department of Informatics, University of Bari, Italy : s.n., 2003. Christoph, N. 2004. Empirical evaluation methodology for embodied conversational agents. From brows to trust: evaluating embodied conversational agents. Norwell, MA, USA : Kluwer Academic Publishers, 2004. pp. 67-99. Dias, J. e Paiva, A. 2005. Feeling and reasoning: A computational model for emotional characters. Proceedings of 12th Portuguese Conference on Artificial Intelligence, EPIA 2005. 2005. pp. 127-140. Página 75 Ekman, P. e Friesen, W. 1975. Unmasking the face: a guide to recognizing emotions from facial clues. s.l. : Prentice-Hall, Inc., 1975. Foster, M. E. 2007. Enhancing human-computer interaction with embodied conversational agents. Lecture Notes in Computer Science. s.l., Germany : Springer, 2007. Kawamoto, S., et al. 2002. Galatea: open-source software for developing anthropomorphic spoken dialog agents. Proceedings of PRICAI-02, International Workshop on Lifelike Animated Agents. s.l. : Citeseer, 2002. pp. 64-69. Koda, T. 1996. Agents with faces: a study on the effect of personification of software agents. Tese de mestrado não publicada. MIT Media Lab, Cambridge : s.n., 1996. Mancini, M., Hartmann, B. e Pelachaud, C. Non-verbal behaviors expressivity and their representation. PF-star report 3. University Paris VIII, IUT of Montreuil : s.n. Marsi, E. e van Rooden, F. 2007. Expressing uncertainty with a talking head in a multimodal question-answering system. Proceedings of the Workshop on Multimodal Output Generation. Aberdeen, UK : s.n., 2007. pp. 105–116. Martins, Filipe M. 2008. DIGA - Desenvolvimento de uma plataforma para criação de sistemas de diálogo. Tese de mestrado não publicada. Instituto Superior Técnico, Universidade Técnica de Lisboa : s.n., 2008. Mourão, M. A. 2005. Gestão e representação de domínios em sistemas de diálogo. Tese de mestrado. Instituto Superior Técnico, Universidade Técnica de Lisboa : s.n., 2005. Ortony, A., Clore, G. e Collins, A. 1988. The cognitive structure of emotions. Cambridge : Cambridge University Press, 1988. Pelachaud, Catherine. 2003. Emotion expressiveness embedded in representation languages for ECAs. IUT of Montreuil : LINC - Paragraphe, 28 de Novembro de 2003. Thórisson, K. R. 1997. Layered modular action control for communicative humanoids. Computer Animation '97. Geneva, Switzerland : IEEE Computer Society Press, 1997. Viveiros, M. 2004. Cara Falante - Uma interface visual para um sistema de diálogo falado. Trabalho Final de Curso. Instituto Superior Técnico, Universidade Técnica de Lisboa : s.n., 2004. Página 76 Apêndice A A.1. Lista completa de AUs do sistema FACS AU AU1 AU2 AU4 AU5 AU6 AU7 AU8 AU9 AU10 AU11 AU12 AU13 AU14 AU15 AU16 AU17 AU18 AU19 AU20 AU21 AU22 AU23 AU24 AU25 AU26 AU27 AU28 AU29 AU30 Name Inner Brow Raiser Outer Brow Raiser Brow Lowerer Upper Lid Raiser Cheek Raiser & Lid Compressor Lid Tightener Lips Toward Each Other Nose Wrinkler Upper Lip Raiser Nasolabial Furrow Deepener Lip Corner Puller Sharp Lip Puller Dimpler Lip Corner Depressor Lower Lip Depressor Chin Raiser Lip Pucker Tongue Show Lip Stretcher Neck Tightener Lip Funneler Lip Tightener Lip Presser Lips Part Jaw Drop Mouth Stretch Lip Suck Jaw Thrust Jaw Sideways AU AU31 AU32 AU33 AU34 AU35 AU36 AU37 AU38 AU39 AU41 AU42 AU43 AU44 AU45 AU46 AU51 AU52 AU53 AU54 AU55 AU56 AU57 AU58 AU61 AU62 AU63 AU64 AU65 AU66 Name Jaw Clencher Lip Bite Cheek Blow Cheek Puff Cheek Suck Tongue Bulge Lip Wipe Nostril Dilator Nostril Compressor Lip Droop Slit Eyes Closed Squint Blink Wink Head Turn Left Head Turn Right Head Up Head Down Head Tilt Left Head Tilt Right Head Forward Head Back Eyes Turn Left Eyes Turn Right Eyes Up Eyes Down Walleye Cross-eye Tabela 7. Lista completa de AUs do sistema FACS. Página 77 A.2. Mapeamento de AUs e músculos O mapeamento entre AUs e os músculos que as concretizam encontra-se na lista a seguir. AU1, Inner Brow Raiser – Frontalis (pars medialis); AU2, Outer Brow Raiser – Frontalis (pars lateralis); AU4, Brow Lowerer – Depressor glabellae, Depressor supercilii, Corrugator supercilii; AU5, Upper Lid Raiser – Levator palpebrae superioris; AU6, Cheek Raiser – Orbicularis oculi (pars orbitalis); AU7, Lid Tightener – Orbicularis oculi (pars palpebralis); AU9, Nose Wrinkler – Levator labii superioris alaeque nasi; AU10, Upper Lip Raiser – Levator labii superioris, caput infraorbitalis; AU11, Nasolabial Deepener – Zygomaticus minor; AU12, Lip Corner Puller – Zygomaticus major; AU13, Sharp Lip Puller – Levator anguli oris (also known as Caninus); AU14, Dimpler – Buccinator; AU15, Lip Corner Depressor – Depressor anguli oris (also known as Triangularis); AU16, Lower Lip Depressor – Depressor labii inferioris; AU17, Chin Raiser – Mentalis; AU18, Lip Pucker – Incisivii labii superioris and Incisivii labii inferioris; AU19, Tongue Out; AU20, Lip stretcher – Risorius w/ platysma, AU21, Neck Tightener – Platysma; AU22, Lip Funneler – Orbicularis oris; AU23, Lip Tightener – Orbicularis oris; AU24, Lip Pressor – Orbicularis oris; AU25, Lips part – Depressor labii inferioris or relaxation of Mentalis, or Orbicularis oris; AU26, Jaw Drop – Masseter, relaxed Temporalis and internal pterygoid; AU27, Mouth Stretch – Pterygoids, Digastric; AU28, Lip Suck – Orbicularis oris; AU29, Jaw Thrust; AU30, Jaw Sideways; AU31, Jaw Clencher – Masseter; AU32, Lip Bite; AU33, Cheek Blow; Página 78 AU34, Cheek Puff; AU35, Cheek Suck; AU36, Tongue Bulge; AU37, Lip Wipe; AU38, Nostril Dilator; AU39, Nostril Compressor; AU41, Lid Droop; AU42, Slit; AU43, Eyes Closed – Relaxation of Levator palpebrae superioris; Orbicularis oculi (pars palpebralis); AU44, Squint; AU45, Blink – Relaxation of Levator palpebrae superioris; Orbicularis oculi (pars palpebralis); AU46, Wink – Relaxation of Levator palpebrae superioris; Orbicularis oculi (pars palpebralis). Página 79 Apêndice B B.1. Lista completa de músculos Elipsoidal O único músculo deste tipo é o seguinte: orbicularisOris. Eye O conjunto de músculos deste tipo é o seguinte: cheekLeft; cheekRight; mouthLeft; mouthRight; OrbicularisOculiLeft; OrbicularisOculiLeft2; OrbicularisOculiLeft3; OrbicularisOculiRight; OrbicularisOculiRight2; OrbicularisOculiRight3; orbicularisOculiOrbitaLeft; orbicularisOculiOrbitaRight. Jaw O conjunto de músculos deste tipo é o seguinte: frontalisOuterLeft; jawRotations. Linear O conjunto de músculos deste tipo é o seguinte: alaequeNasiLeft; alaequeNasiRight; Página 81 corrugatorLeft; corrugatorRight; depressorAnguliOrisLeft; depressorAnguliOrisLeft2; depressorAnguliOrisRight; depressorAnguliOrisRight2; frontalisInnerLeft; frontalisMiddleLeft; frontalisInnerRight; frontalisMiddleRight; frontalisOuterLeft; frontalisOuterRight; levatorLabiiSuperiorisLeft; levatorLabiiSuperiorisLeft2; levatorLabiiSuperiorisRight; levatorLabiiSuperiorisRight2; lowerLipDummie; lowerLipDummie2; procerusLeft; procerusRight; risoriusLeft; risoriusRight; upperLipdummie; upperLipDummy2; zygomaticusMajorLeft; zygomaticusMajorRight. Página 82 B.2. Ficheiros VHML blink.xml <?xml version='1.0' encoding='utf-8'?> <vhml> <!--blink--> <p> <headmovement name='eyeblink' duration='.3' nblink='1' slope='.1'/> </p> <p> <emotion name='#EMOTION#' slope='1.0' intensity='#INTENSITY#' duration='4'/> </p> </vhml> bored.xml <?xml version='1.0' encoding='utf-8'?> <vhml> <!--boredom detected--> <p> <headmovement name='eyeblink' duration='2' nblink='1' slope='.1'/> </p> <p> <headmovement name='eyeslook@' xintensity='0' yintensity='0' slope='1' duration='5'/> </p> <p> <headmovement name='headlook@' xintensity='#X_Head#' yintensity='#Y_Head#' slope='1' duration='5'/> </p> <p> <emotion name='sleepy' slope='1.0' intensity='60' duration='4'/> </p> </vhml> Página 83 look.xml <?xml version='1.0' encoding='utf-8'?> <vhml> <!--look--> <p> <headmovement name='eyeblink' duration='.3' nblink='1' slope='.1'/> </p> <p> <headmovement name='eyeslook@' xintensity='#X_Eyes#' yintensity='#Y_Eyes#' slope='1' duration='2'/> </p> <p> <headmovement name='headlook@' xintensity='#X_Head#' yintensity='#Y_Head#' slope='1' duration='3'/> </p> <p> <emotion name='#EMOTION#' slope='1.0' intensity='#INTENSITY#' duration='5'/> </p> </vhml> talk.xml <?xml version="1.0" encoding="ISO-8859-1" ?> <vhml> <!--speech detected--> <p> <headmovement name='eyeslook@' xintensity='#X_Eyes#' yintensity='#Y_Eyes#' slope='1' duration='2'/> </p> <p> <headmovement name='headlook@' xintensity='#X_Head#' yintensity='#Y_Head#' slope='1' duration='3'/> </p> <p> <emotion name='#EMOTION#' slope='1.0' intensity='#INTENSITY#' duration='4'/> #TEXT# </p> </vhml> Página 84 no.xml <?xml version="1.0" encoding="ISO-8859-1" ?> <vhml> <!--speech (no) detected--> <p> <headmovement name='eyeslook@' xintensity='0' yintensity='0' slope='1' duration='2'/> </p> <p> <headmovement name='headlook@' xintensity='-10' yintensity='0' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='10' yintensity='0' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='-10' yintensity='0' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='0' yintensity='0' slope='1' duration='.5'/> </p> <p> <emotion name='#EMOTION#' slope='1.0' intensity='#INTENSITY#' duration='4'/> #TEXT# </p> </vhml> sleeping.xml <?xml version='1.0' encoding='utf-8'?> <vhml> <p> <!--sleep detected--> <emotion name='sleepy' slope='20' intensity='100'> <headmovement name='headlook@' xintensity='0' yintensity= '-40' slope='10' duration='3'/> </emotion> </p> </vhml> Página 85 look_eyes_only.xml <?xml version='1.0' encoding='utf-8'?> <vhml> <!--look--> <p> <headmovement name='eyeslook@' xintensity='#X_Eyes#' yintensity='#Y_Eyes#' slope='1' duration='2'/> </p> <p> <emotion name='#EMOTION#' slope='1.0' intensity='#INTENSITY#' duration='5'/> </p> </vhml> yes.xml <?xml version="1.0" encoding="ISO-8859-1" ?> <vhml> <!--speech (yes) detected--> <p> <headmovement name='eyeslook@' xintensity='0' yintensity='0' slope='1' duration='2'/> </p> <p> <headmovement name='headlook@' xintensity='0' yintensity='-10' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='0' yintensity='10' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='0' yintensity='-10' slope='1' duration='.5'/> <headmovement name='headlook@' xintensity='0' yintensity='0' slope='1' duration='.5'/> </p> <p> <emotion name='#EMOTION#' slope='1.0' intensity='#INTENSITY#' duration='4'/> #TEXT# </p> </vhml> Página 86 Apêndice C C.1. Questionário da primeira fase de avaliação 1. Dados pessoais 1) Idade (Escolha uma opção) Até 29 anos Entre 30 e 49 anos 50 anos ou mais 2) Sexo (Escolha uma opção) Masculino Feminino 3) Profissão (Resposta aberta) 2. Estados emocionais 4) Diria que no vídeo A o Duarte está… (Escolha uma opção) 4 Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado 4 No questionário original esta pergunta repete-se para as questões 4 a 13 (vídeos A a J, respectivamente). Página 87 C.2. Diálogos dos vídeos de interacção (Questionários A, B e C) Olá. Eu sou o Duarte Digital. Gosto imenso de museus e agora estou a fazer um trabalho sobre a Custódia de Belém. Faz-me perguntas sobre a Custódia de Belém! Vamos lá! (A – Agressivo; B – Moderado; C – Ingénuo) Domain O que é a Custódia? Custódia é o nome atribuído ao objecto que transporta as hóstias consagradas em algumas celebrações da Religião Cristã. (A ; B ; C) Porque é que se chama Custódia de Belém? Esta peça chama-se Custódia de Belém porque esteve muito tempo no Mosteiro de Santa Maria de Belém. Sabias que este Mosteiro é hoje designado por Mosteiro dos Jerónimos? (A; B; C) Quem é que a fez? A Custódia de Belém foi feita por Gil Vicente, o ourives de Dona Leonor, irmã do Rei Dom Manuel. Foi este que, juntamente com os artífices da sua oficina, construiu a Custódia de Belém. (A; B; C) Com que material foi construída? (Ausente no C) Os materiais com que a Custódia de Belém foi construída são ouro e esmaltes e, no centro, tem um viril de vidro. (A; B) Confusion Em quantos euros está avaliada a Custódia de Belém? Eu não sei a resposta a essa pergunta! (A) Desculpa, mas eu ainda não sei isso! (B) Tenho tanta pena, mas não sei a resposta a essa pergunta! (C) É verdade que Gil Vicente escreveu várias obras? Sabes me dar algum exemplo? Sim, escreveu, mas agora não te sei dizer nenhuma! (A; B; C) Porque é que não sabes? Página 88 Ainda não estudei essa parte! (A) Ainda não estudei essa parte. Mas prometo que vou estudá-la para a próxima te poder ajudar. (B) Desculpa, ainda não estudei isso! Mas prometo que vou estudá-la para a próxima te poder ajudar. (C) Afinal tu não percebes nada da Custódia de Belém. Tu é que não sabes me fazer perguntas! (A) Percebo pois! Faz lá mais perguntas! (B) Não sejas assim comigo! É que não estou a perceber as tuas perguntas! (C) Personal O que é que fazes na vida? (Ausente no C) Já te tinha dito que sou o Duarte Digital e tenho andado a estudar a Custódia de Belém! (A) Eu sou o Duarte Digital e tenho andado a estudar a Custódia de Belém. Posso partilhar contigo tudo o que aprendi. (B) Quantos anos tens? Não tenho que te responder a isso! (A) Como nasci a 23 de Maio de 1991, tenho 17 anos. (B) É simpático tentares me conhecer melhor! Tenho 17 anos e nasci a 23 de Maio de 1991! (C) Onde fica a tua casa? (Ausente no A) Eu actualmente moro dentro deste monitor, mas tenho visto vários muito mais giros. (B) Tens piada! Eu como sou virtual moro dentro deste monitor! (C) Quem é o teu pai? (Ausente no A) O meu pai é um agente virtual tal como eu que percebe muito sobre geografia! (B) O meu pai é um agente virtual que percebe muito sobre geografia! Estou a ver que és muito curioso! (C) Unexpectation Gostas de ir ao cinema? Sim, mas nem comento! Não estou aqui para isso! Que raio de perguntas tu me fazes! Questiona-me sobre a Custódia! (A) Página 89 Sim, adoro cinema, mas não posso sair deste monitor! (B) És demais! Adoro cinema, tenho vários filmes preferidos! (C) Diz-me um dos teus filmes favoritos. (Ausente no A) Gostei do Substitutos! Quem me dera ter tal tecnologia! (B) És tão inesperado! Adorei o Substitutos! Gostava de ser feito de tal tecnologia! (C) Timeout… (Ausente no C) Acorda Duarte! (Ausente no C) Ninguém me pergunta nada! É normal que adormeça! (A) Desculpa, adormeci! Pergunta-me coisas! (B) Offense Já estou farto de ti. Tens bom remédio! Vai-te embora! (A) Não me agrada que sejas malcriado! (B) Assim ofendes-me! (C) Não vales nada! Pela minha parte podes ir embora, porque não suporto pessoas mal-educadas. (A) Estás a ser mal-educado! (B) Deixas-me triste! (C) És mesmo parvo! Já olhaste para ti? (A) Não é preciso ser malcriado! (B) Por favor não chames nomes! Fico triste! (C) Yuck Vai pentear macacos! Parvo! Nem há macacos aqui! (A) Não sejas porco! E também não há macacos aqui! (B) Não sejas assim para mim! E também nem há macacos aqui! (C) Podes sempre ir buscá-los ao nariz! Página 90 Que porcaria! Essa nem merece resposta! (A) Mas que porcaria! (B) Olha que porcaria! Estás sempre a ser desagradável comigo! (C) Threat Vou te encher de vírus? Tu não te atrevas a fazer isso! (A) Não faças isso por favor! (B) Por que farias isso? Sou tão simpático para ti! (C) E se desligar o computador? Não tenho medo de ti! (A) Não faças isso, não te estou a prejudicar! (B) Por favor não faças isso, tenho sido tão educado e estás-me a deixar incomodado. (C) Confusion Adeus Duarte. Adeus! (A) Não queres mesmo perguntar mais nada? Não vás! (B) Já te vais embora? Por favor fica mais um pouco! (C) Olha, vou mesmo embora! Já não fazes cá falta! (A) Então adeus! Quando quiseres volta! (B) Fico com pena! Volta assim que puderes! (C) Legenda: Utilizador Duarte Página 91 C.3. Questionário (A, B e C) da segunda fase de avaliação 1. Dados pessoais 1) Idade (Escolha uma opção) Até 29 anos Entre 30 e 49 anos 50 anos ou mais 2) Sexo (Escolha uma opção) Masculino Feminino 3) Profissão (Resposta aberta) 2. Estados emocionais 4) Diria que no final da parte 1 o Duarte está… (Escolha uma opção) Assustado Desconfiado Enojado Feliz Surpreso Triste Zangado 5 3. Personalidade e comportamento 10) Após observar o Duarte penso que nesta interacção ele tem uma personalidade... (Escolha uma opção) 5 Agressiva Moderada Ingénua No questionário original esta pergunta repete-se para as questões 4 a 9 (partes 1 a 6, respectivamente). Página 92 11) Considero que o comportamento geral do Duarte é… (Escolha uma opção) Muito natural Natural Pouco natural Nada natural 4. Observações 12) Qual é a sua opinião relativamente ao Duarte? (Resposta aberta) Página 93