Speech Engine
Añade voz a tu propio agente de chat o LLM con ElevenLabs.
Resumen
ElevenLabs Speech Engine añade capacidades de voz a cualquier agente de chat. ElevenLabs se encarga de Voz a Texto y Texto a Voz, mientras que tu servidor proporciona la lógica del LLM. El SDK gestiona el ciclo de vida de la conexión, los turnos de conversación y la detección de interrupciones para que puedas centrarte en el comportamiento de tu agente.
Cómo funciona
Speech Engine conecta tu servidor con ElevenLabs mediante WebSocket. Cada conexión representa una conversación.
- Un usuario habla en el navegador. ElevenLabs captura el audio y lo transcribe.
- La transcripción se envía a tu servidor junto con todo el historial de la conversación.
- Tu servidor pasa la transcripción a tu LLM y transmite la respuesta de vuelta.
- ElevenLabs convierte el texto en voz y lo reproduce en el navegador.
Cuándo usar Speech Engine
Speech Engine está diseñado para desarrolladores que quieren usar su propio LLM y controlar la lógica de conversación en su propio servidor. Úsalo si necesitas:
- Añadir voz a un agente de chat basado en texto ya existente
- Usar un LLM específico, un modelo ajustado o un pipeline de inferencia personalizado
- Mantener control total sobre el enrutamiento de conversaciones, la gestión del contexto y la llamada a herramientas
- Integrar voz en una aplicación de servidor existente (Express, FastAPI, etc.)
Si quieres una solución totalmente alojada en la que ElevenLabs proporcione el LLM, la base de conocimientos y las herramientas, usa ElevenAgents.
Funciones principales
- Cualquier LLM: usa OpenAI, Anthropic, Google Gemini o cualquier modelo que genere texto. El SDK extrae automáticamente texto de los formatos de transmisión de OpenAI, Anthropic y Gemini.
- Gestión de interrupciones: cuando el usuario habla a mitad de una respuesta, el SDK cancela automáticamente la solicitud de LLM en curso mediante un
AbortSignal(TypeScript) o la cancelación de tareas (Python). - Transmisión: las respuestas se transmiten al navegador a medida que se generan. Pasa una cadena, un iterable asíncrono o un objeto de transmisión nativo del LLM.
- Turnos de conversación: el SDK gestiona los turnos de conversación, por lo que tu servidor solo tiene que responder a las transcripciones.
Duración de la conversación
Speech Engine permite conversaciones de hasta 40 minutos (2400 segundos). De forma predeterminada, una
conversación termina después de 600 segundos (10 minutos). Para permitir conversaciones más largas, aumenta
conversation.max_duration_seconds en la API o Duración máxima de la conversación en la pestaña
Avanzado del panel. Consulta
Configuración de la duración máxima de la conversación.
Si necesitas conversaciones de más de 40 minutos, contacta con nuestro equipo.
Lista de permitidos de IP
Si tu servidor está detrás de un cortafuegos o utiliza controles de acceso basados en IP, puedes incluir en una lista de permitidos las IP de salida estáticas desde las que se originan las conexiones WebSocket de ElevenLabs. Consulta Lista de permitidos de IP para ver la lista completa de direcciones IP.
Usar una lista de permitidos de IP garantiza que tu servidor solo acepte conexiones WebSocket de los sistemas de ElevenLabs.
Preguntas frecuentes
¿Qué LLM son compatibles?
Cualquier LLM que genere texto. El SDK incluye extracción de transmisión integrada para OpenAI (Responses API y Chat Completions API), Anthropic Messages API y Google Gemini API. Para otros proveedores, pasa una cadena sencilla o un iterable asíncrono de fragmentos de cadena.
¿Cuál es la diferencia entre Speech Engine y ElevenAgents?
ElevenAgents es una plataforma totalmente alojada en la que ElevenLabs proporciona el LLM, la base de conocimientos y las herramientas. Speech Engine es para desarrolladores que quieren usar su propio LLM y controlar la lógica de conversación en su propio servidor.
¿Qué frameworks de servidor son compatibles?
En TypeScript, puedes conectar Speech Engine a cualquier servidor HTTP de Node.js (Express, Fastify o
http.createServer() sin framework), o ejecutar un servidor WebSocket independiente. En Python, el SDK proporciona
un servidor independiente mediante engine.serve(), o puedes integrarlo con FastAPI, Starlette o cualquier
framework ASGI mediante engine.create_session().