Pular para o conteúdo

Resumo do Webinar: Dê uma Voz Natural ao Seu Chatbot de Texto

Publicado
Última atualização

OuvirOuça este artigo

Os agentes de chat se tornaram parte padrão da estrutura de software empresarial. A maioria das empresas já tem um ou está criando um. O que menos empresas descobriram é o que acontece quando um usuário prefere simplesmente falar.

A voz transforma a interação de maneiras que vão além da conveniência. Os usuários expressam frustração, urgência e confusão pelo tom de voz, algo que o texto elimina por completo. Um cliente que digita "meu pedido não chegou" e outro que diz isso com ansiedade perceptível estão enviando sinais diferentes — e o agente que só consegue ler a transcrição trabalha com apenas metade das informações.

A pergunta que a maioria das equipes faz agora não é se deve adicionar voz, mas como fazer isso sem reconstruir tudo o que já funciona.

No Workshop ao vivo: dê ao seu chatbot de texto uma voz que soe humana, Paul Asjes (Experiência do Desenvolvedor), Bhargavi Bhatt (Experiência do Cliente) e Fergal Burnett (Marketing de Produto, ElevenAPI) explicaram os desafios técnicos de adicionar voz a um agente existente e como uma integração funcional realmente funciona.

Por que desenvolver com voz é mais difícil do que parece

Um dos principais desafios é a alternância de turnos. As pessoas sabem quando alguém terminou de falar pela entonação, pelo ritmo e pelo contexto. Já a detecção de atividade de voz (a abordagem padrão) detecta apenas o silêncio.

O resultado geralmente é um sistema que trata cada pausa como um convite para falar: ele interrompe, corta a fala no meio do raciocínio e responde a hesitações naturais como se fossem frases concluídas.

Ele funciona tecnicamente, mas falha na conversa.

O contexto é a outra metade do problema. Enviar o histórico da conversa a um LLM a cada turno é necessário, mas não suficiente. As mesmas palavras têm significados diferentes dependendo de como são ditas — "estou bem" dito com alívio e "estou bem" dito com frustração geram a mesma transcrição, mas interações diferentes. Um sistema de voz que ignora essa dimensão sempre vai soar um pouco inadequado, independentemente da qualidade dos modelos individuais.

Há também a sobrecarga de engenharia. As equipes responsáveis pela própria orquestração de voz acabam mantendo a lógica de alternância de turnos, o tratamento de interrupções e a análise de latência como trabalho contínuo. Não é algo que se desenvolve uma única vez.

Como adicionar voz a um agente existente

A abordagem mais simples é uma arquitetura com dois WebSockets. 

  1. Uma conexão é estabelecida entre o cliente e a API da ElevenLabs, e outra entre seu servidor e a API da ElevenLabs
  2. O usuário fala ao microfone, o áudio é enviado para a API da ElevenLabs, onde é transcrito e enviado ao seu servidor
  3. Seu servidor fornece ao LLM todo o histórico da conversa recebido da API da ElevenLabs, e a resposta em streaming retorna para a síntese de áudio
  4. Isso pode começar antes que o LLM termine de gerar a resposta — mantendo baixa a latência até o primeiro byte 

O principal ponto de integração é o método onTranscript , que é acionado ao fim de cada turno e transmite todo o histórico da conversa ao LLM. 

Um contextualUpdate no início da sessão mantém tudo o que aconteceu na parte em texto da conversa antes de o usuário mudar para a voz — permitindo que um único agente funcione nas duas modalidades sem perder o contexto.

speech-engine

Alguns pontos importantes para ter em mente durante o desenvolvimento:

  1. A escolha do LLM importa mais na voz do que no chat. Modelos de raciocínio profundo introduzem pausas que soam como hesitação artificial no áudio, mesmo que a qualidade da resposta seja maior. Para voz em tempo real, modelos mais rápidos quase sempre oferecem melhor qualidade percebida.
  2. Prefira WebRTC a WebSockets para áudio. O WebRTC inclui cancelamento de eco e ruído, o que se torna especialmente importante em dispositivos móveis ou ambientes barulhentos. Usar WebSockets para transportar áudio significa que você precisará lidar com isso por conta própria.
  3. Não peça aos usuários que selecionem um idioma. Isso interrompe o fluxo da conversa. Detectar o idioma nos primeiros segundos de fala e defini-lo é uma abordagem melhor — além de permitir mudanças fluidas sem exigir nenhuma ação do usuário.
  4. Separe seu modelo de alternância de turnos do LLM. Usar o LLM para decidir quando um usuário terminou de falar aumenta a latência e o custo a cada turno. Um modelo dedicado à alternância de turnos faz isso com mais rapidez e precisão, e vale a pena tratá-lo como um componente distinto da arquitetura.

Quanta infraestrutura manter sob seu controle

A resposta certa depende do que já existe. Se você tem um agente de chat funcional, adicionar uma camada de voz por cima — mantendo seu LLM, sua orquestração e sua lógica de negócios intactos — costuma ser o caminho mais rápido e de menor risco. 

Você não está reconstruindo nada. Está adicionando uma interface de áudio a algo que já funciona.

Se as necessidades incluem telefonia, gerenciamento de canais de implantação, testes integrados e análises, faz sentido delegar uma parte maior da estrutura a uma plataforma de agentes de voz. As duas abordagens não são mutuamente exclusivas — as equipes podem começar com uma camada de voz leve e incorporar recursos de plataforma conforme o caso de uso amadurece.

Demonstração: como adicionar voz a um chatbot existente

Esta demonstração acompanha um usuário que está no meio de uma conversa com um chatbot de planejamento de viagens baseado em texto e pede recomendações de bairros e comidas para uma viagem ao Japão.

O que abordamos:

  • O chatbot recebeu uma camada de voz sem nenhuma alteração no agente subjacente.
  • O usuário mudou da digitação para a fala no meio da conversa — o agente manteve todo o contexto nas duas modalidades.
  • O usuário falou em holandês; o agente detectou a mudança de idioma automaticamente
  • Quando o agente foi interrompido e recebeu o pedido de voltar ao inglês no meio da frase, ele voltou — e terminou a resposta com um leve sotaque holandês, sem que isso fosse solicitado.
  • Ao longo da conversa, a detecção de interrupções permitiu que o usuário falasse naturalmente por cima do agente sem que ele concluísse seu turno.

Por que isso importa: 

A demonstração não mostrava um agente de voz desenvolvido para essa finalidade. Ela mostrava um agente de texto que já funcionava, com uma camada de voz adicionada por cima. O tratamento de contexto, a detecção de idioma e o comportamento diante de interrupções vinham todos da camada de voz — o agente de texto subjacente não foi alterado. 

Assista à sessão completa

Assista ao webinar completo aqui.

ElevenLabs workshop on human-like chatbot voices, hosted by Paul Asjes, Bhargavi Bhatt, and Fergal Burnett.

Artigos relacionados

Crie com o áudio de IA da mais alta qualidade