Full text
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Assistentes Virtuais para Comunicação Empresarial João Carlos Gonçalves Costa Mestrado Integrado em Engenharia Informática e Computação Orientador: Henrique Daniel de Avelar Lopes Cardoso 24 de Julho de 2017
Assistentes Virtuais para Comunicação Empresarial João Carlos Gonçalves Costa Mestrado Integrado em Engenharia Informática e Computação 24 de Julho de 2017
Resumo Nos últimos anos, o número de dispositivos com acesso à Internet aumentou, assim como a eficiência da comunicação remota. Não obstante o facto de existirem hoje inúmeros canais de comunicação, como chat,email, vídeo, as pessoas continuam a considerar as chamadas de voz como o canal de comunicação que oferece uma experiência mais pessoal em tempo real. Contudo, no mundo empresarial, as pessoas estão constantemente ocupadas com reuniões e tarefas, não conseguindo dar resposta imediata a todos os contactos que recebem. Por outro lado, cada vez mais empresas optam pela terceirização de certas tarefas, assim como permitem aos seus funcionários trabalharem remotamente a partir de sua casa. Isto levou a um aumento das audioconferências telefónicas, chamadas telefónicas com mais do que apenas dois participantes . Estas permitem a realização de reuniões entre equipas de trabalho localizadas em diferentes locais. No seguimento do contexto apresentado, esta dissertação foi desenvolvida partindo de dois objetivos iniciais. O primeiro centrou-se no desenvolvimento de um sistema que, controlado exclusivamente por voz, fosse capaz de gerir diversas funcionalidades necessárias à realização de uma audioconferência telefónica, como por exemplo, o agendamento ou a ligação à mesma. O sistema tira partido de um assistente virtual que comunica com o utilizador de forma semelhante à humana. Conjuntamente, e este foi o segundo objetivo desta dissertação, desenvolveu-se um protótipo de um sistema para, tirando partido de uma aplicação Android, responder a todas as chamadas de voz nativa recebidas por um utilizador que se encontra ocupado. Uma chamada nativa consiste numa chamada de telefone "regular"usando a public switched telephone network (PSTN). A aplicação desenvolvida detecta uma tentativa de chamada de voz nativa e inicia prontamente uma sessão de comunicação com a pessoa que iniciou a chamada, através de um assistente virtual (bot). O assistente virtual pergunta ao utilizador qual foi o motivo da chamada e interactivamente oferece algumas opções à pessoa que tentou contactar. Refira-se que, à data de término desta dissertação, ambos os assistentes virtuais desenvolvidos funcionam de forma independente. Já existem hoje em dia ferramentas e dispositivos de reconhecimento de fala, assim como sistemas que fazem o processo inverso, sistemas texto-voz. Na elaboração dos assistentes virtuais tirou-se partido das ferramentas referidas, nomeadamente do Amazon Lex eAmazon Alexa para entendimento de linguagem natural e criação de fluxos conversacionais e do Google Cloud Speech API para conversão de áudio em texto. O dispositivo Amazon Echo Dot, uma coluna wireless que permite receber controlos por voz, foi usado para tirar partido das capacidades da Amazon Alexa e permitir uma comunicação por voz com o utilizador. Utilizou-se também a plataforma de comunicações Twilio, que permite receber, controlar e monitorizar chamadas telefónicas. A avaliação da eficiência dos protótipos realizados foi conseguida com base em inquéritos de satisfação dos utilizadores e em testes de usabilidade. Com ambos sistemas desenvolvidos conseguiu-se dar resposta às questões que se levantaram. Contudo, o sistema de gestão de audioconferências telefónicas não apresentou uma eficácia e recetividade por parte dos utilizadores tão elevada como o sistema criado para dar resposta às chamadas recebidas por um utilizador que se encontra ocupado. i
ii
Abstract In recent years, the number of devices with Internet access as well as the efficiency of remote communications have increased. Despite the fact that today there are numerous communication channels such as chat, email and video, people still consider voice calls as the communication channel that offers a more personal experience in real time. However, in the business world, people are constantly busy with meetings and tasks, failing to respond immediately to all contacts they receive. On the other hand, more and more companies choose to outsource certain tasks as well as allow their employees to work remotely from their home. This made an increase in telephone audioconferences, telephone calls with more than just two participants. The audioconferences allow meetings between work teams located in different locations. Following the presented context, this dissertation was developed starting from two initial objectives. The first focused on the development of a system which, controlled exclusively by voice, would be able to manage several functionalities necessary to perform a telephone conference call, such as scheduling it or establishing its connection. The system takes advantage of a virtual assistant which communicates with the user in a way similar to a human. Together, and this was the second objective of this dissertation, a prototype of a system was developed to take advantage of an Android application for responding to all the native voice calls received by a busy user. A native call consists of a "regular"telephone call using the public switched telephone network (PSTN). The developed application detects a native voice call attempt and promptly starts a communication session with the person initiating the call through a virtual assistant (bot). The virtual assistant asks the user for the reason for the call and interactively offers some options to the person they tried to contact. It should be noted that at the end of this dissertation, both developed virtual assistants work independently. Nowadays there are tools and devices for speech recognition as well as tools for speech synthesis. The development of the virtual assistants took advantage of the mentioned tools, namely Amazon Lex and Amazon Alexa for understanding natural language and creating conversational flows, and the Google Cloud Speech API for converting audio to text. The Amazon Echo Dot device, a wireless speaker which allows the user to receive voice controls, was used to take advantage of Amazon’s capabilities and enable voice communications with the user. The Twilio communication platform was also used, which allows, through an API, to receive, control and monitor telephone calls. The evaluation of the efficiency of the realized prototypes was achieved based on user satisfaction surveys and usability tests. With both developed systems, the questions that arose were able to be answered. However, the telephone conference management system has not been as effective and responsive to users as the system created to respond to calls received by a busy user. iii
iv
Agradecimentos Gostaria de agradecer, em primeiro lugar, a toda a minha família que me apoiou em todo o meu percurso académico e certamente me continuará a apoiar, em especial aos meus pais e ao meu irmão. Agradeço também ao meu orientador da Faculdade de Engenharia da Universidade do Porto, Henrique Lopes Cardoso, que sempre se mostrou disponível para ajudar no que fosse necessário. Quero agradecer também à empresa Wit-Software, proponente desta dissertação, por me ter permitido desenvolver esta dissertação dentro das suas instalações e pelo acompanhamento próximo que sempre me foi dado. Agradeço também a todos os colaboradores desta empresa, em especial ao Paulo Sousa, ao Pedro Andrade, ao Jorge Sousa e à Simone Guedes. Gostaria de agradecer também a todos os meus amigos, aos que já conhecia, aos que tive a oportunidade de fazer durante esta dissertação, e a uma amiga especial, que me apoiaram e me deram força para fazer sempre mais e melhor. João Carlos Gonçalves Costa v
CONTEÚDO xii
Lista de Figuras 2.1 Rede de comunicação SIP [SJ08].......................... 12 2.2 Fluxo de chamadas de sistema IVR [SJ08](adaptado) ............... 13 3.1 Arquitetura da Wit Bot Platform .......................... 17 3.2 Exemplo de fluxo conversacional implementado com o Bizagi Modeler ..... 19 4.1 Arquitetura global do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2 Exemplo de intenção para agendar uma audioconferência com dia semanal e hora 24 4.3 Amazon Alexa Card para associar conta Wit-software e Amazon ......... 25 4.4 Processo de associação de contas . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.5 Vista de lista de convidados na Amazon Alexa App ................. 27 4.6 Vista de conferencia agendada na Amazon Alexa App ............... 28 4.7 Vista de resposta ao enunciado "Who is Tiago Ferreira"na Amazon Alexa App . . 29 5.1 Resultados de utilização e conhecimento das tecnologias de correio de voz e voz paraSMSporpartedaamostra........................... 32 5.2 Resultados de satisfação com a qualidade do serviço das por parte da amostra . . 33 5.3 Resultados de serviço preferencial de chamadas de voz . . . . . . . . . . . . . . 33 5.4 Arquitecturadealtonível.............................. 36 5.5 Exemplo de mensagem no formato TwiML ..................... 36 5.6 Visualização do menu principal da aplicação . . . . . . . . . . . . . . . . . . . . 38 5.7 Visualização da lista de chamadas respondidas pelo assistente virtual na aplicação 39 5.8 Visualização da vista de chat daaplicação..................... 39 xiii
LISTA DE FIGURAS xiv
Lista de Tabelas 2.1 Comparação de ferramentas [Lex17,Rod17,try17]................ 10 2.2 Diferenças entre VoIP ePSTN ........................... 11 6.1 Heurísticas para chat bots .............................. 44 6.2 Resultados da análise dos teste de usabilidade com base nas seis heurísticas para chat bots ....................................... 46 6.3 Resultados importantes ao inquérito sobre o assistente virtual para chamadas recebidas ....................................... 47 6.4 Resultados importantes ao inquérito referente ao assistente virtual de camadas recebidas ....................................... 49 xv
LISTA DE TABELAS xvi
Abreviaturas e Símbolos ASR Reconhecimento automático de fala NLU Entendimento de linguagem natural NLP Processamento de linguagem natural FOL Lógica de primeira ordem DAG Grafo acíclico dirigido XML Linguagem extensível de marcação genérica RDF Linguagem para representar informação na Internet OWL Linguagem der ontologias na Web API Interface de programação de aplicações WWW World Wide Web SIP Protocolo de iniciação de sessão IVR Unidade de resposta audível HTTP Protocolo de transferência de hipertexto PTSN Rede pública de telefonia comutada xvii
Capítulo 1 Introdução Neste capítulo será exposto sucintamente o contexto e a motivação do trabalho descrito nesta dissertação, os seus principais objetivos e a estrutura da mesma. 1.1 Contexto Os telemóveis são os dispositivos de comunicação mais bem-sucedidos de todos os tempos [Día05]. O lançamento comercial destes dispositivos levou muito tempo desde a criação dos primeiros protótipos, mas hoje em dia desempenham um papel indispensável no quotidiano de qualquer pessoa de um país desenvolvido, desde jovens estudantes a empresários de sucesso. Os telemóveis não são apenas um meio de comunicação, mas podem também desempenhar outros papéis devido à sua capacidade de armazenar uma grande quantidade de informação [Día05]. Atualmente já não se fala em telemóveis, mas sim em telefones inteligentes: smartphones. O enorme volume de vendas dos smartphones demonstra por si só o seu impacto considerável na sociedade. Os fabricantes e o marketing podem ser culpados por esse hype, mas não há dúvidas de que estes dispositivos apresentam grandes recursos e capacidades, como o permitir uma conexão rápida à Internet a partir de qualquer lugar, oferecer recursos educacionais e de negócio e, até mesmo, permitir a realização de tarefas que antigamente só eram possíveis com um computador ou notebook [SS13]. Assim se percebe a grande importância destes dispositivos no que diz respeito às pessoas que estão ligadas ao mundo empresarial. Contudo, os trabalhadores despendem imenso tempo em situações que os impossibilitam de responder atempadamente às chamadas recebidas [AB01]. Uma dessas situações, segundo [DS76], são as reuniões empresariais, que cada vez mais se tornam numa constante nas mais diversas empresas. Para além disso, cada vez mais as empresas optam pela terceirização dos seus serviços. Existem também cada vez mais empresas que permitem aos seus funcionários trabalharem remotamente a partir de suas casas [LKW09,Wat17a]. Consequentemente, aumentou o número de 1
Introdução audioconferências telefónicas entre funcionários dentro de cada empresa e entre empresas distintas [Wat17b]. Uma audioconferência telefónica consiste numa chamada telefónica onde comunicam mais do que dois participantes, sendo usadas frequentemente para reuniões e debates sobre determinados assuntos. Existem hoje diversos canais de comunicação, como por exemplo, canais de conversação (chat), email ou vídeo. Ainda assim, as pessoas na sua generalidade continuam a preferir as chamadas de voz nativas, isto é, chamadas de telefone “regular” usando a rede public switched telephone network (PSTN) [Pet03]. Segundo [Día05], parte dos utilizadores continua a evitar o uso de tecnologias como correio de voz (voice mail), que permite aos seus utilizadores trocar mensagens de voz quando uma chamada não pode ser estabelecida, e ainda a ferramenta voice-to-text, que possibilita converter voz em texto e transmitir este último sob a forma de mensagem textual para a pessoa com quem se pretendia estabelecer contacto mas que não respondeu à chamada de voz [CJP03]. As razões apontadas para relutância dos utilizadores em utilizar o correio de voz estão relacionadas com a sua interpretação do que é móvel. Os utilizadores percebem que o recetor não está disponível quando este último não responde à chamada. E, graças à mensagem de chamada perdida, o recetor saberá que foi contactado e retornará a chamada, pelo que não faz sentido perder tempo e dinheiro com o correio de voz [Día05]. Refira-se que, esta dissertação foi proposta pela empresa Wit-Software. Esta empresa, através dos seus colaboradores, apoiou sempre de perto o desenvolvimento desta dissertação, ajudando a tomar decisões e prestando auxílio sempre que necessário. A Wit-Software é uma empresa que procura criar soluções avançadas e produtos de marca branca para a industria das telecomunicações móveis. A empresa pretende desenhar o futuro das comunicações móveis e inspirar as pessoas pela diferença que impõe nos produtos que desenvolve. 1.2 Motivação e Objetivos Atendendo ao enquadramento apresentado, surgem algumas questões a que se pretende dar resposta. Apresenta-se de seguida a listagem de algumas dessas questões relativas ao processo de gestão de audioconferências: •Como tornar o processo de gestão de audioconferências mais simples e rápido? •Será que os novos dispositivos de comunicação por voz podem ter um papel importante nesse processo? •Serão estes dispositivos uma mais-valia? Ou a comunicação por voz nem sempre acelera os processos? Seguidamente, focando a motivação na constante taxa de ocupação dos funcionários e na sua relutância no uso do correio de voz e nos sistemas voice-to-text, surgem novas questões pertinentes: 2
Introdução •Existirá alguma utilidade na criação de um sistema que consiga dar resposta a uma chamada sem intervenção do recetor da chamada ou alguém no seu papel? •De que maneira se conseguirá conceber esse sistema? •Como garantir que esse sistema autónomo seja simultaneamente eficaz, intuitivo e atrativo para o utilizador? •Será possível e plausível dar resposta às chamadas recebidas sem a decisão final do utilizador? Que autonomia deverá o sistema possuir? •Conseguirá este sistema competir ou ser mais vantajoso que as alternativas já existentes? Assim, este projeto de dissertação tem como objetivos a elaboração de dois sistemas independentes que, tirando partido das ferramentas e dispositivos mais recentes de processamento e entendimento de linguagem natural, consigam responder às questões apresentadas. Assistente Virtual para gestão de audioconferências telefónicas – O primeiro sistema consiste, tal como o nome indica, num assistente virtual que, através de comunicação por voz, permite gerir todo o processo de gestão de audioconferências telefónicas. Na verdade este sistema é capaz de agendar e listar audioconferências e de ligar o utilizador a uma audioconferência. Entre outras capacidades importantes no processo de gestão de audioconferências. Este assistente comunica com um servidor de audioconferências telefónicas e liberta os utilizadores dos processos de introdução de PINs usados regularmente nos processos de gestão de audioconferências telefónicas. Para o desenvolvimento deste sistema utilizou-se o Amazon Echo Dot, uma coluna wireless que recebe controlos por voz e permite tirar partido das capacidades da Amazon Alexa. A Amazon Alexa é um serviço que dá aos seus utilizadores capacidades de interagir com dispositivos de forma intuitiva e interativa usando a voz, assim como criar fluxos conversacionais [ale17]. Assistente Virtual de chamadas recebidas – O segundo sistema desenvolvido tira partido de uma aplicação Android e permite dar resposta imediata às chamadas de voz recebidas pelo seu utilizador. Com este sistema resolveu-se o problema dos utilizadores que estão ocupados para responder a chamadas que recebem. Além disso, este sistema evita o uso de tecnologias como ovoice mail e a "voz para SMS"que, como já se conseguiu concluir, são muitas vezes ignoradas pelos utilizadores de smartphones [Día05]. O sistema deteta uma tentativa de chamada de voz nativa e, automaticamente, inicia uma sessão de comunicação com a pessoa que tentou contactar o utilizador da aplicação. Para estabelecer a sessão de comunicação elaborou-se um assistente virtual (bot), que é capaz de perceber o motivo da chamada e oferecer, de forma interativa, opções ao interlocutor. As opções oferecidas são, por exemplo, o agendamento de um novo contacto para mais tarde. Permitir ao utilizador final tomar certas decisões durante a conversação é outra das funcionalidades que o assistente virtual é capaz de executar. No processo descrito, foram utilizadas tecnologias já existentes de reconhecimento de fala, assim como de conversão de texto em voz. Existem ainda serviços que disponibilizam funcionalidades avançadas de deep learning para reconhecimento automático de fala (automatic speech recognition,ASR), para a conversão de voz 3
Revisão Bibliográfica Tabela 2.1: Comparação de ferramentas [Lex17,Rod17,try17] Ferramenta Prós Contras Stanford CoreNLP Baseada em JVM; Possibilita uma grande customização ; É um serviço gratuito. Ausência de interface de voz; Sem integração com plataformas de chat. Amazon Lex Interface de voz; Integração com o serviço AWS Lambda; Grande comunidade de programadores e parceiros por parte da AWS. Pouca integração com plataformas de chat; O serviço é pago consoante o número de pedidos; Última das plataformas a entrar no mercado. API.AI Interface de voz; Forma poderosa de modelar fluxos grandes e complexos usando Intents e Contexts; Uma boa parte da lógica pode ser resolvida pelo chatbot, o que diminui a codificação do lado do servidor; Integração com um clique em várias plataformas de chat. É impossível bloquear a correspondência de uma intent se um context estiver presente; A fase de treino ainda está em versão beta. Após a análise da Tabela 2.1, percebe-se que para este projeto de dissertação as duas ferramentas mais poderosas são o Amazon Lex e o API.AI. Isto porque fornecem, desde já, mecanismos de speech recognition e de text-to-voice. O Stanford CoreNLP, por sua vez, permite uma grande personalização, por outras palavras, adaptar o processamento dos conteúdos aos inputs esperados e ao tema em questão. Para além disso, o Stanford CoreNLP é uma ferramenta open source. O API.AI tem como mais-valia a sua fácil integração com várias plataformas de chat, enquanto o que oAmazon Lex confia na AWS Lambda serverless computing stack para implementar “fulfillments”, que são ações que precisam de ser acionadas com base numa intenção específica. Atualmente, a AWS Lambda é a mais usada e tecnologicamente mais avançada plataforma de computação sem servidor no mercado, o que traz algumas vantagens indiretas para o serviço Amazon Lex [Rod17]. 2.3 Tecnologias e protocolos de comunicação Hoje em dia existe uma forma de executar chamadas de voz, nomeadamente através do uso de tecnologias que transmitem dados usando IP. O VoIP é essa nova forma de comunicação. É uma tecnologia que permite a realização de chamadas telefónicas através de uma rede IP. Por outro lado, antes de tudo é necessário estabelecer essa chamada telefónica; o SIP é o protocolo que permite a 10
Revisão Bibliográfica realização dessa tarefa e outras necessárias no processo de comunicação [SC14]. Nas subsecções seguintes será apresentada a tecnologia VoIP, o protocolo SIP, assim como o sistema ivr, um sistema capaz de responder ou interagir com o interlocutor de uma chamada através de áudio. Este áudio pode ser pré-gravado ou dinâmico. Acrescente-se que também se apresenta de seguida a plataforma Twilio, uma plataforma cloud de comunicações que foi utilizada no desenvolvimento deste projeto de dissertação. 2.3.1 VoIP Atualmente, uma das tecnologias mais dominantes da comunicação é a tecnologia VoIP (Voice Over Internet Protocol). Esta tecnologia permite a realização de telefonemas através da Internet, enviando pacotes através da rede de comutação por pacotes [JV15]. Assim sendo, a tecnologia VoIP, ao contrário da PSTN (Public Switched Telephone Network), não necessita de uma linha dedicada para o serviço de telecomunicação. Na Tabela 2.2 é feita uma comparação entre as caraterísticas principais destas duas tecnologias. Tabela 2.2: Diferenças entre VoIP ePSTN VoIP PSTN Todos os canais usam uma conexão de internet; A compressão pode resultar em 10Kbps; Recursos como chamada em espera e identificador de chamadas são incluídas como serviço; Longas distâncias são geralmente incluídas nos preços mensais; As atualizações normalmente só requerem uma atualização de software. Linhas dedicadas; Cada linha tem uma largura de 64Kbps para cada lado; As funcionalidades de chamada em espera são pagas à parte; Para ser atualizado é necessário mudar o equipamento e a linha de comunicação; Longas distância são normalmente pagas ao minuto. Atualmente o VoIP junta o melhor dos dois mundos. Permite falar com qualidade, fiabilidade e estabilidade, através do uso da Internet, e a um preço bastante mais baixo que as comunicações de voz tradicionais, sejam elas através de telefone fixo ou telemóvel. Existem cada vez mais pacotes de software que possuem esta tecnologia, como por exemplo o Skype e o WhatsApp. OWhatsApp é um software que permite enviar e receber todo o tipo de ficheiros: fotografias, vídeos, documentos, localizações e também estabelecer chamadas de voz. Como as chamadas de voz pelo WhatsApp utilizam o protocolo VoIP, basta ter uma ligação à Internet para se comunicar. Uma outra funcionalidade importante deste software é a sua capacidade de enviar facilmente mensagens de voz para qualquer contacto que também possua o software [wha17]. 11
Revisão Bibliográfica Por sua vez, O Skype também oferece o serviço VoIP, permitindo aos seus utilizadores comunicarem bidirecionalmente entre si, oferecendo ainda suporte de conferências. O Skype é o primeiro cliente VoIP baseado numa arquitetura peer-to-peer. Na arquitetura redes de computadores peer-to-peer cada um dos pontos ou nós da rede funciona quer como cliente, quer como servidor, permitindo a partilha de serviços e dados sem a necessidade de um servidor central. [BS04]. Ambos os programas se apresentam como uma alternativa às chamadas de voz tradicionais. 2.3.2 Protocolo de iniciação de sessão (SIP) OSIP (Session Initiation Protocol) é um protocolo de camada de aplicação que permite criar, modificar e encerrar sessões com um ou mais participantes. Esta sessões podem ser chamadas telefónicas pela Internet ou conferências multimédia [RSC+02]. O SIP utiliza elementos chamados servidores proxy para ajudar a encaminhar solicitações para o atual local do utilizador, autenticar e autorizar utilizadores para o serviço, implementar políticas de roteamento de chamadas de provedor e fornecer recursos aos utilizadores. O SIP também fornece uma função de registo que permite aos utilizadores enviar o seu local atual para ser usado por servidores proxy. O uso do SIP para estabelecer sessões de voz, vídeo e dados coloca a telefonia como apenas outra aplicação na Internet, usando endereçamento, tipos de dados, software, protocolos e segurança semelhantes. Assim sendo, a utilização de redes separadas para voz não é mais necessária. A integração completa de voz com todos os outros serviços e aplicações da Internet provavelmente forneceu a maior oportunidade para inovação [SJ12]. A Figura 2.1 mostra os diferentes elementos de uma rede de comunicação SIP. Figura 2.1: Rede de comunicação SIP [SJ08] A semelhança entre SIP eHTTP facilita a criação de serviços por uma comunidade muito grande de desenvolvedores de software que já estão familiarizados com o desenvolvimento de 12
Revisão Bibliográfica websites. O SIP pode ser interpretado como o protocolo de autenticação para serviços de VoIP [JV15]. Hoje em dia já existem ferramentas que funcionam como plataforma cloud de comunicações. Uma dessas plataformas é a plataforma Twilio que possibilita aos programadores executar e receber chamadas telefónicas usando web service APIs. A Twilio possibilita, por exemplo, a construção de sistemas IVR usando interfaces SIP [twi17a]. 2.3.3 Sistema Interativo de Resposta por Voz (IVR) Um sistema IVR é uma tecnologia que permite que um computador consiga interagir com os seres humanos através do uso de tons de voz e entradas via teclado. Os sistemas de voz interativa podem ser implementados com reconhecimento de voz e prompts de voz gerados usando VoiceXML. Apresenta-se na Figura 2.2 um exemplo de fluxo de chamadas para um servidor IVR [SJ08]. Figura 2.2: Fluxo de chamadas de sistema IVR [SJ08](adaptado) O serviço é inicializado com uma troca IVR para determinar o objetivo do chamador. A mensagem INVITE inicial do chamador tem o URI de solicitação a apontar para o controlador e para este serviço específico. De seguida o IVR irá gerar um prompt de voz para o chamador, ao longo da linha, com a frase "Bem-vindo ao nosso serviço <nome>! Por favor, indique o seu ID ". A resposta do chamador é transformada de fala para texto e retornada na mensagem 6 da figura, HTTP GET, para o controlador. O próximo script VoiceXML é enviado pelo controlador no HTTP 200 OK, que corresponde à mensagem 7 da figura, para solicitar mais informações ao chamador 13
Revisão Bibliográfica sobre sua solicitação. Depois do processo IVR chegar ao fim, a última mensagem HTTP 200 OK, mensagem 9, carrega um script VoiceXML vazio. A chamada para o IVR é terminada com um BYE, mensagem 10, e a chamada é encaminhada para outro destino com o INVITE na mensagem 12. Todo este processo foi baseado em [SJ08]. Os sistemas interativos de resposta por voz baseados em VoiceXML podem suportar diversos recursos e serviços de voz tais como, conversão de texto em voz, reconhecimento de discurso e gravação de discursos introduzidos pelos utilizadores. 2.4 Sistemas de audioconferência Seria expetável que as pessoas do século passado não fizessem ideia do que é uma audioconferência. Mas, na verdade, a primeira audioconferência foi realizada a 25 de Janeiro de 1915 [Law15]. Relatórios da altura indicam que demorou cerca de dez minutos para ligar a chamada, uma vez que foi preciso estabelecer conexões manuais em cada cidade ao longo da rota da chamada. Hoje em dia, com os avanços da tecnologia de audioconferência, a qualidades das chamadas melhorou drasticamente, assim como o processo de as efetuar. Seguidamente descrevem-se algumas das tecnologias que permitem a realização de audioconfrências mais usadas atualmente. 2.4.1 WebEx AWebEx fornece sistemas colaborativos de reuniões online, audioconferências web e videoconferências. A WebEx possuí uma plataforma online que permite o agendamento antecipado de conferências ou até mesmo a criação de um endereço web fixo para que, a qualquer momento. uma pessoa se ligue a esse endereço e entre em conferência com quem se encontra online nesse mesmo endereço. Uma das grandes funcionalidades deste sistema é o facto de, embora seja maioritariamente um serviço de VoIP, possibilitar a ligação a um número da rede PSTN. Para se agendar uma reunião através deste serviço o utilizador deve inicialmente validar os seus dados na plataforma web, seguidamente selecionar a opção "agendar um reunião rápida", selecionar o tipo de reunião, introduzir a data, o horário e a duração da mesma e por fim introduzir o endereço de correio eletrónico dos convidados. Seguidamente, os convidados apenas têm de aceder ao seu endereço de correio eletrónico e entrar na conferência introduzindo os seus dados pessoais[int17]. 2.4.2 Conference Calling by Vastconference Esta plataforma permite a criação rápida audioconferências, bastando para isso aceder ao painel administrativo da página web da plataforma, e adicionar possíveis convidados. Cada convidado tem associado um número de ligação único. Por outro lado, e embora seja este um serviço VoIP, ele permite a ligação a chamadas para a rede PSTN. Além disso, esta plataforma permite a gestão de audioconferências através dos dígitos do telephone em ligação. Por outras palavras, o administrador da audioconferência pode, por exemplo, silenciar todos os utilizadores em linha primindo o digito 1 seguido de "*", ou, bloquear a chamada primindo 2 seguido de "*"[tel17]. 14
Revisão Bibliográfica 2.4.3 Infinite Conferencing A plataforma Infinite Conferencing oferece uma vasta gama de serviços áudio, web estreaming. Este serviço, por defeito, opta por distinguir conferências web de audioconferências telefónicas. Além disso, baseia-se na utilização de códigos para entrada na conferência e PINs posteriores de acesso à mesma [Con17]. 2.5 Conclusões Embora a pesquisa em NLP tenha feito grandes avanços na produção de comportamentos artificialmente inteligentes, como o Google, o Watson da IBM e a Siri da Apple, estas frameworks/APIs NLP ainda não são perfeitas [CH12]. Ainda assim, a maioria das APIs são boas para começar rapidamente a criar pequenas aplicações conversacionais. Mas nem tudo são vantagens. Ao usar uma API externa haverá sempre uma dependência nas decisões de outrem. Isto pode ser uma limitação à medida que o projeto se desenvolve. Existem vários problemas que podem prejudicar a experiência do utilizador. Entre estes problemas destaca-se a falta de contexto, isto é, muitas vezes o significado de uma frase depende do seu contexto e nem sempre este é identificado por estas ferramentas. Outra limitação relacionase com a capacidade de gestão de falhas, que nem sempre é fornecida por estas API, quebrando assim a experiencia positiva do utilizador. Além disso, o envio de informações sensíveis para uma terceira parte deixa os utilizadores desconfortáveis. Por outro lado, o objetivo desta dissertação consiste na construção de provas de conceito, pelo que o uso de uma API é imperial. As API de linguagem natural fornecem uma boa maneira de começar com interações de pergunta e resposta. Uma das vantagens do uso destas ferramentas prende-se com a sua capacidade de construir plataformas de conversação de forma rápida e simples. Das API analisadas, a API.AI e o Amazon Lex são as mais apropriadas para o desenvolvimento deste projeto pois já oferecem tecnologias de conversão de voz em texto e capacidades de fala. O Amazon Lex apresenta-se como o serviço de reconhecimento de fala e compreensão de linguagem natural com maior potencialidade. Tal deve-se à sua simplicidade entre as ferramentas analisadas e a sua integração com o AWS Lambda. Acrescente-se que este serviço já está exposto a mais de 3 milhões de utilizadores, através do Amazon Alexa [Bor16], o que faz evoluir a sua aptidão de dia para dia através de técnicas de machine learning. Uma das vantagens da API.AI é a sua fácil integração com plataformas de chat, mas para este projeto de dissertação tal não é necessário. Já existem hoje softwares alternativos, que comunicam através da utilização da tecnologia VoIP. Contudo, pretende-se desenvolver uma solução para o caso das chamadas telefónicas que usam a PSTN, o que leva à inviabilidade destas alternativas. No mesmo sentido, existem plataformas, como a plataforma Twilio, que possibilita aos programadores executar e receber chamadas telefónicas usando web service API. No caso do assistente virtual para gerir audioconferências telefónicas, as plataformas existentes já se mostraram eficazes e permitem inclusive a realização de 15
Revisão Bibliográfica videoconferências. Contudo, estas plataformas ainda não permitem uma gestão das conferências através de controlos de voz e muitas empresas utilizam sistemas de audioconferências telefónicas devido à sua elevada qualidade de serviço. 16
Capítulo 3 Wit Bot Platform Como foi referido no Capítulo 1deste documento, esta dissertação está a ser desenvolvida no seguimento de uma proposta da empresa Wit-Software. Na verdade, os sistemas que estão a ser desenvolvidos foram propostos por esta mesma empresa, sendo que todo o seu desenvolvimento teve um acompanhamento constante. Para além disso, ambos os sistemas desenvolvidos estão integrados numa plataforma própria da Wit-Software, a Wit Bot Platform. Esta plataforma tem como objetivo simplificar a maneira como se constroem bots, nomeadamente nas suas integrações com APIs externas, plataformas OTT (Over-the-top), serviços de processamento de linguagem natural e gestão de fluxos conversacionais. A Figura 3.1 representa uma visão generalizada da arquitetura desta plataforma, dividida em quatro módulos principais: Channel Gateway,Bot Engine,Bot Builder eIntegration. No desenvolvimento deste projeto de dissertação não foi utilizado o módulo Bot Builder. Figura 3.1: Arquitetura da Wit Bot Platform 3.1 Channel Gateway Neste módulo evidencia-se a capacidade que a Wit Bot Platform tem de se integrar com diferentes canais de comunicação, como é o caso do Facebook Messenger,Skype e do Slack, entre 17
Wit Bot Platform outros canais que estão constantemente a ser adicionados a esta plataforma. Além destes canais, esta plataforma já tem também canais de comunicação utilizando protocolos RCS, como por exemplo o serviço Message+ da Vodafone. Isto permite construir bots/assistentes virtuais que posteriormente poderão ser publicados em diferentes plataformas, simples e eficazmente. 3.2 Bot Engine É neste módulo que toda a plataforma é gerida, sendo o maior e principal módulo da mesma. Por sua vez este módulo encontra-se dividido em sub módulos mais pequenos que reunidos permitem a criação de um bot com capacidades ímpares. 3.2.1 NLP Engine Esta plataforma tem integrações com várias ferramentas de processamento de linguagem natural. Existem, entre outros, canais de comunicação com a WIT.AI ou o Amazon Lex. Esta integração permite tornar a plataforma super poderosa pois agrupa mais do um serviço de processamento de linguagem natural. São estes serviços que, como já foram mencionados no Capítulo 2, possibilitam a análise do texto que é falado ou escrito pelos utilizadores, fazendo com que se extraia o conteúdo presente numa frase. Cada serviço de NLP procura detetar a intenção da fala do utilizador. Se o sistema conseguir detetar a intenção, seguidamente inicia um fluxo conversacional que foi criado para começar quando essa intenção é invocada. 3.2.2 AIML Engine Quando o sistema não consegue perceber o que foi dito pelo utilizador através dos serviços de processamento de linguagem natural, isto é, não encontrou a intenção da frase dita pelo utilizador, este irá procurar num conjunto de ficheiros AIML se existe alguma resposta prevista para aquela frase. Este mecanismo não só acrescenta vocabulário e “inteligência” ao bot, como ainda permite a construção de bots de pergunta e resposta rápida, de uma forma simples e fácil. No mesmo sentido, a Wit Bot Platform já possui um conjunto enorme de padrões de frases do utilizador e respostas possíveis do bot. Estas respostas abrangem vários domínios e oferecem capacidades aos bots que surpreendem o utilizador. Por exemplo, imagine-se que se está a construir um simples bot de reserva de salas. À priori, apenas serão criadas intenções para apurar que é de facto uma reserva de uma sala e, seguidamente, detetar o número da sala e data da reserva. O próprio utilizador não esperará muito mais daquele bot que possibilita unicamente reservar salas. Mas, imagine-se agora, que o utilizador decide perguntar ao bot se este gosta de cerveja. Um contexto em nada relacionado com um sistema de reserva de salas. Assim, os sistemas de processamento de linguagem natural não detetarão a intenção do utilizador, pois não estavam preparados para tal, mas, ao procurar no conjunto de ficheiros AIML de possíveis padrões de perguntas e respostas, o bot encontrará uma resposta à questão do utilizador. Deste modo, percebe-se o poder extra de construir um bot associado a esta plataforma. Acrescente-se que estes ficheiros também incorporam frases que 18
Wit Bot Platform podem ativar intenções, isto é, ao invés de o bot dar uma simples resposta, irá começar um fluxo conversacional previamente criado. 3.2.3 BPMN Engine Este sub módulo representa os fluxos conversacionais que os bots podem possuir. Os fluxos são criados através da utilização do Bizagi Modeler. O Bizagi Modeler é um software de modelação de processos de negócio que permite e facilita a criação de diagramas de fluxo e workflows [cez17]. Por sua vez, este software permite e incorporação de parâmetros e propriedades específicas para a construção de fluxos conversacionais para aWit Bot Platform. Expõe-se na Figura 3.2 um exemplo de um fluxo conversacional construído através do Bizagi Modeler. Figura 3.2: Exemplo de fluxo conversacional implementado com o Bizagi Modeler Start Event É neste nó que se define o início do fluxo conversacional. Por exemplo, quando através do serviço de processamento de linguagem natural o bot percebe a intenção da frase que lhe foi enviada, ele verifica qual dos nós iniciais corresponde a essa intenção e seguidamente inicia o fluxo associado. Service Task É neste nó onde se encontra a lógica do fluxo. Na realidade, é neste tipo tarefa que são processadas informações e se comunica com APIs externas ou sistemas de base de dados. User Task Esta tarefa é responsável por receber inputs por parte do utilizador. Exclusive Gateways Neste nó são tomadas diferentes direções no fluxo com base em informações anteriores. Esta informação pode ser, por exemplo, um input do utilizador ou resultados do processamento de uma service task. Message task 19
Assistente Virtual para gestão de conferências telefónicas risk que fica associada à conta Amazon eWit-Software. Esta associação é solicitada ao utilizador na primeira vez em que este último interage com o sistema. Apresenta-se na Figura 4.4 o processo de associação de contas. Figura 4.4: Processo de associação de contas De seguida, foram criado fluxos com o Bizagi Modeler para os diferentes casos de uso do sistema. Alguns fluxos foram possíveis manter, sendo que foi alterada a parte de comunicação, neste caso através da Amazon Alexa, corrigidas algumas falhas nas service tasks e adicionas várias exceções para lidar com inputs errados do utilizador. Para uma maior clareza do que foi desenvolvido, apresentam-se no Anexo Btodos fluxos do sistema que foram associados ao assistente virtual desenvolvido, distinguindo-se aquele que foram alterados ou criados de raiz. Tal como ficou demonstrado na arquitetura do sistema, existe ainda comunicação com um servidor Asterisk que permite a criação das audioconferencias. Esta comunicação funciona através de pedidos HTTP para o servidor em questão. Apresenta-se seguidamente um exemplo de um caso de uso simples da aplicação desenvolvida para que se perceba todo o processo da informação. Imagine-se que o utilizador pede à Amazon Alexa para se ligar à conferencia número 50, ou seja, "Alexa, ask James to call me to the conference number fifty". De seguida, o serviço Amazon Alexa deteta uma intenção presente no enunciado do utilizador, neste caso a intenção CH_DIALMEIN. O serviço Amazon Alexa envia um pedido HTTPS POST para o servidor com toda a informação recolhida. O mais importante neste caso de uso é o nome da intenção e o slot, que neste caso, é numero da audioconferência. De seguida, através do endpoint criado, o servidor trata da receção da mensagem e procura nos ficheiros AIML por um enunciado que será o Start Flow da intenção detetada. O fluxo é então iniciado e, através de uma Service Task, é feito um pedido ao HTTP POST ao servidor Asterisk para estabelecer uma ligação entre a audioconferencia número 50 e o número de telefone associado ao utilizador. O utilizador irá então receber uma chamada no seu telemóvel e , a partir daí, está ligado à audioconferência. Pressupõe-se que o utilizador já se associou à plataforma através da sua conta de funcionário Wit. Isto porque, para averiguar o número do telefone para se ligar, é necessário saber quem é o utilizador, para se apurar o seu número de telefone introduzido na intranet Wit. Posteriormente, o fluxo continua, sendo enviada para o utilizador uma mensagem através e uma Send Task e utilizando o construtor de mensagens para a Amazon Alexa e o endpoint criado. Após este passo, o fluxo termina, atingiu-se o End event. 26
Assistente Virtual para gestão de conferências telefónicas 4.3.5 Casos de uso funcionais Nesta secção são apresentados os casos de uso que se encontram funcionais, isto é, que enunciados podem ser fornecidos ao assistente virtual/bot e que este tem capacidade de dar resposta. Juntamente com os enunciados, e para o alguns casos em que a resposta a estes é acompanhada por um Amazon Alexa Card na Amazon Alexa App, são apresentados os cartões retribuídos após o processamento dos fluxos conversacionais associados. Dial-In •"Alexa, ask James to call me to the conference number 125" Permite ligar um utilizador, através do seu telefone particular, a uma audioconferência. •"Alexa, ask James to call Tiago to this conference" Permite ligar um utilizador registado na intranet Wit à atual audioconferência que está ativa. Participants/Guests •"Alexa, ask James about guests for this conference" Aqui são listados os convidados para a audioconferencia em que o utilizador está ligado. Seguidamente o utilizador pode iterar sobre os diferentes convidados, sendo que, é apresentado ainda, na Amazon Alexa App a vista apresentada na Figura 4.5 Figura 4.5: Vista de lista de convidados na Amazon Alexa App •"Alexa, ask James to mute Tiago" Com este enunciado o utilizador poderá silenciar um dos participantes da chamada onde se encontra ligado. 27
Assistente Virtual para gestão de conferências telefónicas •"Alexa, ask John for conference participants" É retribuída com esta questão a lista de participantes da chamada ativa do utilizador. Schedule •"Alexa, ask James to schedule a conference for Friday at ten" •"Alexa, ask James to schedule a conference for Friday" •"Alexa, ask James to schedule a conference" Com estes três inputs o utilizador poderá agendar uma audioconferência para sexta às dez horas da tarde, ou se este não disser o dia nem a hora, o bot/assistente virtual, apurará esses dados. Seguidamente o fluxo continuará, e será ainda apurado o título da audioconferência, assim com possíveis convidados. Após agendada a audioconferência será apresentado o cartão representado na Figura 4.6 na Amazon Alexa App. Figura 4.6: Vista de conferencia agendada na Amazon Alexa App Who Is •"Alexa, ask James who is Tiago Ferreira" Permite devolver informações sobre uma pessoa registada na rede intranet da Wit-Software. Se existir mais do que uma pessoa na rede com o mesmo nome, é possível iterar sobre as diferentes pessoas e mostrar detalhe de uma pessoa em particular, assim como se apresenta na Figura 4.7. 28
Assistente Virtual para gestão de conferências telefónicas Figura 4.7: Vista de resposta ao enunciado "Who is Tiago Ferreira"na Amazon Alexa App Other •"Alexa, ask James for next conferences" Devolve a próxima conferencia agendada para o utilizador em questão. •"Alexa, ask James what are my conferences for today" Devolve uma lista de todas as conferencias que o utilizador tem para o dia em questão. Estas podem ser iteradas para, seguidamente, se devolver os dados de uma conferencia especifica. 4.4 Conclusões Este capítulo mostrou o como foi desenvolvido o assistente virtual que auxilia no agendamento de conferências, assim como, os casos de uso que estão funcionais em relação a este mesmo assistente. Infelizmente, à data de início de realização desta dissertação, ainda não havia sido lançado o dispositivo Amzon Echo Show. Este com certeza teria sido uma mais-valia para tornar os casos de uso mais interessantes, especialmente nos processos conversacionais em que é necessário iterar sobre funcionários ou conferências. Refira-se que a Amazon anunciou que em breve irá permitir enviar para a Amazon Alexa notificações Push. Por outras palavras, poderá ser enviada informação diratamente de servidores para a Amazon Alexa, para que esta, posteriormente, interaja diretamente com o utilizador sem que este tenha de perguntar alguma coisa. Esta funcionalidade poderá ser importante para, por exemplo, lembrar o utilizador que existe uma audioconferência prestes a começar. Seguidamente o utilizador poderia solicitar uma chamada para entrar na audioconferência. 29
Assistente Virtual para gestão de conferências telefónicas 30
Capítulo 5 Assistente virtual de chamadas recebidas Nesta secção é feita uma análise, de forma mais detalhada, ao motivo que levou à elaboração do assistente virtual de chamadas recebidas, assim como, são expostas as questões que se levantam à sua utilização. É ainda neste capítulo que é exposta a abordagem adotada com vista à resolução do problema, apresentada a arquitetura deste assistente virtual, descritas as ferramentas e tecnologias utilizadas e expostos os casos de utilização. 5.1 Atendimento automático de chamadas A chamada telefónica continua a ser a maneira mais rápida e fácil de contactar uma pessoa e, simultaneamente, a que oferece uma experiência mais pessoal. Não obstante a existência de outros meios de comunicação, como canais de email ou chat, as pessoas continuam a preferir uma chamada telefónica direta para a pessoa que querem contactar. Contudo, hoje em dia, a agenda de um empresário é preenchida de reuniões e outras atividades que o levam a estar indisponível para responder a todas as chamadas que recebe [AB01]. Posteriormente, essas chamadas caem no esquecimento ou já não são retornadas em tempo útil. As chamadas mal sucedidas são um sério obstáculo para a produtividade e uma fonte de frustração, uma vez que ambos os interlocutores perdem tempo [SJ08]. Além disso, o horário da chamada telefónica pode não ser apropriado ou não alcançar o recetor num local adequado [SJ08]. Acrescente-se que, muitas vezes, as chamadas recebidas são apenas para marcação de reuniões ou encontros, confirmar assuntos já discutidos entre os intervenientes ou solicitar uma decisão para determinada tarefa. Existem soluções que permitem abordar o problema apresentado anteriormente. Uma dessas soluções é a tecnologia de Voz para SMS, disponibilizada apenas por algumas operadoras de telecomunicações. Esta tecnologia permite a uma pessoa que está a tentar contactar um subscritor do serviço Voz para SMS deixar uma mensagem de voz, quando este último se encontra indisponível. Esta mensagem é posteriormente convertida em texto e enviada sob a forma de uma mensagem 31
Assistente virtual de chamadas recebidas SMS para o subscritor permitindo um acesso rápido ao respetivo conteúdo através da leitura da mensagem escrita [vod14]. Outra solução existente é o serviço de voicemail. Este serviço permite aos seus utilizadores trocar mensagens de voz, isto é, possibilita ao chamador enviar uma gravação de áudio para um destinatário que não respondeu à chamada [SJ08]. Contudo, os utilizadores continuam a evitar o uso destas tecnologias [Día05,SJ08], apontando a perda de tempo como fator determinante. Realizou-se ainda um inquérito quem contou uma amostra de 104 indivíduos, para avaliar se existe de facto um problema no mercado atual. O inquérito segue no Anexo Cjuntamente com as respostas ao mesmo. A amostra era constituída maioritariamente (85,6%), por pessoas entre os 18 e os 25 anos, sendo que 13,5% tinha idade compreendida entre os 26 e os 40 anos e, por último, 1%, tinha idade entre os 41 e os 60 anos. Neste inquérito apurou-se que 88,5% dos participantes já ouviu falar nas tecnologias de correio de voz (voicemail) e Voz para SMS. Sendo que destes 88,5%, 71,2% já utilizaram correio de voz e 27,9% Voz para SMS. Ambos o gráficos dos resultados podem ser consultados na Figura 5.1. Figura 5.1: Resultados de utilização e conhecimento das tecnologias de correio de voz e voz para SMS por parte da amostra Por outro lado, concluiu-se também que, 57,8% dos inquiridos que já usaram uma destas tecnologias, encontram-se satisfeitos com a sua qualidade de serviço, e 3,6%, muito satisfeitos. Já 27,7% afirmaram que se encontram satisfeitos e 10,8% nada satisfeitos. Estes dados permitem dizer que, embora a maioria dos inquiridos que conhecem as tecnologias que permitem dar resposta 32
Assistente virtual de chamadas recebidas a chamadas nativas perdidas, se encontrem satisfeitos, existe ainda uma grande percentagem de indivíduos pouco ou nada satisfeitos. O gráfico interpretativo desta questão encontra-se na Figura 5.2. Figura 5.2: Resultados de satisfação com a qualidade do serviço das por parte da amostra Um dos dados que importa também fazer referencia advém do facto de, embora existam cada vez mais tecnologias de comunicação VoIP, como já foi referido, a grande maioria dos inquiridos, 87,5%, continua a executar chamadas de voz nativa na altura de contactar alguém. A Figura 5.3 apresenta esses resultados e não deixa dúvidas em relação a este assunto. Figura 5.3: Resultados de serviço preferencial de chamadas de voz Surgem assim questões às quais se pretende dar resposta. Uma dessas questões é como conseguir um sistema autónomo, que consiga dar resposta a uma chamada sem intervenção do recetor da chamada ou alguém no seu papel. De facto, este sistema terá de tomar uma decisão, não sabendo à priori qual é o tema pelo qual o utilizador recebeu o contacto. Isto coloca ainda outras questões pertinentes, por exemplo, até que ponto esse sistema será autónomo? Qual será o limite da sua autonomia? De facto, o utilizador ficará dependente deste sistema. Por outro lado, a aplicação terá de ser intuitiva, agradável e, sobretudo, eficaz. Ninguém irá usar um sistema que não consiga perceber mais de metade dos motivos dos contactos recebidos. É preciso garantir que o produto a 33
Assistente virtual de chamadas recebidas desenvolver seja superior às tecnologias já existentes para o problema, ou seja, superior às tecnologias que procuram resolver o problema da indisponibilidade dos utilizadores para responder às chamadas recebidas. 5.2 Aplicação móvel e assistente virtual É apresentada nesta secção a solução concebida para o problema apresentado. Na verdade, desenvolveu-se um sistema que, tirando partido de um protótipo de uma aplicação Android e em conjunto com um bot, permite dar resposta imediata às chamadas perdidas pelos seus utilizadores. Obot funciona como um assistente virtual, com capacidade de comunicar com o interlocutor através de fala e usando as mais recentes tecnologias de linguagem natural e reconhecimento de voz. A aplicação tem dois modos de utilização: automático e ocupado. No modo automático a chamada é atendida pelo bot imediatamente após a receção da mesma. No modo ocupado, o utilizador terá de rejeitar a chamada para que esta seja atendida pelo bot. Após atender a chamada, o assistente virtual/bot procura imediatamente perceber qual foi o motivo para o contacto. Seguidamente, o assistente irá combinar com o interlocutor uma data para um possível contacto posterior por parte do utilizador da aplicação. Por sua vez, o utilizador, acedendo à sua aplicação, poderá, além de configurar quando deverá ser o assistente pessoal a atender a chamada, consultar as últimas chamadas atendidas pelo assistente virtual e adicionar lembretes automaticamente com a data e hora acordadas entre o assistente e o interlocutor. Nesta consulta, ele poderá também verificar todo o fluxo conversacional trocado entre o seu assistente e o interlocutor, assim como reproduzir a gravação do que foi dito em cada iteração. Isto permite, por exemplo, ao utilizador verificar se é um assunto que exige uma resposta urgente ou se a chamada pode ser retribuída só quando este estiver disponível. 5.3 Implementação O sistema desenvolvido foi implementado tirando partido de diversas ferramentas externas, ferramentas essas que serão enumeradas nas subsecções seguintes. Serão também apresentados os diferentes componentes do sistema, as interações entre esses componentes e os casos de uso. 5.3.1 Ferramentas e tecnologias adotadas Como foi possível verificar com a análise realizada na revisão bibliográfica, existem diversas ferramentas que poderiam ajudar no desenvolvimento da solução, isto é, no desenvolvimento do bot/assistente virtual e da aplicação móvel Android. Optou-se por selecionar o Amazon Lex como a ferramenta que irá ser responsável pela análise das frases ditas pelo interlocutor durante a chamada. Esta decisão foi tomada com base nas mais-valias já demonstradas desta ferramenta, nomeadamente o seu serviço de compreensão de linguagem natural (NLU), que permitirá ao interlocutor ter conversas com o assistente que pareçam reais. No mesmo sentido, foram utilizadas 34
Assistente virtual de chamadas recebidas funções Lamda para executar determinadas ações após terminar o fluxo conversacional com os serviços do Amazon lex. Esta ferramenta permite executar funções de código sem necessidade de gerir ou possuir servidores [ama17b]. Assim, permite comunicar com os endpoints do servidor principal do sistema de forma simples. Outra das ferramentas utilizadas, neste caso para transcrição da voz do interlocutor, foi o Google Cloud Speech API. Esta plataforma possui recursos capazes de converter áudio em texto através de modelos de redes neuronais. “O Google Cloud Speech API possuí uma grande precisão em transcrições de voz para texto em tempo real. Os seus grandes rácios de precisão significam que se pode ajudar os vendedores a reunir o maior número de informação possível a partir das interações telefónicas com os seus clientes e aumentar as vendas.” — Gary Graves, CTO and Co-Founder, InterActiveTel [goo17] Através desta afirmação de Gary Gaves consegue-se perceber o grande potencial desta ferramenta, que ajudará a diminuir possíveis falhas de perceção do discurso do interlocutor durante o processo conversacional. O Twilio foi outra das tecnologias indispensáveis à construção da solução proposta. No fundo, o Twilio permitiu a receção de chamadas através do uso de web services. Através do Twilio foi possível enviar pedidos para o servidor com informações relativas a uma determinada chamada, assim como, enviar informações de volta para essa mesma chamada. No desenvolvimento do servidor principal, que trata de receber e enviar pedidos, gerir todo o processo de comunicação entre as diferentes APIs e comunicar com a aplicação móvel, foi usada a ferramenta Node.js.Node.js é uma ferramenta open-source que permite executar códico JavaScript do lado do servidor. Através da utilização de Node.js é possível criar aplicação com uma grande escalabilidade. O seu principal objetivo é ajudar programadores na criação de aplicações de alta escalabilidade, capazes de manipular milhares de conexões em simultâneo numa única máquina [McL11]. 5.3.2 Arquitetura Nesta secção é apresentada a arquitetura de alto nível da solução proposta, isto é, uma visão global de como todas as ferramentas comunicam entre si, com o servidor principal e com a aplicação móvel Android. Os componentes trocam dados com pedidos REST, que assentam sobre o protocolo HTTPS eWebSocket. A Figura 5.4 mostra a arquitetura aqui descrita. A arquitetura é descrita mais pormenorizadamente nas subsecções seguintes. 35
Assistente virtual de chamadas recebidas 42
Capítulo 6 Validação e resultados Neste capítulo serão validados os resultados obtidos após o desenvolvimento dos dois sistemas apresentados nos capítulos 4e5. Na realidade, foram realizados testes de usabilidade às provas de conceito elaboradas, assim como testes adicionais para verificar se os sistemas dão reposta às questões que se levantaram para a realização desta dissertação. Os testes de usabilidade ajudam a detetar a facilidade que uma aplicação possui para ser eficazmente manipulada pelo utilizador. O ser humano possui uma capacidade de descobrir ou resolver problemas através de experiência prática e da observação. Esta capacidade denomina-se de capacidade heurística. Para avaliar a usabilidade dos sistemas poderíamos utilizar a chamada "avaliação heurística", definida por Nielsen e Molich no ano de 1994. Jack Nielsen recomenda utilizar entre 3 a 5 avaliadores, sendo que esta regra pode variar de acordo com as necessidades do sistema em estudo. Ele estimou que, em média, com um só avaliador consegue-se detetar cerca de 35% dos problemas de usabilidade existente na interface de uma aplicação, enquanto que 5 avaliadores conseguem em média detetar 75% desses problemas. Seguidamente apresentam-se as 10 heurísticas de usabilidade de Nielsen e Molich [heu17]: •Visibilidade do estado do sistema •Correspondência entre o sistema e mundo real •Controlo por parte do utilizador e liberdade de ação •Consistência e padrões definidos •Prevenção de erros •Minimizar a sobrecarga de memória do utilizador •Flexibilidade e eficiência de utilização •Design minimalista e estético 43
Validação e resultados •Boas mensagens de erro •Ajuda e documentação Estas heurísticas resistiram ao passar dos anos, e proporcionavam aos designers uma forma rápida e fácil de avaliar a usabilidade de uma interface contra princípios de design universais. No entanto, será que devem ser estas heurísticas aplicadas a bots/assistente virtuais? Em [Usa16], concluiu-se que estas heurísticas ainda podem ser aplicadas no caso dos bots, mas definiu-se que faria mais sentido agrupar e redefinir o foco de algumas das heurísticas anteriores. Assim, mostrase na Tabela 6.1 as heurísticas definidas para testar a usabilidade de assistentes virtuais. Tabela 6.1: Heurísticas para chat bots Visibilidade do estado do sistema e minimizar a sobrecarga de memória do utilizador O sistema deve manter sempre os utilizadores informados sobre o que está acontecer, e dar-lhe sempre opções para solicitar informações adicionais em qualquer ponto Correspondência entre o sistema e mundo real e boas mensagens de erro Conhecer o público-alvo e não alterar o estilo de comunicação Controlo por parte do utilizador e liberdade de ação e prevenção de erros Obter confirmação do utilizador em pontos críticos e fornecer atalhos de saída para interações de vários passos. Consistência e padrões definidos e design minimalista e estético Manter o estilo de comunicação consistente e a personalidade/vos do bot Flexibilidade e eficiência de utilização Fornecer atalhos para utilizador avançados Ajuda e documentação Fornecer ajuda dentro do bot Todos os indicadores referidos na Tabela 6.1 foram considerados para testar a usabilidade do assistente virtual para gestão de audioconferências telefónicas, como se apresentará na Secção 6.1. No entanto, optou-se por não se usarem estes indicadores para o bot de chamadas recebidas. Isto porque, até à data, este último assistente só possui um caso de uso funcional para interação com o interlocutor da chamada, pelo que não faria sentido ter em conta todos os indicadores. 6.1 Assistente Virtual para agendamento de conferências telefónicas Atendendo ao caráter confidencial desta dissertação, que como já foi referido foi proposta pela empresa Wit-Software, apenas participaram pessoas internas da empresa nos testes de usabilidade deste sistema. Tal como recomenda Nielsen, participaram 5 avaliadores. Os mesmo 5 avaliadores responderam a um pequeno questionário para avaliar o cumprimento dos objetivos deste sistema. 44
Validação e resultados 6.1.1 Testes de usabilidade Previamente, explicaram a cada um dos utilizadores as funcionalidades do assistente virtual, como começar cada iteração com o mesmo através do Amazon Echo Dot, isto é, dizer “Alexa, ask James...” e como cancelar ações. De seguida, forneceu-se aos avaliadores uma lista de tarefas principais e anotaram-se detalhes considerados importantes das iterações dos avaliadores com o assistente. A lista das tarefas solicitadas foi a seguinte: 1. Obter ajuda do assistente virtual 2. Agendar uma conferência para um dia e hora à escolha 3. Consultar a lista de conferências para hoje e obter detalhes de uma dessas conferências 4. Ligar-me à conferência número 455 5. Consultar as definições do meu Softphone 6. Perguntar quem é o Tiago Ferreira Todos os utilizadores conseguiram realizar com sucesso as 6 tarefas solicitadas, embora nem sempre à primeira tentativa. As tarefas que se revelaram mais difíceis de executar pelos utilizadores foram a tarefa 2 e 6. O utilizadores procuravam muitas vezes dizer o dia do mês, o mês e o ano para o agendamento. Contudo, o sistema apenas está preparado para, ou não receber nenhuma informação de dia e hora e vai fornecendo ao utilizador possíveis falas, ou recebe de uma vez só toda a informação, mas com o dia semanal. Por outras palavras, um utilizador avançado que pretende introduzir os dados todos de uma vez deveria dizer: "Alexa, ask James to schedule a conference for friday at seven". No caso da tarefa número 6, o problema advém de o sistema, como utiliza o serviço Amazon Lex para interpretar as falas, nem sempre perceber o nome Tiago Ferreira. O serviço Amazon Lex ainda não suporta português. Confrontando os resultados dos testes com base nas 6 heurísticas definidas chegaram-se às conclusões apresentadas na Tabela 6.2. 45
Validação e resultados Tabela 6.2: Resultados da análise dos teste de usabilidade com base nas seis heurísticas para chat bots Visibilidade do estado do sistema e minimizar a sobrecarga de memória do utilizador O assistente percebe mensagens se forem bem estruturadas, ou seja, falha a perceber muitas falas de linguagem natural para determinadas tarefas. Por outro nado, por norma, oferece sempre ao utilizador informações adicionais para o próximo passo Correspondência entre o sistema e mundo real e boas mensagens de erro Quando as mensagens não são bem estruturadas numa primeira iteração o resultado é sempre o mesmo: "Desculpa, não percebi. Podes dizer o que pretendes de uma maneira diferente." Controlo por parte do utilizador e liberdade de ação e prevenção de erros Após a primeira iteração o sistema é eficiente a prevenir erros. Por exemplo, se o bot souber que é para agendar uma conferencia, mas não percebeu o dia em questão ou a hora, este indica essa informação ao utilizador e fica a aguardar novos enunciados da parte deste. O mesmo acontece para outra tarefas, no caso da ligação a uma conferência solicita um novo número quando o número de ligação introduzido não tem qualquer conferência agendada. Por outro lado, a qualquer momento o utilizador pode cancelar uma determinada tarefa dizendo, por exemplo, "cancel" Consistência e padrões definidos e design minimalista e estético O estilo da comunicação é sempre o mesmo Flexibilidade e eficiência de utilização Neste caso, o bot vai guardando sempre as informações introduzidas até uma ação final ser tomada. Além disso, no caso do agendamento permite ao utilizador normal introduzir informações passo a passo ou, a um utilizador avançado, dizer toda a informação necessária de uma só vez Ajuda e documentação O sistema tem a capacidade de fornecer ajuda ao utilizador sobre as suas funcionalidades. No entanto, esta ajuda não é permitida a meio da execução de uma tarefa 46
Validação e resultados 6.1.2 Inquérito sumário Elaborou-se um questionário com 3 simples questões para averiguar a eficácia do produto em responder aos objetivos desta dissertação. O questionário e os resultados do mesmo estão disponíveis no Anexo E. Os resultados não são muito significativos por dois motivos: a amostra é pequena, 5 pessoas, e todas elas estão inseridas no mesmo contexto empresarial. Analisando os resultados, verificou-se que todos os utilizadores concordaram que o sistema seria, ou poderia ser, uma mais-valia no seu dia-a-dia dentro da empresa. A Tabela 6.3 apresenta alguns dos resultados obtidos ao questionário. Tabela 6.3: Resultados importantes ao inquérito sobre o assistente virtual para chamadas recebidas Considera que a prova de conceito que acabou de testar teria utilidade no seu dia-a-dia na empresa? Estaria disposto a pagar por um produto como este? Que sugestões apresenta para melhorar este produto futuramente? Sim Talvez Aumentar o leque de frases possíveis para cada tarefa. Talvez Não Acrescentar funcionalidades de gestão de conferências e a eficácia em entender o que se diz. Sim Sim Acrescentar funcionalidades de gestão de conferências e a eficácia em entender o que se diz. Talvez Não O bot devia perceber mais frases e manter mais contexto do que lhe dizemos. Talvez Não Podias aumentar o vocabulário do bot. É muito direto, tipo pergunta-resposta. Contudo, quando se inquiriu os avaliadores se estes pagariam pelo produto, apenas um avaliador disse que sim e outro disse que talvez pagasse. Assim, conclui-se que o serviço não tem tanto valor para os utilizadores como se pensaria, pois apresentando um custo, eles não o consideram extremamente necessário. Por último, solicitou-se aos utilizadores sugestões de melhoria da aplicação desenvolvida. Quase todos os utilizadores referiram uma melhoria no processo de comunicação e compreensão de falas aleatórias. Além disso, sugeriram a adição de funcionalidades ao sistema. 47
Validação e resultados 6.2 Assistente Virtual de chamadas recebidas Tal como para o assistente de gestão de audioconferências telefónicas, foram realizados testes de usabilidade para o assistente virtual de chamadas recebidas, assim como foi elaborado um inquérito sumário após a utilização do mesmo. Os avaliadores foram os mesmos que testaram o sistema de gestão de conferências. 6.2.1 Testes de usabilidade Para a realização dos testes de usabilidade deste sistema teve-se em conta duas interações por parte dos avaliadores: conversação com o assistente virtual quando liga ao utilizador proprietário da aplicação e a interação com a aplicação móvel, como recetor da chamada, após a chamada ser realizada. Assim, para a interação com o assistente de voz durante a chamada apenas foi solicitado aos avaliadores que ligassem à pessoa em questão e deixassem o assistente gerir o processo conversacional. Já na parte de avaliação da usabilidade da aplicação, foram solicitadas as seguintes tarefas: 1. Ativar o redirecionamento de todas as chamadas para o assistente virtual 2. Consultar a lista das últimas chamadas atendidas pelo assistente 3. Agendar um lembrete para ligar à última pessoa que ligou com a hora sugerida por esta 4. Consultar o processo conversacional da última chamadas atendida pelo assistente e reproduzir o motivo do contacto dessa chamada Em relação ao processo conversacional, e tendo em conta que o assistente realiza questões fechadas e apenas permite um caso de uso, todo o processo é concluído facilmente. Além disso, mesmo nos casos em que o assistente não percebeu à primeira o que foi dito pelo avaliador, este solicitou a repetição da resposta à questão anterior, mantendo um processo natural de comunicação. De facto, as questões colocadas pelo assistente virtual quando não percebe à primeira tentativa o que foi dito são diferentes da primeira questão, embora com o mesmo propósito. Por outro lado, todos os utilizadores realizaram as tarefas de navegação na aplicação Android facilmente e sem hesitações. 6.2.2 Inquérito sumário O inquérito realizado após a realização dos testes de utilização é constituído por 4 questões, e é apresentado, junto com os resultados do mesmo, no Anexo D. Os resultados superaram as expectativas pensadas, embora, como já se referiu, a amostra seja muito limitada. Todos os avaliadores admitiram comprar um sistema como o desenvolvido, sendo que 3 dos avaliadores responderam que sim e dois responderam talvez, à questão: "Após testar o assistente virtual anterior e a aplicação desenvolvida, estaria disposto a pagar por um sistema deste género?". Os resultados à questão 48
Validação e resultados procurava perceber se o assistente elaborado era capaz de substituir os sistemas de de Correio de Voz e Voz para SMS, foram exatamente os mesmos da questão anterior, 3 utilizadores responderam que sim e 2 responderam talvez. A Tabela 6.4 expõe os resultados referidos. Tabela 6.4: Resultados importantes ao inquérito referente ao assistente virtual de camadas recebidas Após testar o assitente virtual anterior e a aplicação desenvolvida, estaria disposto a pagar por um sistema deste género? Já ouviu falar nas tecnologias de Correio de Voz e Voz para SMS? Se respondeu afirmativamente à questão anterior, acha que o sistema elaborado seria uma alternativa capaz de substituir essas tecnologias? Sim Sim Sim Talvez Sim Talvez Sim Sim Sim Talvez sim Talvez Sim Sim Sim Os avaliadores referiram ainda que seria importante melhorar a organização de conteúdos na aplicação Android, assim como, tornar o processo de comunicação com o assistente menos robotizado, isto é, mais natural. Na verdade, este processo ainda funciona um pouco num processo de pergunta resposta com vista à obtenção de uma data para contacto posterior. 6.3 Conclusões Concluído este capítulo que procura validar os resultados obtidos no final do desenvolvimento deste projeto de dissertação, verifica-se que os resultados não foram totalmente positivos. Efetivamente, foram realizados testes de usabilidade e inquéritos sumários para perceber até que nível os utilizadores poderiam estar satisfeitos com os assistentes virtuais criados. Contudo, a amostra é pequena e pouco diversificada, principalmente devido a questões de confidencialidade. Assim, as conclusões finais que se podem obter não serão suficientemente fortes. Ainda assim, e através dos resultados obtidos neste capítulo, é possível verificar que o assistente virtual para chamadas recebidas teve maior recetividade na amostra do que o assistente virtual para gestão de audioconferências telefónicas. 49
Validação e resultados 50
Capítulo 7 Conclusões e trabalho futuro Com o trabalho desenvolvido, conseguiu dar-se uma resposta ao principal e basilar objetivo deste trabalho. De facto, foram desenvolvidos dois sistemas independentes, tirando partido das ferramentas e dispositivos mais recentes de processamento e entendimento de linguagem natural: um que pretendia tornar o processo de gestão de audioconferências mais simples e rápido, outro cujo objetivo era dar resposta a chamadas sem a intervenção do recetor da mesma. Naturalmente, ficam ainda algumas questões em aberto e um grande potencial de trabalho e investimento futuro. Como suprarreferido, um dos objetivos desta dissertação consistia em encontrar uma forma de tornar o processo de gestão de audioconferências mais simples e rápido. Para tal, criou-se um assistente virtual para gestão de audioconferências telefónicas. Com este software, comunicando exclusivamente por voz, os utilizadores conseguem agendar conferências, ligar-se a conferências, consultar as conferências que têm agendadas e até saber informações sobre funcionários registados na empresa Wit-Software. Tudo isto, tirando partido de novas tecnologias de comunicação por voz, como é o caso do dispositivo Amazon Echo Dot, o que permitiu responder a outro dos objetivos deste trabalho: relevar uma das possíveis utilidades destes novos dispositivos desenvolvidos. Neste sentido, a utilização do Amazon Echo Dot constituiu uma ferramenta importante na melhoria da forma de gerir audioconferências telefónicas. Não obstante ter sido desenvolvido um assistente virtual com diversas potencialidades, existe ainda um grande trabalho a desenvolver, no sentido de melhorar as suas funcionalidades e eficiência, tal como ficou claro no Capítulo 6. De facto, foram detetadas deficiências no processo conversacional com os utilizadores, uma vez que o assistente nem sempre consegue perceber as falas dos mesmos e está limitado a um reduzido leque de falas possíveis. As interações do assistente de voz desenvolvido também ainda não são 100% eficazes, exigindo-se, portanto, um melhoramento futuro dos fluxos de interação. Por outro lado, percebeu-se que a comunicação exclusiva por voz nem sempre é uma mais-valia. Esta comunicação acelera os processos numa fase inicial, mas torna-se frustrante em certas situações, como por exemplo quando se está a iterar sobre uma lista de conferências ou utilizadores. A existência de conteúdo visual para estes casos poderia ser uma solução. Infelizmente, à data da realização 51
REFERÊNCIAS 58
Anexo A Interation Model - Alexa Skill 1{ 2"intents": [ 3{ 4"name": "AMAZON.CancelIntent", 5"samples": [] 6}, 7{ 8"name": "AMAZON.HelpIntent", 9"samples": [] 10 }, 11 { 12 "name": "AMAZON.StopIntent", 13 "samples": [] 14 }, 15 { 16 "name": "CH_CONFERENCEREPLIES", 17 "samples": [], 18 "slots": [] 19 }, 20 { 21 "name": "CH_DIALMEIN", 22 "samples": [ 23 "Call me to the conference number {CH_DIALMEINP}" 24 ], 25 "slots": [ 26 { 27 "name": "CH_DIALMEINP", 28 "type": "AMAZON.NUMBER", 29 "samples": [] 30 } 31 ] 32 }, 33 { 59
Interation Model - Alexa Skill 34 "name": "CH_HELP", 35 "samples": [ 36 "help" 37 ], 38 "slots": [] 39 }, 40 { 41 "name": "CH_MUTE", 42 "samples": [ 43 "mute {contact}" 44 ], 45 "slots": [ 46 { 47 "name": "contact", 48 "type": "CONTACTS", 49 "samples": [] 50 } 51 ] 52 }, 53 { 54 "name": "chitChat", 55 "samples": [ 56 "{do text|command}", 57 "{how text|command}" 58 ], 59 "slots": [ 60 { 61 "name": "command", 62 "type": "Literal", 63 "samples": [] 64 } 65 ] 66 }, 67 { 68 "name": "CONFERENCE_GUESTS", 69 "samples": [ 70 "guests for this conference", 71 "conference guests" 72 ], 73 "slots": [] 74 }, 75 { 76 "name": "CONFERENCE_PARTICIPANTS", 77 "samples": [ 78 "conference participants" 79 ], 80 "slots": [] 81 }, 82 { 60
Interation Model - Alexa Skill 83 "name": "CONFGEST", 84 "samples": [ 85 "{conference}", 86 "{conference} one", 87 "{conference} please", 88 "{conference} thanks", 89 "show me the {conference}" 90 ], 91 "slots": [ 92 { 93 "name": "conference", 94 "type": "TEST", 95 "samples": [] 96 } 97 ] 98 }, 99 { 100 "name": "CONTACTS_INTENT_TEST", 101 "samples": [ 102 "{contact}", 103 "add {contact}" 104 ], 105 "slots": [ 106 { 107 "name": "contact", 108 "type": "CONTACTS", 109 "samples": [] 110 } 111 ] 112 }, 113 { 114 "name": "HOURSNUMBERS", 115 "samples": [ 116 "{hours}", 117 "{hours} hours" 118 ], 119 "slots": [ 120 { 121 "name": "hours", 122 "type": "AMAZON.NUMBER", 123 "samples": [] 124 } 125 ] 126 }, 127 { 128 "name": "LOOKCONFERENCES", 129 "samples": [ 130 "next conferences", 131 "show me conferences" 61
Interation Model - Alexa Skill 132 ], 133 "slots": [] 134 }, 135 { 136 "name": "SCHEDULE_CONFERENCE_WITH_DAY", 137 "samples": [ 138 "schedule a conference for {weekday}" 139 ], 140 "slots": [ 141 { 142 "name": "weekday", 143 "type": "WEEK_DAYS", 144 "samples": [] 145 } 146 ] 147 }, 148 { 149 "name": "SCHEDULE_CONFERENCE_WITH_DAY_HOUR", 150 "samples": [ 151 "schedule a conference for {weekday} at {hour} " 152 ], 153 "slots": [ 154 { 155 "name": "weekday", 156 "type": "WEEK_DAYS", 157 "samples": [] 158 }, 159 { 160 "name": "hour", 161 "type": "AMAZON.NUMBER", 162 "samples": [] 163 } 164 ] 165 }, 166 { 167 "name": "START_CONFERENCE_SCHEDULER", 168 "samples": [ 169 "schedule conference", 170 "arrange a conference", 171 "plan a conference" 172 ], 173 "slots": [] 174 }, 175 { 176 "name": "VA_LISTTODAYCONFERENCES", 177 "samples": [ 178 "conferences for today", 179 "show my today’s conferences", 180 "what are my conferences for today" 62
Interation Model - Alexa Skill 181 ], 182 "slots": [] 183 }, 184 { 185 "name": "VA_OUTBOUNDCALL", 186 "samples": [ 187 "Call {contact} to this conference" 188 ], 189 "slots": [ 190 { 191 "name": "contact", 192 "type": "CONTACTS", 193 "samples": [] 194 } 195 ] 196 }, 197 { 198 "name": "VA_SOFTPHONE_SETTINGS", 199 "samples": [ 200 "my softphone settings", 201 "softphone settings" 202 ], 203 "slots": [] 204 }, 205 { 206 "name": "VA_WhoIs", 207 "samples": [ 208 "Who is {contact}" 209 ], 210 "slots": [ 211 { 212 "name": "contact", 213 "type": "CONTACTS", 214 "samples": [] 215 } 216 ] 217 }, 218 { 219 "name": "WEEKDAYS", 220 "samples": [ 221 "{weekday}" 222 ], 223 "slots": [ 224 { 225 "name": "weekday", 226 "type": "WEEK_DAYS", 227 "samples": [] 228 } 229 ] 63
Interation Model - Alexa Skill 230 } 231 ], 232 "types": [ 233 { 234 "name": "CONTACTS", 235 "values": [ 236 { 237 "name": { 238 "value": "Tiago" 239 } 240 }, 241 { 242 "name": { 243 "value": "Tiago Ferreira" 244 } 245 }, 246 { 247 "name": { 248 "value": "Paulo Sousa" 249 } 250 }, 251 { 252 "name": { 253 "value": "Paulo" 254 } 255 }, 256 { 257 "name": { 258 "value": "Jorge" 259 } 260 }, 261 { 262 "name": { 263 "value": "Jorge Sousa" 264 } 265 }, 266 { 267 "name": { 268 "value": "Joao Costa" 269 } 270 }, 271 { 272 "name": { 273 "value": "Joao" 274 } 275 }, 276 { 277 "name": { 278 "value": "Joao " 64
Interation Model - Alexa Skill 279 } 280 }, 281 { 282 "name": { 283 "value": "Joao Costa" 284 } 285 }, 286 { 287 "name": { 288 "value": "Ricardo" 289 } 290 }, 291 { 292 "name": { 293 "value": "Ricardo Loureiro" 294 } 295 } 296 ] 297 }, 298 { 299 "name": "TEST", 300 "values": [ 301 { 302 "name": { 303 "value": "test" 304 } 305 }, 306 { 307 "name": { 308 "value": "add" 309 } 310 }, 311 { 312 "name": { 313 "value": "done" 314 } 315 }, 316 { 317 "name": { 318 "value": "yes" 319 } 320 }, 321 { 322 "name": { 323 "value": "no" 324 } 325 }, 326 { 327 "name": { 65
Interation Model - Alexa Skill 328 "value": "today" 329 } 330 }, 331 { 332 "name": { 333 "value": "another day" 334 } 335 }, 336 { 337 "name": { 338 "value": "next" 339 } 340 }, 341 { 342 "name": { 343 "value": "details" 344 } 345 }, 346 { 347 "name": { 348 "value": "next week" 349 } 350 }, 351 { 352 "name": { 353 "value": "cancel" 354 } 355 }, 356 { 357 "name": { 358 "value": "stop" 359 } 360 }, 361 { 362 "name": { 363 "value": "call" 364 } 365 }, 366 { 367 "name": { 368 "value": "same" 369 } 370 } 371 ] 372 }, 373 { 374 "name": "WEEK_DAYS", 375 "values": [ 376 { 66
Interation Model - Alexa Skill 377 "name": { 378 "value": "Monday" 379 } 380 }, 381 { 382 "name": { 383 "value": "Tuesday" 384 } 385 }, 386 { 387 "name": { 388 "value": "Wednesday" 389 } 390 }, 391 { 392 "name": { 393 "value": "Thursday" 394 } 395 }, 396 { 397 "name": { 398 "value": "Friday" 399 } 400 }, 401 { 402 "name": { 403 "value": "Saturday" 404 } 405 }, 406 { 407 "name": { 408 "value": "Sunday" 409 } 410 }, 411 { 412 "name": { 413 "value": "Today" 414 } 415 } 416 ] 417 } 418 ] 419 } 67
Fluxos - Bizagi Modeler 74
Fluxos - Bizagi Modeler B.3 Fluxos sem alterações 75
Fluxos - Bizagi Modeler 76
Fluxos - Bizagi Modeler 77
Fluxos - Bizagi Modeler 78
Anexo C Inquérito introdutório - Assistente virtual de chamadas recebidas C.1 Inquérito 79
Inquérito introdutório - Assistente virtual de chamadas recebidas 80
Inquérito introdutório - Assistente virtual de chamadas recebidas C.2 Respostas 81
Inquérito introdutório - Assistente virtual de chamadas recebidas 82
Inquérito introdutório - Assistente virtual de chamadas recebidas 83
Inquérito final - Assistente virtual para gestão de audioconferências telefónicas E.2 Respostas 90