Speech to Text asynchrone
Ce guide explique comment utiliser des 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. Vous n’avez ainsi plus besoin d’interroger continuellement l’API pour obtenir des mises à jour de statut. Cette approche est particulièrement utile pour les tâches de transcription longues ou le traitement de volumes importants de fichiers audio.
Lorsqu’une transcription est terminée, ElevenLabs envoie une requête POST à l’URL de webhook indiquée avec les résultats de la transcription, notamment le texte transcrit, la détection de la 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 nous ne l’imposons 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 inclut 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 contient pas d’objet data : il comprend un request_id de premier niveau, identique à l’identifiant renvoyé lors de l’acceptation de la requête, 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 des webhooks pour vous assurer que les requêtes proviennent d’ElevenLabs.
Exigence HTTPS
Les URL de webhook doivent utiliser HTTPS afin de garantir une 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 afin d’éviter les abus :
Réponses en cas d’échec
Renvoyez un code de statut 2xx pour accuser réception du webhook.
Par défaut, les webhooks de transcription Speech to Text ne sont envoyés qu’une 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 échouées (5xx, 408, 429 ou erreurs de connexion) font l’objet de cinq nouvelles tentatives au maximum, 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 nouvelle tentative. Chaque tentative pour le même événement comporte le même en-tête ElevenLabs-Webhook-Delivery-Id, votre gestionnaire peut donc ignorer les doublons.
Les requêtes effectuées avec enable_logging défini sur false (mode zéro rétention) bénéficient au maximum de deux nouvelles tentatives rapides, 5 secondes puis 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 de 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 en local, utilisez des outils tels que ngrok afin d’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 :