Przejdź do nawigacji

Dokumentacja zdarzeń Realtime

Opis zdarzeń odbieranych z API Realtime Speech to Text

Dokumentacja · Zawiera listę wszystkich zdarzeń wysyłanych do i odbieranych z WebSocket API Realtime Speech to Text.

Więcej informacji o API i jego opcjach znajdziesz w dokumentacji Realtime Speech to Text API.

committed_transcript to stabilne, końcowe zdarzenie dla każdego segmentu. Publiczne API nie emituje osobnego zdarzenia final_transcript.

Wysyłane zdarzenia

ZdarzenieOpisKiedy używać
input_audio_chunkWysyłanie danych audio do transkrypcjiNieprzerwanie podczas streamowania audio

W Scribe v3 Live pierwszy input_audio_chunk sesji może też zawierać bibliotekę kluczowych terminów.

Odbierane zdarzenia

ZdarzenieOpisKiedy odbierane
session_startedPotwierdza połączenie i zwraca konfigurację sesjiOd razu po ustanowieniu połączenia WebSocket
partial_transcriptAktualizacja transkrypcji na żywo dla trwającego segmentu. Późniejsze wersje częściowe zastępują wcześniejsze. Przy diarize=true zawiera robocze words z speaker_id (null do czasu identyfikacji); identyfikatory mówców i znaczniki czasu mogą się zmieniać, a niedopasowane słowa nie mają znaczników czasu. Wysyłane też jako keepalive — pusty text, jeśli segment nie ma niezatwierdzonego tekstu, lub powtórzenie najnowszej wersji częściowej, jeśli go maPodczas przetwarzania audio, przed zatwierdzeniem. Wysyłane też jako keepalive mniej więcej raz na keepalive_interval_ms, jeśli skonfigurowano
committed_transcriptUstalona transkrypcja segmentu. To stabilny, końcowy tekst segmentu, który się nie zmieni. Przy diarize=true zawiera indeks segment_index od zera i nie jest opóźniana przez diarizacjęPo zatwierdzeniu (ręcznym lub wywołanym przez VAD)
diarized_transcriptTranskrypcja z oznaczeniem mówców, zawierająca text, words i segment_index zgodny z zatwierdzoną transkrypcją. Nierozpoznani mówcy mają speaker_id: null. Zobacz diaryzacja mówcówPo każdej zatwierdzonej transkrypcji, w kolejności zatwierdzania, nawet gdy nie można rozpoznać mówców. Odbierane tylko przy diarize=true
speakers_mergedWskazuje, że from_speaker_id i to_speaker_id dotyczą jednej osoby. Zastąp każde wcześniejsze użycie from_speaker_id w częściowych i zdiaryzowanych transkrypcjach przez to_speaker_id; stosuj kolejne scalenia w kolejności odbierania. Identyfikatory nigdy nie są używane ponownieGdy dwa identyfikatory mówców zostaną rozpoznane jako ta sama osoba. Odbierane tylko przy diarize=true
committed_transcript_with_timestampsZatwierdzona transkrypcja ze znacznikami czasu na poziomie słów i wykrytym language_codeWysyłane po zatwierdzonej transkrypcji. Odbierane tylko, gdy parametry zapytania zawierają include_timestamps=true lub include_language_detection=true
committed_transcript_entitiesEncje wykryte w segmencie zatwierdzonej transkrypcji wraz z przesunięciami znakówWysyłane krótko po każdej zatwierdzonej transkrypcji. Odbierane tylko, gdy parametry zapytania zawierają entity_detection
redacted_transcriptSegment zatwierdzonej transkrypcji, w którym zredagowane encje zastąpiono znacznikami, wraz z oryginalnym zatwierdzonym tekstemWysyłane krótko po każdej zatwierdzonej transkrypcji. Odbierane tylko, gdy parametry zapytania zawierają entity_redaction
edited_transcriptEdytowana wersja segmentu zatwierdzonej transkrypcji wraz z oryginalnym zatwierdzonym tekstemWysyłane krótko po każdej zatwierdzonej transkrypcji. Odbierane tylko, gdy parametry zapytania zawierają transcript_edit

Kod języka

Ustaw include_language_detection=true w parametrach zapytania, aby otrzymywać język mowy w zdarzeniach partial_transcript i committed_transcript_with_timestamps jako language_code.

  • W partial_transcript pole language_code jest zawsze obecne i ma wartość null, dopóki trwający segment nie zawiera wystarczająco dużo mowy, by określić język (około czterech słów lub ośmiu znaków w językach zapisywanych bez spacji, takich jak chiński, japoński i tajski), oraz dopóki ten sam język nie pojawi się w kolejnych wersjach częściowych. Bardzo krótkie segmenty, na przykład jedno słowo, mogą pozostać null, a wersja częściowa zbyt krótka do określenia języka resetuje licznik kolejnych wersji częściowych. Po ustawieniu wartość zmienia się dopiero, gdy nowy język pojawi się w kolejnych wersjach częściowych, więc pojedyncza nietypowa wersja jej nie zmieni.
  • Wersje częściowe bez wypowiedzianego tekstu, na przykład zawierające tylko interpunkcję, mają language_code: null.
  • language_code w committed_transcript_with_timestamps to końcowy wynik dla segmentu. Jeśli różni się od ostatniej wersji częściowej, użyj zatwierdzonej wartości. Jest wysyłany po committed_transcript, więc do czasu jego nadejścia wyświetlaj wartość z wersji częściowej.
  • Jeśli podczas łączenia przekażesz language_code lub secondary_languages, język wynika z rozpoznawania modelu wśród tych języków. Bez wskazówki jest wykrywany na podstawie tekstu transkrypcji.
  • Bez include_language_detection=true zdarzenia partial_transcript nie mają pola language_code.

Obsługa błędów

Jeśli wystąpi błąd, przed zamknięciem połączenia WebSocket zostanie zwrócony komunikat o błędzie.

Typ błęduOpis
auth_errorWystąpił błąd podczas uwierzytelniania żądania. Sprawdź dokładnie swój klucz API
quota_exceededPrzekroczono limit użycia
transcriber_errorWystąpił błąd podczas transkrypcji audio.
input_errorWystąpił błąd podczas przetwarzania fragmentu audio. Prawdopodobnie z powodu nieprawidłowego formatu wejściowego lub parametrów
invalid_requestParametry połączenia zostały odrzucone. Sprawdź parametry zapytania w dokumentacji API
errorOgólny błąd serwera. Wysyłany też, gdy redakcja encji się nie powiedzie, przed zamknięciem połączenia
commit_throttledZatwierdzanie zostało ograniczone z powodu zbyt wielu żądań zatwierdzenia w krótkim czasie
unaccepted_termsNie zaakceptowano warunków usługi wymaganych do korzystania ze Scribe. Sprawdź i zaakceptuj regulamin w panelu ElevenLabs
rate_limitedOsiągnięto limit żądań. Zmniejsz liczbę żądań wysyłanych w krótkim czasie
queue_overflowKolejka przetwarzania jest pełna. Wysyłaj mniej żądań w krótkim czasie
resource_exhaustedZasoby serwera są wyczerpane. Spróbuj ponownie później
session_time_limit_exceededOsiągnięto maksymalny czas sesji. Rozpocznij nową sesję lub zmień subskrypcję na wyższą
chunk_size_exceededFragment audio jest zbyt duży. Zmniejsz jego rozmiar
insufficient_audio_activityNie wysłano wystarczającej aktywności audio, aby utrzymać połączenie