Voz a Texto asíncrona
Esta guía te muestra cómo usar webhooks para recibir notificaciones asíncronas cuando se completan las tareas de transcripción.
Guía práctica · Da por hecho que has completado la guía de inicio rápido de Voz a Texto .
Descripción general
Los webhooks te permiten recibir notificaciones automáticas cuando se completan tus tareas de transcripción de Voz a Texto, lo que elimina la necesidad de consultar continuamente la API para obtener actualizaciones de estado. Esto resulta especialmente útil para trabajos de transcripción largos o al procesar grandes volúmenes de archivos de audio.
Cuando se completa una transcripción, ElevenLabs enviará una solicitud POST a la URL de webhook que hayas especificado con los resultados de la transcripción, incluido el texto transcrito, la detección de idioma y cualquier metadato.
Usar webhooks
Esta guía da por hecho que has configurado tu clave de API y el SDK. Completa primero la guía de inicio rápido si aún no lo has hecho.
Crear o editar un webhook
En el panel de ElevenLabs, ve a Desarrolladores > Webhooks. Haz clic en Crear webhook o edita uno existente.

Configura el webhook con:
- Nombre: un nombre descriptivo para tu webhook
- URL de callback: tu ruta HTTPS de acceso público
- Método de autenticación del webhook:
HMACuOAuth. El cliente debe implementar el mecanismo de verificación. ElevenLabs envía encabezados que permiten realizar la verificación, pero no la exigimos. - Eventos: selecciona Transcripción completada.
Carga útil del webhook
Cuando se completa una transcripción, tu ruta de webhook recibirá una solicitud POST con los datos de la transcripción y del webhook:
Consulta la referencia de la API de Voz a Texto para conocer los detalles de la estructura de la respuesta.
Si la solicitud incluía una instrucción transcript_edit, el objeto transcription también contiene un campo edited_transcript con el texto editado.
Si la transcripción falla, tu ruta recibe un evento webhook_error en su lugar. No tiene un objeto data: incluye un request_id de nivel superior (el mismo id devuelto cuando se aceptó la solicitud), un error_message y los webhook_metadata de la solicitud.
Implementar tu ruta de webhook
Aquí tienes un ejemplo de cómo implementar una ruta de webhook para gestionar las notificaciones entrantes:
Consideraciones de seguridad
Verificación de firma
Verifica siempre las firmas de los webhooks para asegurarte de que las solicitudes proceden de ElevenLabs.
Requisito de HTTPS
Las URL de webhook deben usar HTTPS para garantizar la transmisión segura de los datos de transcripción.
Limitación de frecuencia
Implementa una limitación de frecuencia en tu ruta de webhook para evitar abusos:
Respuestas ante fallos
Devuelve un código de estado 2xx para confirmar la recepción del webhook.
De forma predeterminada, los webhooks de transcripción de Voz a Texto se entregan una sola vez. Cada respuesta que no sea 2xx cuenta como una entrega fallida, y los fallos repetidos desactivan automáticamente el webhook.
Si activas los reintentos para el webhook, las entregas fallidas (5xx, 408, 429 o errores de conexión) se reintentan hasta 5 veces más, aproximadamente 30 segundos, 2 minutos, 8 minutos, 30 minutos y 30 minutos después del intento anterior. No se reintentan otras respuestas 4xx. Cada intento para el mismo evento incluye el mismo encabezado ElevenLabs-Webhook-Delivery-Id, por lo que tu controlador puede ignorar los duplicados.
Las solicitudes realizadas con enable_logging establecido en false (modo de retención cero) reciben hasta 2 reintentos rápidos, 5 segundos y 30 segundos después del intento anterior, cuando los reintentos están activados. La transcripción nunca se almacena.
Si una entrega sigue fallando, obtén el resultado con Obtener transcripción usando el transcription_id devuelto cuando se aceptó la solicitud. Las transcripciones no se almacenan para las solicitudes realizadas con enable_logging establecido en false.
Probar webhooks
Desarrollo local
Para realizar pruebas locales, usa herramientas como ngrok para exponer tu servidor local:
Usa la URL HTTPS proporcionada como ruta de tu webhook durante el desarrollo.
Pruebas de webhooks
Puedes probar la implementación de tu webhook haciendo una solicitud de transcripción y supervisando tu ruta: