Dokumentacja Python SDK
Ta strona dokumentuje publiczne API Python SDK Speech Engine (elevenlabs).
Pobieranie zasobu Speech Engine
Pobierz SpeechEngineResource za pomocą identyfikatora silnika. Zwrócony obiekt udostępnia metody uruchamiania serwera, weryfikowania żądań i tworzenia pojedynczych sesji.
SpeechEngineResource
Właściwości
serve
Uruchamia samodzielny serwer WebSocket. Działa do zatrzymania.
Wyłączanie uwierzytelniania
Domyślnie serve() weryfikuje nagłówek X-Elevenlabs-Speech-Engine-Authorization przy każdym połączeniu przychodzącym. Jeśli serwer działa za warstwą infrastruktury, która już ogranicza ruch przychodzący do ElevenLabs (zwykle listą dozwolonych adresów IP dla zakresów wyjściowych ElevenLabs), możesz pominąć weryfikację JWT, przekazując disable_auth=True:
Gdy uwierzytelnianie jest wyłączone, serwer akceptuje każdego klienta, który może się z nim połączyć, i przy uruchomieniu emituje UserWarning.
Używaj disable_auth=True tylko, jeśli przed serwerem masz listę dozwolonych adresów IP, własne wartości
nagłówków lub równoważne ograniczenie na poziomie sieci. Bez tego każda osoba w internecie może otworzyć
sesję i zużyć twoje zasoby obliczeniowe oraz limit po stronie LLM.
verify_request
Weryfikuje, czy żądanie przychodzące pochodzi z API ElevenLabs Speech Engine. Sprawdza nagłówek X-Elevenlabs-Speech-Engine-Authorization pod kątem poprawnego JWT podpisanego hashem SHA-256 twojego klucza API.
Potrzebne tylko wtedy, gdy samodzielnie obsługujesz przejście na WebSocket. Przy użyciu serve() weryfikacja odbywa się automatycznie (chyba że ustawiono disable_auth=True).
Zwraca: bool — True, jeśli żądanie jest poprawne.
create_session
Opakowuje zaakceptowane połączenie WebSocket w SpeechEngineSession. Użyj tego do własnej integracji z serwerem (np. FastAPI, Starlette lub ręcznej obsługi WebSocket).
Zwraca: SpeechEngineSession
SpeechEngineSession
Opakowuje pojedyncze połączenie WebSocket. Każde połączenie reprezentuje jedną rozmowę. Sesja emituje zdarzenia dla transkrypcji i zmian cyklu życia oraz udostępnia metody wysyłania odpowiedzi LLM.
Gdy pojawi się nowa transkrypcja, poprzedni handler transkrypcji jest automatycznie anulowany, co przerywa trwające wywołanie LLM.
Właściwości
on
Rejestruje handler zdarzenia. Zwraca sesję, aby umożliwić łączenie wywołań.
off
Usuwa wcześniej zarejestrowany handler.
once
Rejestruje handler, który uruchamia się raz, a potem usuwa sam siebie.
send_response
Wysyła odpowiedź LLM do API Speech Engine w celu syntezy zamiany tekstu na mowę. Musi zostać wywołana wewnątrz handlera on_transcript. Wywołanie poza handlerem emituje ostrzeżenie i kończy się bez wysłania odpowiedzi.
SDK automatycznie wykrywa i wyodrębnia tekst z poniższych formatów streamu LLM:
run
Uruchamia pętlę odbierania, aż WebSocket się zamknie. To główny punkt wejścia po ręcznym utworzeniu sesji przez create_session().
close
Zamyka sesję i bazowe połączenie WebSocket.
Callbacki
Argumenty nazwane przekazywane do serve(). Wszystkie callbacki są opcjonalne. Handlery mogą być synchronicznymi lub asynchronicznymi funkcjami (korutynami).
Zdarzenia
Przy bezpośrednim użyciu session.on() zamiast callbacków, poniżej znajdziesz nazwy zdarzeń i sygnatury ich handlerów.
Stałe nazw zdarzeń są dostępne do użycia z kontrolą typów:
ConversationMessage
Pojedyncza wiadomość w historii rozmowy. Pełna transkrypcja jest przekazywana do on_transcript w każdej turze.
Protokół komunikacji
Dla odniesienia: są to komunikaty JSON wymieniane przez połączenie WebSocket. SDK automatycznie obsługuje serializację i deserializację.