Python SDK-referentie
Deze pagina documenteert de openbare API voor de Speech Engine Python SDK (elevenlabs).
Een Speech Engine-resource ophalen
Haal een SpeechEngineResource op via de engine-ID. Het geretourneerde object biedt methoden om een server te starten, requests te verifiëren of afzonderlijke sessies te maken.
SpeechEngineResource
Eigenschappen
serve
Start een zelfstandige WebSocket-server. Blokkeert totdat deze wordt gestopt.
Authenticatie uitschakelen
Standaard verifieert serve() de header X-Elevenlabs-Speech-Engine-Authorization bij elke inkomende verbinding. Als je server achter een infrastructuurlaag staat die inkomend verkeer al beperkt tot ElevenLabs (meestal een IP-allowlist voor de egress-ranges van ElevenLabs), kun je JWT-verificatie overslaan door disable_auth=True door te geven:
Wanneer authenticatie is uitgeschakeld, accepteert de server elke client die deze kan bereiken en geeft hij bij het opstarten een UserWarning.
Gebruik disable_auth=True alleen als je vóór de server een IP-allowlist, aangepaste headerwaarden of een gelijkwaardige
beperking op netwerkniveau hebt. Zonder zo’n beperking kan iedereen op internet een
sessie openen en je compute- en downstream-LLM-quotum verbruiken.
verify_request
Verifieer dat een inkomende request afkomstig is van de ElevenLabs Speech Engine API. Controleert de header X-Elevenlabs-Speech-Engine-Authorization op een geldige JWT die is ondertekend met de SHA-256-hash van je API-sleutel.
Alleen nodig wanneer je de WebSocket-upgrade zelf beheert. Bij gebruik van serve() wordt verificatie automatisch afgehandeld (tenzij disable_auth=True is ingesteld).
Retourneert: bool — True als de request geldig is.
create_session
Verpak een geaccepteerde WebSocket in een SpeechEngineSession. Gebruik dit voor aangepaste serverintegratie (bijv. FastAPI, Starlette of handmatige WebSocket-afhandeling).
Retourneert: SpeechEngineSession
SpeechEngineSession
Verpakt één WebSocket-verbinding. Elke verbinding vertegenwoordigt één gesprek. De sessie geeft events voor transcripts en wijzigingen in de levenscyclus en biedt methoden om LLM-responses terug te sturen.
Wanneer een nieuw transcript binnenkomt, wordt de vorige transcripthandler automatisch geannuleerd, waardoor een actieve LLM-call wordt onderbroken.
Eigenschappen
on
Registreer een handler voor een event. Retourneert de sessie voor chaining.
off
Verwijder een eerder geregistreerde handler.
once
Registreer een handler die één keer wordt uitgevoerd en zichzelf daarna verwijdert.
send_response
Stuur een LLM-response terug naar de Speech Engine API voor text-to-speech-synthese. Moet worden aangeroepen binnen een on_transcript-handler. Als je deze buiten een handler aanroept, wordt een waarschuwing gegeven en niets verzonden.
De SDK detecteert automatisch tekst en extraheert deze uit de volgende LLM-streamformaten:
run
Voer de receive-loop uit totdat de WebSocket wordt gesloten. Dit is het belangrijkste toegangspunt nadat je handmatig een sessie hebt gemaakt via create_session().
close
Sluit de sessie en de onderliggende WebSocket-verbinding.
Callbacks
De keywordarguments die aan serve() worden doorgegeven. Alle callbacks zijn optioneel. Handlers kunnen synchrone of asynchrone (coroutine) functies zijn.
Events
Wanneer je session.on() rechtstreeks gebruikt in plaats van callbacks, zijn dit de eventnamen en hun handlersignaturen.
Eventnaamconstanten zijn beschikbaar voor typeveilig gebruik:
ConversationMessage
Eén bericht in de gespreksgeschiedenis. Het volledige transcript wordt bij elke beurt doorgegeven aan on_transcript.
Wire protocol
Ter referentie: dit zijn de JSON-berichten die via de WebSocket-verbinding worden uitgewisseld. De SDK handelt serialisatie en deserialisatie automatisch af.