Notícias

AssemblyAI detalha a construção bruta do agente de voz WebSocket sem SDK

A AssemblyAI publicou um tutorial para construir um agente de voz diretamente em WebSockets com streaming STT, LLM Gateway e TTS.

Ilustração editorial temática
Ilustração editorial; não é uma fotografia do acontecimento.

Artigo traduzido. Ler o artigo original.

A AssemblyAI publicou um tutorial em 29 de outubro de 2026 que explica a construção de um agente de voz diretamente em WebSockets brutos, sem usar seu SDK. O post conecta o streaming de fala para texto, uma chamada HTTP LLM e a reprodução de texto para fala, e apresenta a abordagem como uma forma de manter controle total sobre cada quadro de protocolo e transição de estado.

Evidências e contexto

O guia utiliza três conexões e um chave API: o WebSocket de fala em tempo real Universal-3.6 Pro, o LLM Gateway sobre HTTPS simples e o WebSocket de Texto para Fala AssemblyAI. De acordo com o tutorial, o soquete de voz para texto recebe áudio binário PCM 16 kHz e retorna quadros como Início, Iniciado em Fala, Virar e Terminação, enquanto o soquete de texto para fala aceita Gerar, Esvazar, Cancelar, Manter Vivo e Terminar, retornando Áudio, FlushDone, Cancelado, Terminação e Erro.

AssemblyAI diz que o exemplo foi feito para desenvolvedores que querem entender ou possuir cada byte do fluxo, incluindo comportamento de barge-in e chamadas de ferramentas. O post diz que o exemplo cabe em cerca de 300 linhas de Python e usa apenas as bibliotecas websocket, httpx e sounddevice. Também diz que a mesma chave API autentica todos os serviços três, com o LLM Gateway usando um formato de chat-completions compatível com OpenAI.

O agente de exemplo do tutorial é configurado para responder perguntas de clima via uma chamada de ferramenta get_weather. No código de exemplo, a solicitação de modelo é enviada com ferramentas na carga útil da mensagem, o resultado da função é anexado como uma mensagem de ferramenta, e o LLM é chamado novamente até que retorne texto simples. O exemplo do AssemblyAI então envia esse texto para o socket TTS, onde cada resposta deve ser seguida por Flush para produzir áudio.

O artigo também documenta o tratamento de entrada intrativa: quando o usuário fala sobre o agente, o programa limpa a reprodução local e envia o Cancel no soquete TTS, enquanto elimina quaisquer quadros de áudio finais até que o Cancelled chegue. Ele adiciona um filtro de backchannel para que respostas curtas como "mhm", "ok" ou "sim" não interrompam o agente no meio da frase. O tutorial diz que a sessão TTS pode permanecer aberta durante toda a conversa, mas deve ser mantida ativa com quadros periódicos durante os períodos ociosos.

A postagem do AssemblyAI inclui detalhes operacionais e orientações para lidar com erros, incluindo a observação de que o socket TTS envia um quadro de erro antes do fechamento da falha e que o socket STT fecha com códigos de fechamento do websocket e motivos. O guia também diz que a voz TTS na amostra usa o ID de voz da Audrey, que o formato de saída é 24 kHz pcm_s16le, e que a entrada do microfone deve corresponder à taxa de amostragem de 16 kHz configurada no lado de fala para texto.

Mais artigos em português · Comparações financeiras e fontes da SEC (inglês)