Snabbstart för Speech Engine
Lägg till röst i din chattagent med ElevenLabs SDK.
Den här guiden visar hur du bygger en röststyrd agent med Speech Engine. Du konfigurerar en server som ansluter din LLM till ElevenLabs och kopplar sedan ihop en webbläsarklient så att användare kan föra röstsamtal med din agent.
Använd ElevenLabs Speech Engine-skill för att lägga till röst i din chattagent:
Så fungerar Speech Engine
Speech Engine ansluter din LLM till ElevenLabs så att användare kan prata med din agent och höra den svara. ElevenLabs hanterar tal-till-text och text-till-tal, medan din server tillhandahåller LLM-logiken.
Varje WebSocket-anslutning representerar ett samtal. När användaren pratar transkriberar ElevenLabs ljudet och skickar transkriptionen till din server. Din server skickar den vidare till din LLM och strömmar sedan svaret tillbaka. ElevenLabs omvandlar texten till tal och spelar upp den i webbläsaren. SDK:t hanterar anslutningar, turordning och avbrottsdetektering.
Förutsättningar
Den här handledningen använder OpenAI:s API för LLM:en. Du behöver en OpenAI API-nyckel som anges i miljövariabeln OPENAI_API_KEY.
Serverkonfiguration
Skapa en API-nyckel
Skapa en API-nyckel i dashboarden här, som du använder för att säkert få åtkomst till API:t.
Spara nyckeln som en hanterad hemlighet och skicka den till SDK:erna antingen som en miljövariabel via en .env-fil eller direkt i appens konfiguration, beroende på vad du föredrar.
Exponera servern
Speech Engine behöver en offentligt åtkomlig URL. Använd ngrok för att exponera din lokala server. Servern är inte byggd än, men ngrok måste köras först så att du har URL:en för nästa steg.
Kopiera vidarebefordrings-URL:en (t.ex. https://abc123.ngrok.io).
Skapa en Speech Engine-instans
Använd SDK:t för att skapa en Speech Engine-instans och skicka med din ngrok-URL med sökvägen /ws tillagd som WebSocket-URL.
Kör det här skriptet och kopiera Speech Engine-ID:t (t.ex. seng_8k3m9xr4hjnfg983brhmhkd98n6) till nästa steg.
Skapa servern
Skapa en fil med namnet server.py eller server.mts med följande innehåll. Den konfigurerar en server, ansluter Speech Engine på sökvägen /ws och använder OpenAI för att generera svar.
Återanropet onTranscript / on_transcript tar emot hela samtalshistoriken och den aktuella sessionen. TypeScript SDK:t tillhandahåller även en AbortSignal som utlöses om användaren avbryter mitt i ett svar. Om du skickar signal till OpenAI-anropet avbryts LLM-begäran automatiskt vid avbrott.
sendResponse() / send_response() accepterar en sträng, en asynkron itererbar eller en ström från OpenAI, Anthropic eller Google Gemini. SDK:t extraherar textinnehållet automatiskt.
I exemplet ovan skickas användarens fullständiga transkription till LLM:en. I en produktionsmiljö bör du lägga till skyddsåtgärder för att förhindra försök till promptinjektion eller manipulering.
Klientkonfiguration
Skapa en tokenslutpunkt
Lägg till en slutpunkt på serversidan som genererar en samtalstoken. Det håller din API-nyckel borta från webbläsaren och använder WebRTC för bästa ljudkvalitet.
Bygg samtalsgränssnittet
Hämta samtalstoken från din server och använd den för att starta en session.
React
JavaScript
Prova det
Kontrollera att tre processer körs:
- ngrok – vidarebefordrar till port 3001
- Din Speech Engine-server –
python server.pyellernpx tsx server.mts - Tokenservern –
npx tsx token-server.mtsellerpython token_server.py
Öppna klientapplikationen i webbläsaren och klicka på Starta samtal. Ge åtkomst till mikrofonen när du uppmanas till det och börja sedan prata. Du bör höra agenten svara via dina högtalare.
Om du har aktiverat debug: true på servern visas inkommande transkriptioner och utgående svar i konsolen.
Sessionshändelser
Konfigurera agentens första meddelande
Som standard väntar agenten på att användaren ska prata först. Om du vill att agenten ska hälsa på användaren när samtalet startar anger du ett första meddelande i alternativet overrides på klienten när du startar sessionen.
Det första meddelandet uttalas av agenten så snart anslutningen har upprättats. Det utlöser inte återanropet onTranscript på din server – det hanteras helt på ElevenLabs sida.
Konfigurera maximal samtalslängd
Som standard avslutas ett samtal efter 600 sekunder (10 minuter). Speech Engine har stöd för samtal på upp till 2 400 sekunder (40 minuter). Om du vill tillåta längre samtal uppdaterar du Speech Engine-resursen med ett högre max_duration_seconds:
Du kan även ange detta i kontrollpanelen: öppna din Speech Engine, gå till fliken Avancerat och ange Maximal samtalslängd under Samtalsbeteende.
Samtal som är längre än 40 minuter stöds inte och kan kopplas från, även om
max_duration_seconds är inställt på ett högre värde. Om du behöver längre samtal kan du kontakta vårt
team.