Assistente Distribuída Avançada

O projeto A.D.A., Assistente Distribuída Avançada, propõe a criação de uma assistente pessoal distribuída inteligente, isto é, uma agente virtual capaz de interagir com o usuário a partir de um ecossistema de dispositivos, como os IoT (Internet of Things), por meio de comandos de voz em português. Esses comandos são transcritos para programas de execução e executados a partir do cadastro das operações básicas disponibilizadas pelos aparelhos conectados com a assistente. Além disso, a assistente virtual é desenhada com um mecanismo para reportar de volta ao usuário, por meio de voz sintetizada, caso seu comendo foi executado corretamente ou não e a justificativa para o último caso. O projeto é segmentado em seis subprojetos de diferentes áreas de pesquisa em ciência da computação, onde cada subprojeto é realizado por uma iniciação científica distinta.

O que são assistentes virtuais

Com o avanço de técnicas de aprendizado de máquina na última década e, em particular, com o sucesso de arquiteturas de aprendizado ponta-a-ponta, os assistentes virtuais comandados por voz deixaram de ser um problema em aberto para se transformar em um produto. Mas, a despeito do sucesso comercial, ainda apresentam limitações importantes que não foram devidamente exploradas.

Podemos definir um assistente comandado por voz como um agente artificial virtual que é capaz de reconhecer comandos verbais, extrair seu significado e, a partir de uma representação de conhecimento expressa por ações pré-programadas, executar uma ou mais tarefas pretendidas pelo usuário. Dessa forma, o assistente desempenha, na prática, o papel de uma camada intermediária simplificadora e compatível com o modelo mental do usuário, desobrigando-o de interagir com inúmeras interfaces distintas e com a constante mudança de contexto envolvida no processo. Tal papel pode ser entendido também como uma manifestação da ''transparência'' propagada por Mark Weiser no contexto da computação ubíqua. Isso resulta do fato que o assistente atua como uma ponte para a realização da tarefa solicitada, ocultando do usuário os mecanismos computacionais que a viabilizam.

Por outro lado, essa conveniência tem um custo de infraestrutura não desprezível, uma vez que o agente deve gerenciar e interagir adequadamente com os dispositivos que integram o ecossistema do usuário, o que demanda, entre outros aspectos, interoperabilidade de interfaces de programação de aplicações (APIs, do inglês Application Program Interfaces) e escalabilidade de processos. Todo o processamento que deve ocorrer para transformar comandos de voz em operações a serem executadas por dispositivos precisa ser modularizado e distribuído para que seja possível lidar com a crescente demanda de usuários por sistemas desse tipo.

Motivação do Projeto

Quase a totalidade dos assistentes disponíveis no mercado são de natureza proprietária, o que tem levantado diversas discussões quanto à privacidade e segurança dos usuários, e em particular, quanto ao uso de dados pessoais para fins comerciais. Em contrapartida, os raros assistentes com parte do código aberto, embora ofereçam mais privacidade, apresentam um grau de utilidade e qualidade da interação significativamente inferior ao dos seus concorrentes fechados.

Outro ponto negativo em relação aos assistentes presentes no mercado são o que denominamos de "restrições de plataforma". Em função de sua natureza proprietária, a maioria desses agentes permanece enclausurado em um único dispositivo, em vez de ter sua interface distribuída. Essas restrições também dificultam a criação de uma API universal para sensores e atuadores, já que os fabricantes destes são obrigados a seguir padrões impostos pelas companhias que controlam os assistentes comerciais para que seus dispositivos sejam compatíveis.

Por fim, o problema de interação com as assistentes virtuais é um campo de pesquisa que permanece majoritariamente inexplorado. Além da ausência de suporte adequado para Português do Brasil -- o que é particularmente importante para a nossa realidade -- ainda não são claras quais as técnicas adequadas para resolução de ambiguidades linguísticas nos comandos feitos pelo usuário e quais os melhores mecanismos para minimização e recuperação de erros.

Para lidar com esses desafios interdisciplinares, apresentamos o projeto A.D.A.: "Assistente Distribuída Avançada", em português, ou "Advanced Distributed Assistant", em Inglês. O nome também é uma homenagem à Ada Augusta King, Condessa de Lovelace, reconhecida como a primeira programadora de computadores da história, em função do seu trabalho sobre a Máquina Analítica de Charles Babbage.

Componentes da ADA

Pesquisadores 2020-2021

Professores

Pesquisadores 2019-2020

Ex-Orientadores