Speech to Text asincrono
Questa guida mostra come usare i webhook per ricevere notifiche asincrone quando le attività di trascrizione sono completate.
Guida pratica · Presuppone che tu abbia completato la guida rapida di Speech to Text .
Panoramica
I webhook ti permettono di ricevere notifiche automatiche quando le attività di trascrizione di Speech to Text sono completate, eliminando la necessità di interrogare continuamente l’API per gli aggiornamenti di stato. Sono particolarmente utili per le attività di trascrizione di lunga durata o quando elabori grandi volumi di file audio.
Quando una trascrizione è completata, ElevenLabs invia una richiesta POST all’URL webhook specificato con i risultati della trascrizione, inclusi il testo trascritto, il rilevamento della lingua ed eventuali metadati.
Uso dei webhook
Questa guida presuppone che tu abbia configurato la chiave API e l’SDK. Completa prima la guida rapida, se non l’hai ancora fatto.
Crea o modifica un webhook
Nella dashboard di ElevenLabs, vai a Sviluppatori > Webhook. Fai clic su Crea webhook oppure modifica un webhook esistente.

Configura il webhook con:
- Nome: un nome descrittivo per il webhook
- URL callback: l’endpoint HTTPS accessibile pubblicamente
- Metodo di autenticazione del webhook:
HMACoppureOAuth. Spetta al client implementare il meccanismo di verifica. ElevenLabs invia header che consentono la verifica, ma non la imponiamo. - Eventi: seleziona Trascrizione completata.
Payload del webhook
Quando una trascrizione è completata, l’endpoint webhook riceverà una richiesta POST con i dati della trascrizione e del webhook:
Consulta il riferimento dell’API Speech to Text per conoscere i dettagli della struttura della risposta.
Se la richiesta includeva un’istruzione transcript_edit, l’oggetto transcription contiene anche un campo edited_transcript con il testo modificato.
Se la trascrizione non riesce, l’endpoint riceve invece un evento webhook_error. Non contiene alcun oggetto data: include un request_id di primo livello (lo stesso ID restituito quando la richiesta è stata accettata), un error_message e il webhook_metadata della richiesta.
Implementazione dell’endpoint webhook
Ecco un esempio di come implementare un endpoint webhook per gestire le notifiche in arrivo:
Considerazioni sulla sicurezza
Verifica della firma
Verifica sempre le firme dei webhook per assicurarti che le richieste provengano da ElevenLabs.
Requisito HTTPS
Gli URL webhook devono usare HTTPS per garantire la trasmissione sicura dei dati di trascrizione.
Limitazione della frequenza
Implementa la limitazione della frequenza sull’endpoint webhook per prevenire abusi:
Risposte agli errori
Restituisci un codice di stato 2xx per confermare la ricezione del webhook.
Per impostazione predefinita, i webhook di trascrizione Speech to Text vengono inviati una sola volta. Ogni risposta diversa da 2xx viene conteggiata come invio non riuscito e gli errori ripetuti disabilitano automaticamente il webhook.
Se attivi i tentativi per il webhook, gli invii non riusciti (5xx, 408, 429 o errori di connessione) vengono ritentati fino ad altre 5 volte, circa 30 secondi, 2 minuti, 8 minuti, 30 minuti e 30 minuti dopo il tentativo precedente. Le altre risposte 4xx non vengono ritentate. Ogni tentativo per lo stesso evento include lo stesso header ElevenLabs-Webhook-Delivery-Id, quindi il tuo handler può ignorare i duplicati.
Le richieste effettuate con enable_logging impostato su false (modalità di conservazione zero) ricevono fino a 2 tentativi rapidi, 5 secondi e 30 secondi dopo il tentativo precedente, quando i tentativi sono attivati. La trascrizione non viene mai archiviata.
Se un invio continua a non riuscire, recupera il risultato con Ottieni trascrizione usando il transcription_id restituito quando la richiesta è stata accettata. Le trascrizioni non vengono archiviate per le richieste effettuate con enable_logging impostato su false.
Test dei webhook
Sviluppo locale
Per i test locali, usa strumenti come ngrok per esporre il server locale:
Durante lo sviluppo, usa l’URL HTTPS fornito come endpoint webhook.
Test del webhook
Puoi testare l’implementazione del webhook effettuando una richiesta di trascrizione e monitorando l’endpoint: