Habilite a tradução de voz entre pessoas conversando em tempo real com o Twilio ConversationRelay
Time to read:
Imagine um mundo onde as barreiras linguísticas desaparecem em tempo real, exatamente como acontece em Star Trek, em que o tradutor universal permite que diferentes civilizações se entendam sem obstáculos. Ainda não estamos viajando pelas estrelas, mas o Conversation Relay da Twilio nos aproxima mais dessa realidade.
Neste artigo, saiba como configurar um serviço de tradução simultânea em tempo real com o Conversation Relay da Twilio para que qualquer pessoa possa se comunicar em uma chamada no idioma nativo ou no qual se sente mais à vontade, sem perder o ritmo da conversa. A pessoa do outro lado da chamada também pode usar o idioma que preferir! Essa tecnologia garante que as conversas fluam de forma natural e autêntica entre idiomas, permitindo auxiliar clientes a resolver problemas complexos ou conectar pacientes ao atendimento de que precisam.
Mas como o Conversation Relay da Twilio torna isso possível? E como ele pode revolucionar a forma como empresas e organizações se conectam com o mundo? Vamos conferir os detalhes.
Como a aplicação funciona
A versão beta pública do Conversation Relay foi lançada em novembro de 2024 com foco na conexão entre pessoas e agentes de IA. O Conversation Relay elimina a complexidade de criar aplicações de voz ao abstrair os componentes de fala para texto e texto para fala, além de fornecer um sistema de orquestração simples baseado em websocket para se conectar à sua aplicação.
Não surpreende que o caso de uso de agentes de IA tenha atraído tanta atenção. No entanto, as pessoas ainda precisam se comunicar entre si e o Conversation Relay também pode impulsionar essas conversas. Além de se conectar à IA generativa, o Conversation Relay pode se integrar a outros tipos de serviços de processamento de texto para viabilizar casos de uso adicionais. Um caso de uso óbvio é a tradução de conversas entre pessoas.
A seguir, apresentamos uma prova de conceito que demonstra a tradução de conversas entre pessoas utilizando o Twilio Conversation Relay. A aplicação de referência foi criada usando a AWS e seus produtos sem servidor, mas a arquitetura fornece a estrutura para criar soluções em outros provedores de nuvem. Os serviços de tradução são impulsionados pelo AWS Translate.
Vamos saber mais.
Aplicação de prova de conceito
Vejamos como criar uma aplicação de prova de conceito utilizando o Conversation Relay. Esta é a arquitetura de referência:
Vamos analisar o diagrama com base nas etapas identificadas pelos números 1 a 6.
- Chamada de voz inbound: o autor da chamada faz uma chamada para um número Twilio e o gerenciador de chamadas inbound direciona o contato para sua aplicação. Sua aplicação usará o número de telefone do autor da chamada para extrair preferências de idioma e estabelecer uma sessão do Conversation Relay.
- Estabeleça o estado do autor e do destinatário da chamada: como o autor da chamada precisa falar com outra pessoa em tempo real, configure e salve o estado dessa outra pessoa ("destinatário da chamada") e vincule as duas chamadas no gerenciamento de estado. Por fim, acione um evento para fazer a chamada para a outra pessoa.
- Faça uma chamada outbound: utilize a plataforma da Twilio para fazer a segunda chamada e estabelecer uma segunda sessão independente do Conversation Relay.
- O autor da chamada diz algo: com as duas chamadas independentes estabelecidas, o autor da chamada diz algo e a sessão do Conversation Relay utiliza a conversão de fala em texto para transcrever as palavras e enviá-las à sua aplicação por meio de mensagens websocket.
- Etapa da tradução: sua aplicação recebe o texto do autor da chamada e mantém o estado dessas duas chamadas. Ela utiliza o serviço de tradução para converter o texto falado pelo autor da chamada para o idioma usado pelo destinatário da chamada.
- Fale as palavras traduzidas: sua aplicação publica o texto traduzido para a outra conexão websocket, que pertence ao destinatário da chamada. O Conversation Relay recebe esse texto e fala as palavras no idioma do destinatário da chamada. Em seguida, o destinatário da chamada pode falar em seu idioma para iniciar o processo no sentido inverso.
Parece incrível, mas funciona?
Com certeza! Assista ao vídeo a seguir para obter uma visão geral da arquitetura e conferir uma demonstração.
Vídeo de introdução com demonstração
Prefere assistir a um vídeo da instalação?
Pré-requisitos
Esta criação não é para principiantes! É necessário ter conhecimento sobre a AWS, computação sem servidor e programação antes de avançar.
- Conta da Twilio. Se ainda não tiver, inscreva-se em uma conta gratuita aqui.
- Um número de telefone com capacidade de voz fornecido em sua conta da Twilio. Saiba mais aqui.
- Conta da AWS com permissões para provisionar gateways de API, Lambdas, AWS Translate, DynamoDB, funções e políticas do IAM, além de tópicos do SNS. Você pode se inscrever em uma conta aqui.
- AWS CLI instalada com credenciais da AWS configuradas.
- AWS SAM CLI instalada.
- Node.js instalado em seu computador (v18 ou superior).
Vamos criar!
1. Baixe o código para esta aplicação
Baixe o código neste repositório e abra a pasta no ambiente de desenvolvimento de sua preferência.
O repositório inclui todos os recursos necessários para implantar essa solução.
Primeiro, precisamos instalar alguns pacotes de nós. Em uma janela de terminal aberta no diretório do projeto, execute os comandos a seguir para instalar o SDK da Twilio:
2. Atualize o arquivo template.yaml com suas variáveis
Para fazer chamadas de API e executar esta solução, você precisará inserir suas credenciais. Para fins deste artigo e para agilizar a configuração, você pode inserir as credenciais diretamente no arquivo yaml. No entanto, como prática recomendada, especialmente em ambientes de produção, armazene as credenciais usando métodos aprovados pela sua organização. O AWS Secrets Manager, por exemplo, seria uma ótima opção.
Abra o arquivo template.yaml no diretório do projeto. Este arquivo yaml contém as instruções necessárias para provisionar os recursos da AWS.
No arquivo template.yaml, usando FIND (Localizar), procure TWILIO_ (disponível no recurso TwilioInitiateCallFunction).
Descomente as linhas semelhantes a:
Em seguida, substitua os valores pelos respectivos SID da conta da Twilio, token de autenticação, número de telefone padrão do destinatário da chamada (a pessoa à qual você deseja se conectar) e número Twilio padrão usado para chamar o destinatário da chamada.
Use FIND (Localizar) TWILIO_ no arquivo template.yaml novamente para localizar o segundo ponto em que será necessário atualizar o SID da conta da Twilio e o token de autenticação (disponível no recurso OnDisconnectLambdaFunction).
Descomente as linhas semelhantes a:
Então, substitua os valores pelos respectivos SID da conta da Twilio e token de autenticação.
3. Atualize seu perfil da AWS
Para implantar a aplicação SAM em sua conta AWS, verifique se as credenciais da AWS estão devidamente configuradas. Siga essas instruções. Esta aplicação usa seu perfil da AWS salvo localmente para implantar em sua conta da AWS.
Copie aws-profile.profile.sample para aws-profile.profile e, no novo arquivo, insira seu nome de perfil local da AWS. Assim, você poderá executar comandos da AWS localmente para implantar em sua conta da AWS.
Depois de autenticar sua conta da AWS, avance para a próxima etapa.
4. Implante o código
Com essas configurações definidas, estamos prontos para implantar. Em uma janela de terminal, verifique se você está no diretório do projeto e execute:
Este comando processa o arquivo template.yaml e prepara a infraestrutura de tecnologia para implantação.
Observe que ele faz referência ao arquivo aws-profile.profile para autenticar e implantar em sua conta da AWS.
Em seguida, será aberta uma sessão interativa no prompt para definir configurações básicas e implantar todos os seus recursos por meio de uma infraestrutura de tecnologia no CloudFormation. Após executar esse comando, insira estas respostas, substituindo a AWS Region (Região da AWS) pela região de sua escolha:
Depois de responder às últimas perguntas, o SAM criará um conjunto de alterações com todos os recursos que serão implantados. Responda "y" à última pergunta para que a AWS comece a criar os recursos.
O prompt do SAM informará quando a implantação de todos os recursos for concluída. Em seguida, no console da AWS e no CloudFormation, você pode navegar pela nova infraestrutura de tecnologia que acabou de criar. Todos os Lambdas, Lambda Layers, API Gateways, funções do IAM e tópicos do SNS são criados automaticamente. (A IaC, infraestrutura como código, é incrível!)
Você verá uma nova infraestrutura de tecnologia chamada CR-TRANSLATOR:
Clique nessa infraestrutura de tecnologia, vá para a guia Outputs (Saídas) e copie o valor referente a TwimlAPI, que será necessário na próxima etapa! Ele deve ser semelhante a:
4. Conecte seu número de telefone Twilio
Com o valor copiado da etapa anterior, vá para o console da Twilio e navegue até o número de telefone que deseja usar para esta aplicação. Na seção Voice Handler (Gerenciador de voz), em A call comes in (Uma chamada é recebida), selecione webhook e cole o valor copiado acima para conectar seu número de telefone Twilio à aplicação que acabou de ativar.
A seção correta da página da Twilio será semelhante a:
5. Carregue os detalhes da configuração
Agora, precisamos carregar um perfil na nova tabela DynamoDB que está vinculada ao número de telefone do autor da chamada. Esse perfil será usado para configurar as sessões do Conversation Relay para o autor e o destinatário da chamada.
Primeiro, abra o arquivo profile-caller-example.js na pasta configuration/dynamo-loaders.
Nesse arquivo, revise os comentários na parte superior e edite as propriedades do objeto JSON para configurar o autor e o destinatário da chamada, além dos idiomas e das vozes que ambos usarão.
Depois de concluir a edição do arquivo, execute este comando no diretório do projeto:
A execução do comando criará um item em sua instância do DynamoDB que será usado para configurar cada sessão do autor da chamada. Confira esse item no console do DynamoDB.
No console da AWS, acesse DynamoDB, selecione TABLES (Tabelas) e, em seguida, a tabela chamada CR-TRANSLATORAppDatabase. Por fim, clique em EXPLORE TABLE ITEMS (Explorar itens da tabela).
A seguir, localize e clique em um item com uma chave principal que corresponda ao número de telefone do autor da chamada. O item será semelhante a:
Faça uma chamada!
Para funcionar, você precisará de dois telefones. Um deles ligará para o número de telefone da Twilio e o outro receberá a segunda chamada da segunda sessão do Conversation Relay.
Agora você pode ligar para seu número de telefone Twilio e começar a conversar por meio da nova aplicação de tradução de voz em tempo real! No exemplo de configuração do repositório, o autor da chamada fala inglês e o destinatário da chamada fala espanhol. É possível alterar para qualquer idioma compatível.
Para alterar idiomas e vozes do autor da chamada e do destinatário da chamada, modifique os parâmetros de configuração diretamente do console do DynamoDB. Verifique os itens da sessão gerados pelas chamadas e veja como essa aplicação une as conversas.
Limpeza
Para evitar custos indesejados, você pode excluir a infraestrutura de tecnologia do CloudFormation da aplicação no console da AWS. Selecione a infraestrutura de tecnologia e a opção DELETE (Excluir), conforme mostrado a seguir:
Implante na produção
Embora seja possível colocá-lo em operação muito rapidamente, esse sistema não está pronto para seu ambiente de produção. A finalidade deste artigo e repositório é inspirar você a criar aplicações de tradução de voz incríveis em tempo real com a Twilio e o Conversation Relay.
Conclusão
Neste artigo, mostramos como ativar rapidamente um sistema de tradução de prova de conceito usando o Twilio Voice e o Twilio Conversation Relay. Mais uma vez, quero enfatizar que esta é uma prova de conceito. Ainda assim, você há de concordar que a latência e a funcionalidade básica são muito promissoras. O Twilio Conversation Relay torna casos de uso como este muito mais acessíveis!
Alguns casos de uso que podem ser impulsionados pela tradução de conversas entre pessoas demonstrada nesta prova de conceito são:
- Educação e aprendizagem on-line: possibilidade de conectar professores a alunos que falam diferentes idiomas, promovendo ambientes de aprendizagem inclusivos e globais. As escolas também podem se comunicar de forma eficaz com mães e pais em reuniões, independentemente das barreiras linguísticas.
- Viagem e hospitalidade: hotéis, companhias aéreas e agências de viagem podem fornecer suporte de idiomas em tempo real para turistas, melhorando sua experiência.
- Comércio eletrônico e varejo: as empresas on-line podem se expandir globalmente ao oferecer atendimento multilíngue ao cliente em tempo real, ampliando a confiança e as conversões. As centrais de suporte podem ajudar os clientes a navegar por produtos técnicos em seus idiomas nativos.
- Governo e serviços públicos: linhas diretas de emergência e organizações de serviços públicos podem se comunicar com comunidades que falam diferentes idiomas, garantindo acesso a informações e respostas mais rápidas.
- Ajuda humanitária e respostas a desastres: as organizações de ajuda humanitária podem coordenar esforços em zonas de crise com mais eficiência e apoiar refugiados no acesso a serviços essenciais.
Com o Conversation Relay, a Twilio se responsabiliza pela gestão das complexidades da telefonia e pela orquestração de fala em texto e texto em fala. Assim, sua empresa pode priorizar a aplicação, neste caso, a tradução.
A latência exigida para traduzir texto entre diferentes idiomas é ínfima e este repositório é ideal para conversas com trechos curtos. Quando uma pessoa fala várias frases de uma só vez, a latência aumenta por causa do tempo necessário para reproduzir as palavras no outro idioma. Na verdade, é mais uma "impressão" de latência, já que o sistema não é lento. É preciso apenas reproduzir as palavras duas vezes. Para eliminar essa percepção, basta adicionar efeitos sonoros enquanto o texto traduzido está sendo falado ou falar o texto traduzido para ambas as partes, permitindo que cada uma delas saiba quando a tradução foi concluída. Há várias formas de resolver esse problema e a escolha dependerá dos requisitos específicos de cada caso.
Uma coisa é certa: o potencial da tradução em tempo real é enorme. Queremos ver e ouvir o que você pode criar com essas ferramentas incríveis da Twilio!
Material bônus
Alguns dos meus colegas Twilions se uniram recentemente em um evento interno para demonstrar as possibilidades de uso dessa solução, mais especificamente, o Twilio Flex, em um contact center.
Conseguimos conectar a segunda sessão do Conversation Relay do "destinatário da chamada" a um agente com suporte do Flex. Essa solução utiliza um proxy para vincular as duas chamadas. Parte do código para uma solução de proxy está disponível neste repositório.
Confira nossa apresentação:
Dan Bartlett cria aplicações web desde a primeira onda das empresas ponto.com. Os princípios fundamentais daquela época ainda são os mesmos, mas hoje é possível criar soluções mais interessantes com muito mais rapidez. Você pode entrar em contrato com ele pelo e-mail dbartlett [arroba] twilio.com.
Publicações relacionadas
Recursos relacionados
Twilio Docs
De APIs a SDKs e aplicativos de amostra
Documentação de referência de API, SDKs, bibliotecas auxiliares, guias de início rápido e tutoriais para sua linguagem e plataforma.
Centro de Recursos
Os mais recentes e-books, relatórios do setor e webinars
Aprenda com especialistas em engajamento do cliente para melhorar sua própria comunicação.
Ahoy
Centro da comunidade de desenvolvedores da Twilio
Melhores práticas, exemplos de código e inspiração para criar comunicações e experiências de engajamento digital.