Referencia del SDK de Python
Clases, métodos y eventos del SDK de Python de Speech Engine.
Esta página documenta la API pública del SDK de Python de Speech Engine (elevenlabs).
Obtener un recurso de Speech Engine
Recupera un SpeechEngineResource mediante el ID de su motor. El objeto devuelto ofrece métodos para iniciar un servidor, verificar solicitudes o crear sesiones individuales.
SpeechEngineResource
Propiedades
serve
Inicia un servidor WebSocket independiente. Se bloquea hasta que se detiene.
Desactivar la autenticación
De forma predeterminada, serve() verifica la cabecera X-Elevenlabs-Speech-Engine-Authorization en cada conexión entrante. Si tu servidor está detrás de una capa de infraestructura que ya restringe el tráfico entrante a ElevenLabs (normalmente una lista de IP permitidas limitada a los rangos de salida de ElevenLabs), puedes omitir la verificación de JWT pasando disable_auth=True:
Cuando la autenticación está desactivada, el servidor acepta cualquier cliente que pueda acceder a él y emite un UserWarning al iniciarse.
Usa disable_auth=True solo si tienes una lista de IP permitidas, valores de cabecera personalizados o una restricción
equivalente a nivel de red delante del servidor. Sin una, cualquier persona en internet puede abrir una
sesión y consumir tu capacidad de procesamiento y cuota de LLM posterior.
verify_request
Verifica que una solicitud entrante procede de la API de Speech Engine de ElevenLabs. Comprueba que la cabecera X-Elevenlabs-Speech-Engine-Authorization contenga un JWT válido firmado con el hash SHA-256 de tu clave de API.
Solo es necesario cuando gestionas tú mismo la actualización a WebSocket. Al usar serve(), la verificación se gestiona automáticamente (a menos que se haya establecido disable_auth=True).
Devuelve: bool — True si la solicitud es válida.
create_session
Envuelve un WebSocket aceptado en una SpeechEngineSession. Úsalo para integrar un servidor personalizado (por ejemplo, FastAPI, Starlette o gestión manual de WebSocket).
Devuelve: SpeechEngineSession
SpeechEngineSession
Envuelve una única conexión WebSocket. Cada conexión representa una conversación. La sesión emite eventos para las transcripciones y los cambios de ciclo de vida, y ofrece métodos para enviar respuestas de LLM.
Cuando llega una transcripción nueva, el controlador de la transcripción anterior se cancela automáticamente, interrumpiendo cualquier llamada de LLM en curso.
Propiedades
on
Registra un controlador para un evento. Devuelve la sesión para poder encadenar llamadas.
off
Elimina un controlador registrado previamente.
once
Registra un controlador que se ejecuta una vez y después se elimina.
send_response
Envía una respuesta de LLM a la API de Speech Engine para la síntesis de texto a voz. Debe llamarse dentro de un controlador on_transcript. Si se llama fuera de un controlador, emite una advertencia y vuelve sin enviar nada.
El SDK detecta y extrae automáticamente el texto de los siguientes formatos de flujo de LLM:
run
Ejecuta el bucle de recepción hasta que se cierre el WebSocket. Este es el punto de entrada principal después de construir una sesión manualmente mediante create_session().
close
Cierra la sesión y la conexión WebSocket subyacente.
Callbacks
Los argumentos de palabra clave que se pasan a serve(). Todos los callbacks son opcionales. Los controladores pueden ser funciones síncronas o asíncronas (corutinas).
Eventos
Cuando usas session.on() directamente en lugar de callbacks, estos son los nombres de evento y las firmas de sus controladores.
Las constantes de nombres de eventos están disponibles para usarlas de forma segura con tipos:
ConversationMessage
Un único mensaje en el historial de conversación. La transcripción completa se pasa a on_transcript en cada turno.
Protocolo de conexión
Como referencia, estos son los mensajes JSON intercambiados a través de la conexión WebSocket. El SDK gestiona la serialización y deserialización automáticamente.