Ir para a navegação

Speech Engine

Adicione voz ao seu próprio agente de chat ou LLM com a ElevenLabs.

Visão geral

O Speech Engine da ElevenLabs adiciona recursos de voz a qualquer agente de chat. A ElevenLabs cuida da conversão de fala em texto e de texto em fala, enquanto seu servidor fornece a lógica do LLM. O SDK gerencia o ciclo de vida da conexão, as alternâncias de turno e a detecção de interrupções para que você possa se concentrar no comportamento do seu agente.

Como funciona

O Speech Engine conecta seu servidor à ElevenLabs via WebSocket. Cada conexão representa uma conversa.

  1. Um usuário fala no navegador. A ElevenLabs captura o áudio e o transcreve.
  2. A transcrição é enviada ao seu servidor junto com todo o histórico da conversa.
  3. Seu servidor envia a transcrição ao LLM e transmite a resposta de volta.
  4. A ElevenLabs converte o texto em fala e o reproduz no navegador.

Quando usar o Speech Engine

O Speech Engine foi desenvolvido para desenvolvedores que querem usar seu próprio LLM e controlar a lógica da conversa em seu próprio servidor. Use-o quando precisar:

  • Adicionar voz a um agente de chat existente baseado em texto
  • Usar um LLM específico, um modelo ajustado ou um pipeline de inferência personalizado
  • Manter controle total sobre o roteamento da conversa, o gerenciamento de contexto e a chamada de ferramentas
  • Integrar voz a um aplicativo de servidor existente (Express, FastAPI etc.)

Se quiser uma solução totalmente hospedada em que a ElevenLabs fornece o LLM, a base de conhecimento e as ferramentas, use o ElevenAgents.

Recursos principais

  • Qualquer LLM - use OpenAI, Anthropic, Google Gemini ou qualquer modelo que produza texto. O SDK extrai automaticamente texto dos formatos de streaming da OpenAI, Anthropic e Gemini.
  • Gerenciamento de interrupções - quando o usuário fala durante uma resposta, o SDK cancela automaticamente a solicitação de LLM em andamento por meio de um AbortSignal (TypeScript) ou cancelamento de tarefa (Python).
  • Streaming - as respostas são transmitidas ao navegador à medida que são geradas. Envie uma string, um iterável assíncrono ou um objeto de stream nativo do LLM.
  • Alternância de turnos - o SDK gerencia os turnos da conversa, então seu servidor só precisa responder às transcrições.

Duração da conversa

O Speech Engine oferece suporte a conversas de até 40 minutos (2.400 segundos). Por padrão, uma conversa termina após 600 segundos (10 minutos). Para permitir conversas mais longas, aumente conversation.max_duration_seconds na API ou Duração máxima da conversa na guia Avançado do painel. Consulte Como configurar a duração máxima da conversa. Se precisar de conversas com mais de 40 minutos, fale com nossa equipe.

Lista de permissões de IP

Se seu servidor estiver atrás de um firewall ou usar controles de acesso baseados em IP, você poderá adicionar à lista de permissões os IPs de saída estáticos dos quais as conexões WebSocket da ElevenLabs são originadas. Consulte Lista de permissões de IP para ver a lista completa de endereços IP.

Usar uma lista de permissões de IP garante que seu servidor aceite conexões WebSocket apenas dos sistemas da ElevenLabs.

Perguntas frequentes

Qualquer LLM que produza texto. O SDK tem extração de stream integrada para a OpenAI (Responses API e Chat Completions API), Anthropic Messages API e Google Gemini API. Para outros provedores, envie uma string simples ou um iterável assíncrono de partes de string.

O ElevenAgents é uma plataforma totalmente hospedada em que a ElevenLabs fornece o LLM, a base de conhecimento e as ferramentas. O Speech Engine é para desenvolvedores que querem usar seu próprio LLM e controlar a lógica da conversa em seu próprio servidor.

Em TypeScript, você pode conectar o Speech Engine a qualquer servidor HTTP Node.js (Express, Fastify ou http.createServer() simples), ou executar um servidor WebSocket independente. Em Python, o SDK oferece um servidor independente por meio de engine.serve(), ou você pode integrar com FastAPI, Starlette ou qualquer framework ASGI usando engine.create_session().