Tornar as respostas do Google Assistente cada vez melhores, mais rápidas e úteis. Este é o objetivo do trabalho feito no Google pela cientista Françose Beaufays, engenheira e pesquisadora, que lidera a equipe de reconhecimento de fala da empresa.
“O trabalho que minha equipe faz permite que o Assistente ouça seus usuários, tente entender o que seus usuários desejam e, em seguida, tome medidas”, conta a cientista nesta entrevista publicada no blog do Google.
Confira a entrevista*, na qual ela explica como é o trabalho que faz o Google Assistente entender as perguntas que milhões de pessoas no mundo fazem todos os dias.
Françoise, o que exatamente você faz no Google?
Lidero a equipe de reconhecimento de fala do Google. Meu trabalho é construir sistemas de reconhecimento de voz para todos os produtos do Google que são alimentados por voz. O trabalho que minha equipe faz permite que o Assistente ouça seus usuários, tente entender o que seus usuários desejam e, em seguida, tome medidas. Ele também nos permite escrever legendas em vídeos do YouTube e no Meet, enquanto as pessoas falam, e permite que os usuários ditem mensagens de texto para seus amigos e familiares. A tecnologia de reconhecimento de fala está por trás de todas essas experiências.
Por que é tão importante que o reconhecimento de fala funcione da melhor maneira possível com o Assistente?
O assistente é baseado em entender o que alguém disse e, em seguida, agir com base nesse entendimento. É tão crítico que a interação é muito suave. Você só decide fazer algo por voz que você poderia fazer com os dedos se isso proporcionar um benefício. Se você fala com uma máquina e não tem certeza de que ela pode entendê-lo rapidamente, o prazer desaparece.
Então, como a máquina entende o que você está perguntando? Como ele aprendeu a reconhecer palavras faladas em primeiro lugar?
Tudo no reconhecimento de fala é aprendizado de máquina. O aprendizado de máquina é um tipo de tecnologia em que um algoritmo é usado para ajudar um “modelo” a aprender com os dados. A maneira como construímos um sistema de reconhecimento de fala não é escrevendo regras como: Se alguém está falando e faz um som “k” que dura de 10 a 30 milissegundos e depois um som “a” que dura de 50 a 80 milissegundos, talvez a pessoa esteja prestes a dizer “gato”.
O aprendizado de máquina é mais inteligente do que isso. Então, em vez disso, apresentávamos vários trechos de áudio ao modelo e diríamos ao modelo, aqui, alguém disse: “Este gato está feliz”. Aqui, alguém disse: “Esse cachorro está cansado”. Progressivamente, o modelo aprenderá a diferença. E também entenderá variações dos trechos originais, como “Este gato está cansado” ou “Este cachorro não está feliz”, não importa quem o diga. Os modelos que usamos atualmente no Assistente para fazer isso são redes neurais profundas.
O que é uma rede neural profunda?
É uma espécie de modelo inspirado no funcionamento do cérebro humano. Seu cérebro usa neurônios para compartilhar informações e fazer com que o resto do seu corpo aja. Nas redes neurais artificiais, os “neurônios” são o que chamamos de unidades computacionais, ou bits de código que se comunicam entre si. Essas unidades computacionais são agrupadas em camadas. Essas camadas podem se empilhar umas sobre as outras para criar possibilidades mais complexas de compreensão e ação. Você acaba com essas “redes neurais” que podem se tornar grandes e envolvidas – portanto, redes neurais profundas.
Para o Assistente, uma rede neural profunda pode receber uma entrada, como o áudio de alguém falando, e processar essas informações em uma pilha de camadas para transformá-las em texto. Isso é o que chamamos de “reconhecimento de fala”. Em seguida, o texto é processado por outra pilha de camadas para analisá-lo em informações que ajudam o Assistente a entender o que você precisa e o ajuda exibindo um resultado ou realizando uma ação em seu nome. Isso é o que chamamos de “processamento de linguagem natural”.
Entendi. Digamos que eu pergunte ao Assistente algo bem direto, como “Ok Google, onde fica o parque para cães mais próximo?” — como o Assistente entenderia o que estou dizendo e responderia à minha consulta?
O primeiro passo é o Assistente processar aquele “Ok Google” e perceber: “Ah, parece que essa pessoa agora está falando comigo e quer algo de mim”.
O assistente pega o restante do áudio, processa a pergunta e obtém o texto dela. Ao fazer isso, ele tenta entender sobre o que é a sua frase. Que tipo de intenção você tem?
Para determinar isso, o Assistente analisará o texto da sua pergunta com outra rede neural que tenta identificar a semântica, ou seja, o significado da sua pergunta.
Nesse caso, ele descobrirá que é uma pergunta que precisa pesquisar – não é você pedindo para acender as luzes ou algo assim. E como esta é uma pergunta baseada em localização, se suas configurações permitirem, o Assistente pode enviar os dados geográficos do seu dispositivo para o Google Maps para retornar os resultados de qual parque para cães está perto de você.
Em seguida, o Assistente classificará suas possíveis respostas com base em coisas como a certeza de que você entendeu corretamente e a relevância de suas várias respostas em potencial. Ele decidirá sobre a melhor resposta e a fornecerá no formato apropriado para o seu dispositivo. Pode ser apenas um alto-falante e, nesse caso, pode fornecer informações faladas. Se você tiver uma tela à sua frente, ela poderá mostrar um mapa com rotas a pé.
Para tornar as coisas um pouco mais complicadas: se eu perguntasse algo um pouco mais ambíguo, como “Ei, Google, qual é o cachorro mais popular?” – como saberia se eu quis dizer raça de cachorro, nome de cachorro ou o cachorro famoso mais popular?
No primeiro exemplo, o Assistente precisa entender que você está procurando um local (“onde está”) e o que está procurando (“um parque para cães”), por isso faz sentido usar o Google Maps para ajudar. Nesse caso, o Assistente reconheceria que é uma pergunta mais aberta e chamaria a pesquisa. O que isso realmente significa é identificar a melhor interpretação.
Uma coisa útil é que o Assistente pode classificar o grau de satisfação dos usuários anteriores com respostas semelhantes a perguntas semelhantes – isso pode ajudá-lo a decidir se está certo de sua interpretação. Por fim, essa pergunta iria para a pesquisa e os resultados seriam propostos a você com a melhor formatação para o seu dispositivo.
Também vale a pena notar que há um grupo dentro da equipe do Assistente que trabalha no desenvolvimento de sua personalidade, inclusive escrevendo respostas para perguntas comuns, como a que você fez sobre a comida favorita do Assistente.
Uma outra coisa que tenho me perguntado são as consultas em vários idiomas. Se alguém fizer uma pergunta que tenha trechos de idiomas diferentes, como o Assistente os entenderá?
Isso é definitivamente mais complicado. Aproximadamente metade do mundo fala mais de um idioma. Eu sou um bom exemplo disso. Eu sou belga e meu marido é italiano. Em casa com minha família, falo italiano. Mas se estou apenas com meus filhos, posso falar com eles em francês. No trabalho, falo inglês. Não me importo de falar inglês com meu Assistente, mesmo quando estou em casa. Mas eu não falaria com meu marido em inglês porque nossa língua é o italiano. Esses são os tipos de convenções estabelecidas em famílias multilíngues.
A maneira mais simples de lidar com um caso em que a pessoa fala dois idiomas é o Assistente ouvir um pouco do que ela diz e tentar reconhecer qual idioma ela está falando. O Assistante pode fazer isso usando diferentes modelos, cada um dedicado a entender um idioma específico. Outra maneira de fazer isso é treinar um modelo que possa entender vários idiomas ao mesmo tempo. Essa é a tecnologia que estamos desenvolvendo. Em muitos casos, as pessoas mudam de um idioma para outro na mesma frase. Ter um único modelo que entenda quais são essas linguagens é uma ótima solução para isso – ele pode pegar o que quer que aconteça.
*Entrevista feia por Zahra Barnes, colaborador do The Keyword e publicada no blog do Google.