Speech Engine – Schnellstart
Fügen Sie Ihrem Chat-Agenten mit dem ElevenLabs SDK eine Stimme hinzu.
Diese Anleitung zeigt Ihnen, wie Sie mit Speech Engine einen sprachgesteuerten Agenten erstellen. Sie richten einen Server ein, der Ihr LLM mit ElevenLabs verbindet, und binden dann einen Browser-Client an, damit Nutzer Sprachgespräche mit Ihrem Agenten führen können.
Verwenden Sie den ElevenLabs Speech Engine Skill, um Ihrem Chat-Agenten eine Stimme hinzuzufügen:
So funktioniert Speech Engine
Speech Engine verbindet Ihr LLM mit ElevenLabs, sodass Nutzer mit Ihrem Agenten sprechen und seine Antworten hören können. ElevenLabs übernimmt Speech to Text und Text to Speech, während Ihr Server die LLM-Logik bereitstellt.
Jede WebSocket-Verbindung steht für ein Gespräch. Wenn der Nutzer spricht, transkribiert ElevenLabs das Audio und sendet das Transkript an Ihren Server. Ihr Server leitet es an Ihr LLM weiter und streamt die Antwort zurück. ElevenLabs wandelt den Text in Sprache um und spielt ihn im Browser ab. Das SDK übernimmt Verbindungsverwaltung, Sprecherwechsel und Unterbrechungserkennung.
Voraussetzungen
Dieses Tutorial verwendet die API von OpenAI für das LLM. Sie benötigen einen OpenAI-API-Schlüssel, der in der Umgebungsvariable OPENAI_API_KEY gesetzt ist.
Server einrichten
API-Schlüssel erstellen
Erstellen Sie hier im Dashboard einen API-Schlüssel, den Sie für den sicheren Zugriff auf die API verwenden.
Speichern Sie den Schlüssel als verwaltetes Secret und übergeben Sie ihn je nach Präferenz an die SDKs entweder als Umgebungsvariable über eine .env-Datei oder direkt in der Konfiguration Ihrer App.
Server öffentlich erreichbar machen
Speech Engine benötigt eine öffentlich erreichbare URL. Verwenden Sie ngrok, um Ihren lokalen Server öffentlich erreichbar zu machen. Der Server ist noch nicht erstellt, aber ngrok muss bereits laufen, damit Sie die URL für den nächsten Schritt haben.
Kopieren Sie die Weiterleitungs-URL, z. B. https://abc123.ngrok.io.
Speech-Engine-Instanz erstellen
Verwenden Sie das SDK, um eine Speech-Engine-Instanz zu erstellen. Übergeben Sie dabei Ihre ngrok-URL mit angehängtem Pfad /ws als WebSocket-URL.
Führen Sie dieses Skript aus und kopieren Sie die Speech-Engine-ID, z. B. seng_8k3m9xr4hjnfg983brhmhkd98n6, für den nächsten Schritt.
Server erstellen
Erstellen Sie eine Datei namens server.py oder server.mts mit folgendem Inhalt. Dadurch wird ein Server eingerichtet, Speech Engine an den Pfad /ws angebunden und OpenAI zum Generieren von Antworten verwendet.
Der Callback onTranscript / on_transcript empfängt den vollständigen Gesprächsverlauf und die aktuelle Sitzung. Das TypeScript SDK stellt außerdem ein AbortSignal bereit, das ausgelöst wird, wenn der Nutzer die Antwort unterbricht. Wenn Sie signal an den OpenAI-Aufruf übergeben, wird die LLM-Anfrage bei einer Unterbrechung automatisch abgebrochen.
sendResponse() / send_response() akzeptiert einen String, ein asynchrones Iterable oder einen Stream von OpenAI, Anthropic oder Google Gemini. Das SDK extrahiert den Textinhalt automatisch.
Im obigen Beispiel wird das vollständige Transkript des Nutzers an das LLM übergeben. In einer Produktionsumgebung sollten Sie Guardrails hinzufügen, um Prompt-Injection- oder Manipulationsversuche zu verhindern.
Client einrichten
Token-Endpunkt erstellen
Fügen Sie einen serverseitigen Endpunkt hinzu, der ein Gesprächs-Token generiert. So bleibt Ihr API-Schlüssel außerhalb des Browsers, und WebRTC sorgt für die beste Audioqualität.
Gesprächs-UI erstellen
Rufen Sie das Gesprächs-Token von Ihrem Server ab und verwenden Sie es, um eine Sitzung zu starten.
React
JavaScript
Ausprobieren
Stellen Sie sicher, dass drei Prozesse laufen:
- ngrok – Weiterleitung an Port 3001
- Ihr Speech-Engine-Server –
python server.pyodernpx tsx server.mts - Der Token-Server –
npx tsx token-server.mtsoderpython token_server.py
Öffnen Sie Ihre Client-Anwendung im Browser und klicken Sie auf Gespräch starten. Erteilen Sie bei Aufforderung Mikrofonzugriff und sprechen Sie dann. Sie sollten die Antwort des Agenten über Ihre Lautsprecher hören.
Wenn auf dem Server debug: true aktiviert ist, sehen Sie eingehende Transkripte und ausgehende Antworten in der Konsole.
Sitzungsereignisse
Erste Agentennachricht konfigurieren
Standardmäßig wartet der Agent, bis der Nutzer zuerst spricht. Damit der Agent den Nutzer zu Beginn des Gesprächs begrüßt, legen Sie beim Starten der Sitzung in der Client-Option overrides eine erste Nachricht fest.
Die erste Nachricht wird vom Agenten gesprochen, sobald die Verbindung hergestellt ist. Sie löst auf Ihrem Server keinen Callback onTranscript aus – sie wird vollständig auf der Seite von ElevenLabs verarbeitet.
Maximale Gesprächsdauer konfigurieren
Standardmäßig endet ein Gespräch nach 600 Sekunden (10 Minuten). Speech Engine unterstützt Gespräche mit einer Dauer von bis zu 2.400 Sekunden (40 Minuten). Um längere Gespräche zu ermöglichen, aktualisieren Sie die Speech-Engine-Ressource mit einem höheren Wert für max_duration_seconds:
Sie können dies auch im Dashboard festlegen: Öffnen Sie Ihre Speech Engine, wechseln Sie zum Tab Erweitert und legen Sie unter Gesprächsverhalten die Maximale Gesprächsdauer fest.
Gespräche, die länger als 40 Minuten dauern, werden nicht unterstützt und können getrennt werden, auch wenn
max_duration_seconds auf einen höheren Wert gesetzt ist. Wenn Sie längere Gespräche benötigen, kontaktieren Sie unser
Team.