Speech to Text asynchrone
Ce guide vous montre comment utiliser les webhooks pour recevoir des notifications asynchrones lorsque les tâches de transcription sont terminées.
Guide pratique · Suppose que vous avez suivi le guide de démarrage rapide de Speech to Text .
Vue d’ensemble
Les webhooks vous permettent de recevoir des notifications automatiques lorsque vos tâches de transcription Speech to Text sont terminées, sans avoir à interroger continuellement l’API pour obtenir des mises à jour de statut. Ils sont particulièrement utiles pour les tâches de transcription de longue durée ou le traitement de grands volumes de fichiers audio.
Lorsqu’une transcription est terminée, ElevenLabs envoie une requête POST à l’URL de webhook que vous avez indiquée avec les résultats de transcription, notamment le texte transcrit, la détection de langue et les métadonnées.
Utiliser les webhooks
Ce guide suppose que vous avez configuré votre clé API et votre SDK. Suivez d’abord le guide de démarrage rapide si ce n’est pas encore fait.
Créer ou modifier un webhook
Dans le Dashboard ElevenLabs, accédez à Développeurs > Webhooks. Cliquez sur Créer un webhook, ou modifiez un webhook existant.

Configurez le webhook avec :
- Nom : un nom descriptif pour votre webhook
- URL de rappel : votre point de terminaison HTTPS accessible publiquement
- Méthode d’authentification du webhook :
HMACouOAuth. Il appartient au client d’implémenter le mécanisme de vérification. ElevenLabs envoie des en-têtes permettant la vérification, mais ne l’impose pas. - Événements : sélectionnez Transcription terminée.
Charge utile du webhook
Lorsqu’une transcription est terminée, votre point de terminaison de webhook reçoit une requête POST contenant les données de transcription et du webhook :
Consultez le Guide de l’API Speech-to-text pour en savoir plus sur la structure de la réponse.
Si la requête incluait une instruction transcript_edit, l’objet transcription contient également un champ edited_transcript avec le texte modifié.
Si la transcription échoue, votre point de terminaison reçoit à la place un événement webhook_error. Il ne comporte pas d’objet data : il contient un request_id de niveau supérieur, identique à l’identifiant renvoyé lorsque la requête a été acceptée, un error_message et les webhook_metadata de la requête.
Implémenter votre point de terminaison de webhook
Voici un exemple d’implémentation d’un point de terminaison de webhook pour gérer les notifications entrantes :
Considérations de sécurité
Vérification de signature
Vérifiez toujours les signatures de webhook afin de vous assurer que les requêtes proviennent d’ElevenLabs.
Exigence HTTPS
Les URL de webhook doivent utiliser HTTPS afin d’assurer la transmission sécurisée des données de transcription.
Limitation du débit
Implémentez une limitation du débit sur votre point de terminaison de webhook pour éviter les abus :
Réponses en cas d’échec
Renvoyez un code d’état 2xx pour accuser réception du webhook.
Par défaut, les webhooks de transcription Speech to Text sont envoyés une seule fois. Toute réponse autre que 2xx est considérée comme un échec de livraison, et les échecs répétés désactivent automatiquement le webhook.
Si vous activez les nouvelles tentatives pour le webhook, les livraisons ayant échoué (5xx, 408, 429 ou erreurs de connexion) sont relancées jusqu’à 5 fois supplémentaires, environ 30 secondes, 2 minutes, 8 minutes, 30 minutes et 30 minutes après la tentative précédente. Les autres réponses 4xx ne font pas l’objet de nouvelles tentatives. Chaque tentative pour un même événement comporte le même en-tête ElevenLabs-Webhook-Delivery-Id, ce qui permet à votre gestionnaire d’ignorer les doublons.
Les requêtes effectuées avec enable_logging défini sur false (mode zéro rétention) bénéficient d’un maximum de 2 nouvelles tentatives rapides, 5 secondes et 30 secondes après la tentative précédente, lorsque les nouvelles tentatives sont activées. La transcription n’est jamais stockée.
Si une livraison échoue toujours, récupérez le résultat avec Obtenir la transcription à l’aide du transcription_id renvoyé lorsque la requête a été acceptée. Les transcriptions ne sont pas stockées pour les requêtes effectuées avec enable_logging défini sur false.
Tester les webhooks
Développement local
Pour les tests locaux, utilisez des outils comme ngrok pour exposer votre serveur local :
Utilisez l’URL HTTPS fournie comme point de terminaison de webhook pendant le développement.
Test des webhooks
Vous pouvez tester votre implémentation de webhook en effectuant une requête de transcription et en surveillant votre point de terminaison :