Speech Engine-snelstart
In deze handleiding bouw je een spraakgestuurde agent met Speech Engine. Je zet een server op die je LLM met ElevenLabs verbindt en koppelt vervolgens een browserclient, zodat gebruikers spraakgesprekken met je agent kunnen voeren.
Gebruik de ElevenLabs Speech Engine-skill om spraak aan je chatagent toe te voegen:
Hoe Speech Engine werkt
Speech Engine verbindt je LLM met ElevenLabs, zodat gebruikers met je agent kunnen praten en het antwoord kunnen horen. ElevenLabs verzorgt spraak-naar-tekst en tekst-naar-spraak; je server levert de LLM-logica.
Elke WebSocket-verbinding vertegenwoordigt één gesprek. Wanneer de gebruiker spreekt, transcribeert ElevenLabs de audio en stuurt het transcript naar je server. Je server geeft dit door aan je LLM en streamt vervolgens het antwoord terug. ElevenLabs zet de tekst om in spraak en speelt deze af in de browser. De SDK verwerkt verbindingsbeheer, beurtwisseling en detectie van onderbrekingen.
Vereisten
Deze tutorial gebruikt de API van OpenAI voor de LLM. Je hebt een OpenAI API-sleutel nodig die is ingesteld in de omgevingsvariabele OPENAI_API_KEY.
Server instellen
Een API-sleutel maken
Maak hier een API-sleutel in het dashboard, die je gebruikt om veilig toegang te krijgen tot de API.
Sla de sleutel op als een beheerd geheim en geef deze aan de SDK’s door, naar keuze als omgevingsvariabele via een .env-bestand of rechtstreeks in de configuratie van je app.
De server beschikbaar maken
Speech Engine heeft een openbaar bereikbare URL nodig. Gebruik ngrok om je lokale server beschikbaar te maken. De server is nog niet gebouwd, maar ngrok moet eerst actief zijn zodat je de URL voor de volgende stap hebt.
Kopieer de forwarding-URL (bijvoorbeeld https://abc123.ngrok.io).
Een Speech Engine-instantie maken
Gebruik de SDK om een Speech Engine-instantie te maken en geef je ngrok-URL met het toegevoegde pad /ws door als WebSocket-URL.
Voer dit script uit en kopieer de Speech Engine-ID (bijvoorbeeld seng_8k3m9xr4hjnfg983brhmhkd98n6) voor de volgende stap.
De server maken
Maak een bestand met de naam server.py of server.mts met de volgende inhoud. Hiermee stel je een server in, koppel je Speech Engine aan het pad /ws en gebruik je OpenAI om antwoorden te genereren.
De callback onTranscript / on_transcript ontvangt de volledige gespreksgeschiedenis en de huidige sessie. De TypeScript SDK biedt ook een AbortSignal die wordt geactiveerd als de gebruiker tijdens een antwoord onderbreekt. Door signal door te geven aan de OpenAI-call wordt de LLM-request bij een onderbreking automatisch geannuleerd.
sendResponse() / send_response() accepteert een string, een async iterable of een stream van OpenAI, Anthropic of Google Gemini. De SDK haalt de tekstinhoud automatisch op.
In het bovenstaande voorbeeld wordt het volledige transcript van de gebruiker doorgegeven aan de LLM. Voeg in een productieomgeving guardrails toe om pogingen tot prompt injection of manipulatie te voorkomen.
Client instellen
Een tokenendpoint maken
Voeg een endpoint aan de serverzijde toe dat een gesprekstoken genereert. Zo blijft je API-sleutel uit de browser en gebruik je WebRTC voor de beste audiokwaliteit.
De gespreks-UI bouwen
Haal het gesprekstoken op van je server en gebruik het om een sessie te starten.
React
JavaScript
Probeer het
Zorg dat er drie processen actief zijn:
- ngrok - forwarding naar poort 3001
- Je Speech Engine-server -
python server.pyofnpx tsx server.mts - De tokenserver -
npx tsx token-server.mtsofpython token_server.py
Open je clientapplicatie in de browser en klik op Gesprek starten. Geef toegang tot je microfoon wanneer daarom wordt gevraagd en spreek vervolgens. Je hoort de agent via je speakers antwoorden.
Als je debug: true op de server hebt ingeschakeld, zie je binnenkomende transcripts en uitgaande antwoorden in de console gelogd.
Sessie-events
Het eerste bericht van de agent configureren
Standaard wacht de agent tot de gebruiker als eerste spreekt. Als je wilt dat de agent de gebruiker begroet wanneer het gesprek begint, stel je bij het starten van de sessie een eerste bericht in via de optie overrides op de client.
Het eerste bericht wordt door de agent uitgesproken zodra de verbinding tot stand is gebracht. Het activeert niet de callback onTranscript op je server: het wordt volledig aan de kant van ElevenLabs afgehandeld.
De maximale gespreksduur configureren
Standaard eindigt een gesprek na 600 seconden (10 minuten). Speech Engine ondersteunt gesprekken van maximaal 7.200 seconden (2 uur). Werk de Speech Engine-resource bij met een hogere max_duration_seconds om langere gesprekken toe te staan:
Je kunt dit ook instellen in het dashboard: open je Speech Engine, ga naar het tabblad Geavanceerd en stel Maximale gespreksduur in onder Gespreksgedrag.