Início rápido do Speech Engine
Este guia mostra como criar um agente de voz com o Speech Engine. Você configura um servidor que conecta seu LLM à ElevenLabs e, em seguida, configura um cliente no navegador para que os usuários possam ter conversas por voz com seu agente.
Use a skill do ElevenLabs Speech Engine para adicionar voz ao seu agente de chat:
Como o Speech Engine funciona
O Speech Engine conecta seu LLM à ElevenLabs para que os usuários possam falar com seu agente e ouvi-lo responder. A ElevenLabs processa a conversão de fala em texto e de texto em fala; seu servidor fornece a lógica do LLM.
Cada conexão WebSocket representa uma conversa. Quando o usuário fala, a ElevenLabs transcreve o áudio e envia a transcrição ao seu servidor. Seu servidor a envia ao LLM e, em seguida, transmite a resposta de volta. A ElevenLabs converte o texto em fala e o reproduz no navegador. O SDK gerencia conexões, alternância de turnos e detecção de interrupções.
Pré-requisitos
Este tutorial usa a API da OpenAI para o LLM. Você precisa de uma chave de API da OpenAI definida na variável de ambiente OPENAI_API_KEY.
Configuração do servidor
Crie uma chave de API
Crie uma chave de API no painel aqui, que você usará para acessar a API com segurança.
Armazene a chave como um segredo gerenciado e passe-a aos SDKs como uma variável de ambiente por meio de um arquivo .env ou diretamente na configuração do seu app, conforme preferir.
Exponha o servidor
O Speech Engine precisa de uma URL acessível publicamente. Use o ngrok para expor seu servidor local. O servidor ainda não foi criado, mas o ngrok precisa estar em execução primeiro para que você tenha a URL para a próxima etapa.
Copie a URL de encaminhamento (por exemplo, https://abc123.ngrok.io).
Crie uma instância do Speech Engine
Use o SDK para criar uma instância do Speech Engine, passando sua URL do ngrok com o caminho /ws adicionado como a URL do WebSocket.
Execute este script e copie o ID do Speech Engine (por exemplo, seng_8k3m9xr4hjnfg983brhmhkd98n6) para a próxima etapa.
Crie o servidor
Crie um arquivo chamado server.py ou server.mts com o conteúdo a seguir. Isso configura um servidor, conecta o Speech Engine no caminho /ws e usa a OpenAI para gerar respostas.
O callback onTranscript / on_transcript recebe o histórico completo da conversa e a sessão atual. O SDK TypeScript também fornece um AbortSignal que é acionado se o usuário interromper durante uma resposta. Passar signal para a chamada da OpenAI cancela automaticamente a solicitação do LLM em caso de interrupção.
sendResponse() / send_response() aceita uma string, um iterável assíncrono ou um stream da OpenAI, Anthropic ou Google Gemini. O SDK extrai o conteúdo de texto automaticamente.
No exemplo acima, a transcrição completa do usuário é enviada ao LLM. Em um ambiente de produção, você deve adicionar proteções para evitar tentativas de injeção ou manipulação de prompt.
Configuração do cliente
Crie um endpoint de token
Adicione um endpoint no servidor que gere um token de conversa. Isso mantém sua chave de API fora do navegador e usa WebRTC para garantir a melhor qualidade de áudio.
Crie a interface da conversa
Busque o token de conversa no seu servidor e use-o para iniciar uma sessão.
React
JavaScript
Experimente
Verifique se há três processos em execução:
- ngrok - encaminhando para a porta 3001
- Seu servidor Speech Engine -
python server.pyounpx tsx server.mts - O servidor de token -
npx tsx token-server.mtsoupython token_server.py
Abra sua aplicação cliente no navegador e clique em Iniciar conversa. Conceda acesso ao microfone quando solicitado e comece a falar. Você deverá ouvir o agente responder pelos alto-falantes.
Se tiver debug: true ativado no servidor, você verá as transcrições recebidas e as respostas enviadas registradas no console.
Eventos da sessão
Configurar a primeira mensagem do agente
Por padrão, o agente espera que o usuário fale primeiro. Para que o agente cumprimente o usuário quando a conversa começar, defina uma primeira mensagem na opção overrides no cliente ao iniciar a sessão.
A primeira mensagem é falada pelo agente assim que a conexão é estabelecida. Ela não aciona o callback onTranscript no seu servidor — é processada inteiramente pela ElevenLabs.
Configurar a duração máxima da conversa
Por padrão, uma conversa termina após 600 segundos (10 minutos). O Speech Engine oferece suporte a conversas de até 7.200 segundos (2 horas). Para permitir conversas mais longas, atualize o recurso Speech Engine com um max_duration_seconds maior:
Você também pode definir isso no painel: abra o Speech Engine, acesse a aba Avançado e defina Duração máxima da conversa em Comportamento conversacional.