> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Speech Engine

## 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.

#### [Inicio rápido](/docs/es/eleven-api/guides/cookbooks/speech-engine)

Crea un agente de voz con el SDK de ElevenLabs.

#### [Referencia del SDK de JavaScript](/docs/es/eleven-api/resources/libraries/speech-engine/javascript-sdk-reference)

Clases, métodos y eventos del SDK de JavaScript.

#### [Referencia del SDK de Python](/docs/es/eleven-api/resources/libraries/speech-engine/python-sdk-reference)

Clases, métodos y eventos del SDK de Python.

## Cómo funciona

Speech Engine conecta tu servidor con ElevenLabs mediante WebSocket. Cada conexión representa una conversación.

```mermaid
sequenceDiagram
    participant Browser
    participant ElevenLabs

    box Your Server
        participant SDK as Speech Engine SDK
        participant LLM
    end

    Browser->>ElevenLabs: User speaks (audio)
    ElevenLabs->>SDK: Transcript (WebSocket)
    SDK->>LLM: Conversation history
    LLM->>SDK: Streamed response
    SDK->>ElevenLabs: Text chunks
    ElevenLabs->>Browser: Agent speaks (audio)
```

1. Un usuario habla en el navegador. ElevenLabs captura el audio y lo transcribe.
2. La transcripción se envía a tu servidor junto con todo el historial de la conversación.
3. Tu servidor pasa la transcripción a tu LLM y transmite la respuesta de vuelta.
4. 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](/docs/es/eleven-agents/overview).

## 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](/docs/es/eleven-api/guides/cookbooks/speech-engine#configuring-the-maximum-conversation-duration).
Si necesitas conversaciones de más de 40 minutos, [contacta con nuestro equipo](https://elevenlabs.io/contact-sales).

## 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](/docs/es/eleven-api/resources/ip-allowlisting) para ver la lista completa de direcciones IP.

> **Tip**
>
> 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()`.