Asynchroniczna zamiana mowy na tekst
Ten przewodnik pokazuje, jak używać webhooków do otrzymywania asynchronicznych powiadomień po zakończeniu zadań transkrypcji.
Poradnik · Zakłada, że masz za sobą krótki przewodnik po Speech to Text .
Omówienie
Webhooki pozwalają otrzymywać automatyczne powiadomienia po zakończeniu zadań transkrypcji Speech to Text, więc nie musisz stale odpytywać API o aktualizacje statusu. Jest to szczególnie przydatne w przypadku długich zadań transkrypcji lub przetwarzania dużej liczby plików audio.
Po zakończeniu transkrypcji ElevenLabs wysyła żądanie POST na wskazany adres URL webhooka wraz z wynikami transkrypcji, w tym tekstem transkrypcji, wykrytym językiem i metadanymi.
Korzystanie z webhooków
Ten przewodnik zakłada, że skonfigurowałeś klucz API i SDK. Jeśli jeszcze tego nie zrobiłeś, najpierw ukończ krótki przewodnik.
Utwórz lub edytuj webhook
W panelu ElevenLabs przejdź do Deweloperzy > Webhooki. Kliknij Utwórz webhook lub edytuj istniejący webhook.

Skonfiguruj webhook:
- Nazwa: Opisowa nazwa webhooka
- Adres URL wywołania zwrotnego: Publicznie dostępny endpoint HTTPS
- Metoda uwierzytelniania webhooka:
HMAClubOAuth. To klient wdraża mechanizm weryfikacji. ElevenLabs wysyła nagłówki umożliwiające weryfikację, ale jej nie wymuszamy. - Zdarzenia: Wybierz Transcription completed.
Dane webhooka
Po zakończeniu transkrypcji endpoint webhooka otrzyma żądanie POST z danymi transkrypcji i webhooka:
Szczegóły struktury odpowiedzi znajdziesz w dokumentacji API zamiany mowy na tekst.
Jeśli żądanie zawierało instrukcję transcript_edit, obiekt transcription zawiera też pole edited_transcript z edytowanym tekstem.
Jeśli transkrypcja się nie powiedzie, endpoint otrzyma zamiast tego zdarzenie webhook_error. Nie ma ono obiektu data: zawiera najwyższego poziomu request_id (to samo id, które zwrócono po przyjęciu żądania), error_message oraz webhook_metadata żądania.
Implementacja endpointu webhooka
Oto przykład implementacji endpointu webhooka obsługującego przychodzące powiadomienia:
Kwestie bezpieczeństwa
Weryfikacja podpisu
Zawsze weryfikuj podpisy webhooków, aby upewnić się, że żądania pochodzą od ElevenLabs.
Wymaganie HTTPS
Adresy URL webhooków muszą korzystać z HTTPS, aby zapewnić bezpieczne przesyłanie danych transkrypcji.
Ograniczanie liczby żądań
Wdróż ograniczanie liczby żądań w endpoincie webhooka, aby zapobiec nadużyciom:
Odpowiedzi w razie błędu
Zwróć kod statusu 2xx, aby potwierdzić odbiór webhooka.
Domyślnie webhooki transkrypcji Speech to Text są dostarczane raz. Każda odpowiedź inna niż 2xx jest uznawana za nieudane dostarczenie, a powtarzające się błędy automatycznie wyłączają webhook.
Jeśli włączysz ponawianie prób dla webhooka, nieudane dostarczenia (5xx, 408, 429 lub błędy połączenia) są ponawiane maksymalnie 5 razy — około 30 sekund, 2 minuty, 8 minut, 30 minut i 30 minut po poprzedniej próbie. Inne odpowiedzi 4xx nie są ponawiane. Każda próba dla tego samego zdarzenia ma ten sam nagłówek ElevenLabs-Webhook-Delivery-Id, więc handler może ignorować duplikaty.
Żądania z enable_logging ustawionym na false (tryb zerowej retencji) otrzymują maksymalnie 2 szybkie ponowienia — 5 sekund i 30 sekund po poprzedniej próbie — jeśli ponawianie jest włączone. Transkrypcja nigdy nie jest przechowywana.
Jeśli dostarczenie nadal się nie powiedzie, pobierz wynik przez Get transcript, używając transcription_id zwróconego po przyjęciu żądania. Transkrypcje nie są przechowywane w przypadku żądań z enable_logging ustawionym na false.
Testowanie webhooków
Lokalny development
Do testów lokalnych użyj narzędzi takich jak ngrok, aby udostępnić lokalny serwer:
Podczas developmentu użyj podanego adresu HTTPS jako endpointu webhooka.
Testowanie webhooka
Możesz przetestować implementację webhooka, wysyłając żądanie transkrypcji i monitorując endpoint: