JavaScript SDK-referentie
Op deze pagina wordt de openbare API voor de Speech Engine JavaScript SDK (@elevenlabs/elevenlabs-js) beschreven.
Een Speech Engine-resource ophalen
Haal een SpeechEngineResource op via de engine-ID. Het geretourneerde object biedt methoden om te koppelen aan een bestaande HTTP-server, een zelfstandige server te starten of afzonderlijke sessies te maken.
SpeechEngineResource
Eigenschappen
attach
Koppel aan een bestaande Node.js HTTP-server en begin Speech Engine-verbindingen te accepteren op het opgegeven pad. Gebruik dit als je al een HTTP-server hebt (bijvoorbeeld Express, Fastify of een gewone http.createServer()) en Speech Engine wilt toevoegen naast je bestaande routes.
Handelt WebSocket-upgrades, padrouting en requestverificatie automatisch af. Retourneert een SpeechEngineAttachment waarvan de methode close() geen nieuwe verbindingen meer accepteert zonder de HTTP-server te beïnvloeden.
Er is rechtstreeks op de client een snelkoppeling beschikbaar die get() en attach() in één aanroep combineert:
verifyRequest
Controleer of een binnenkomend 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 attach() of SpeechEngineServer wordt de verificatie automatisch afgehandeld.
Retourneert: Promise<boolean> — true als het request geldig is.
createSession
Verpak een geaccepteerde WebSocket in een SpeechEngineSession. Gebruik dit voor aangepaste serverintegratie of handmatige WebSocket-afhandeling.
Retourneert: SpeechEngineSession
SpeechEngineServer
Een zelfstandige WebSocket-server die Speech Engine-verbindingen accepteert zonder een bestaande HTTP-server nodig te hebben. Gebruik deze wanneer je server uitsluitend bedoeld is voor het afhandelen van Speech Engine-verbindingen.
Gebruik engine.attach() voor integratie met een bestaande HTTP-server (bijvoorbeeld Express of Fastify).
Constructoropties
start
Start de zelfstandige WebSocket-server op de geconfigureerde poort. Verifieert elke binnenkomende verbinding met de ElevenLabs API via de geconfigureerde API-sleutel, tenzij disableAuth: true is ingesteld.
stop
Stop de WebSocket-server en sluit alle actieve verbindingen.
handleConnection
Verpak een bestaande WebSocket in een SpeechEngineSession met de callbacks van de server gekoppeld. Gebruik dit als je je eigen WebSocket-server beheert en afzonderlijke verbindingen wilt verpakken.
Retourneert: SpeechEngineSession
SpeechEngineSession
Verpakt één WebSocket-verbinding. Elke verbinding vertegenwoordigt één gesprek. De sessie geeft events af voor transcripts en wijzigingen in de levenscyclus, en biedt methoden om LLM-antwoorden terug te sturen.
Wanneer er een nieuw transcript binnenkomt, wordt het abort-signaal van de vorige transcripthandler geactiveerd, waardoor lopende LLM-aanroepen worden 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 vervolgens verwijdert.
sendResponse
Stuur een LLM-antwoord terug naar de Speech Engine API voor text-to-speechsynthese. Moet binnen een onTranscript-handler worden aangeroepen. Als je deze buiten een handler aanroept, wordt een waarschuwing gegeven en keert de methode terug zonder iets te verzenden.
De SDK detecteert automatisch tekst in de volgende LLM-streamformaten en extraheert deze:
close
Sluit de sessie en de onderliggende WebSocket-verbinding.
SpeechEngineAttachment
Geretourneerd door engine.attach(). Beheert de levenscyclus van de WebSocket-server zonder de HTTP-server waaraan deze is gekoppeld te beïnvloeden.
close
Stop met het accepteren van nieuwe verbindingen, verwijder de upgradelistener van de HTTP-server en sluit de onderliggende WebSocket-server.
Callbacks
Het callbackobject dat wordt doorgegeven aan attach() of SpeechEngineServer. Alle callbacks zijn optioneel.
De onTranscript-handler ontvangt een AbortSignal dat wordt geactiveerd wanneer de gebruiker midden in een antwoord onderbreekt.
Authenticatie uitschakelen
Standaard verifiëren zowel attach() als SpeechEngineServer de header X-Elevenlabs-Speech-Engine-Authorization bij elke binnenkomende verbinding. Als je server achter een infrastructuurlaag staat die binnenkomend verkeer al beperkt tot ElevenLabs (doorgaans een IP-allowlist voor de egress-ranges van ElevenLabs), kun je JWT-verificatie overslaan door disableAuth: true door te geven:
Wanneer authenticatie is uitgeschakeld, accepteert de server elke client die hem kan bereiken en geeft hij bij het opstarten een console.warn af.
Gebruik disableAuth: true alleen als je een IP-allowlist, aangepaste headerwaarden of een vergelijkbare
beperking op netwerkniveau vóór de server hebt. Zonder zo’n beperking kan iedereen op internet een
sessie openen en je rekenkracht en downstream LLM-quotum gebruiken.
Events
Wanneer je session.on() rechtstreeks gebruikt in plaats van callbacks, zijn dit de eventnamen en de bijbehorende handlersignaturen.
Eventnaamconstanten zijn beschikbaar voor typeveilig gebruik:
TranscriptMessage
Eén bericht in de gespreksgeschiedenis. Bij elke beurt wordt het volledige transcript doorgegeven aan onTranscript.
Wire protocol
Ter referentie: dit zijn de JSON-berichten die via de WebSocket-verbinding worden uitgewisseld. De SDK handelt serialisatie en deserialisatie automatisch af.