Guide de démarrage Speech Engine
Guide de démarrage Speech Engine
Ajoutez la voix à votre agent de chat avec le SDK ElevenLabs.
Ce guide vous accompagne dans la création d’un agent vocal avec Speech Engine. Configurez un serveur qui connecte votre LLM à ElevenLabs, puis reliez un client navigateur afin que les utilisateurs puissent converser vocalement avec votre agent.
Utilisez la compétence ElevenLabs Speech Engine pour ajouter la voix à votre agent de chat :
Fonctionnement de Speech Engine
Speech Engine connecte votre LLM à ElevenLabs afin que les utilisateurs puissent parler à votre agent et entendre ses réponses. ElevenLabs gère la conversion de la parole en texte et du texte en parole ; votre serveur fournit la logique LLM.
Chaque connexion WebSocket représente une conversation. Lorsque l’utilisateur parle, ElevenLabs transcrit l’audio et envoie la transcription à votre serveur. Votre serveur la transmet à votre LLM, puis renvoie la réponse en continu. ElevenLabs convertit le texte en parole et le diffuse dans le navigateur. Le SDK gère les connexions, les tours de parole et la détection des interruptions.
Prérequis
Ce tutoriel utilise l’API d’OpenAI pour le LLM. Vous avez besoin d’une clé API OpenAI définie dans la variable d’environnement OPENAI_API_KEY.
Configuration du serveur
Créer une clé API
Créez une clé API dans le Dashboard ici, que vous utiliserez pour accéder à l’API de manière sécurisée.
Stockez la clé comme secret géré et transmettez-la aux SDK soit en tant que variable d’environnement via un fichier .env, soit directement dans la configuration de votre application, selon vos préférences.
Exposer le serveur
Speech Engine requiert une URL accessible publiquement. Utilisez ngrok pour exposer votre serveur local. Le serveur n’est pas encore créé, mais ngrok doit d’abord être exécuté afin que vous disposiez de l’URL pour l’étape suivante.
Copiez l’URL de transfert (par exemple, https://abc123.ngrok.io).
Créer une instance Speech Engine
Utilisez le SDK pour créer une instance Speech Engine, en transmettant votre URL ngrok avec le chemin /ws ajouté comme URL WebSocket.
Exécutez ce script et copiez l’ID Speech Engine (par exemple, seng_8k3m9xr4hjnfg983brhmhkd98n6) pour l’étape suivante.
Créer le serveur
Créez un fichier nommé server.py ou server.mts avec le contenu suivant. Il configure un serveur, associe Speech Engine au chemin /ws et utilise OpenAI pour générer des réponses.
Le callback onTranscript / on_transcript reçoit l’historique complet de la conversation et la session en cours. Le SDK TypeScript fournit également un AbortSignal qui se déclenche si l’utilisateur interrompt la réponse en cours. Transmettre signal à l’appel OpenAI annule automatiquement la requête LLM en cas d’interruption.
sendResponse() / send_response() accepte une chaîne, un itérable asynchrone ou un flux provenant d’OpenAI, Anthropic ou Google Gemini. Le SDK extrait automatiquement le contenu textuel.
Dans l’exemple ci-dessus, la transcription complète de l’utilisateur est transmise au LLM. En environnement de production, ajoutez des garde-fous pour prévenir toute tentative d’injection ou de manipulation de prompt.
Configuration du client
Créer un endpoint de jeton
Ajoutez un endpoint côté serveur qui génère un jeton de conversation. Cela protège votre clé API dans le navigateur et utilise WebRTC pour une qualité audio optimale.
Créer l'interface de conversation
Récupérez le jeton de conversation depuis votre serveur et utilisez-le pour démarrer une session.
React
JavaScript
Tester
Vérifiez que trois processus sont en cours d’exécution :
- ngrok - transfert vers le port 3001
- Votre serveur Speech Engine -
python server.pyounpx tsx server.mts - Le serveur de jetons -
npx tsx token-server.mtsoupython token_server.py
Ouvrez votre application cliente dans le navigateur et cliquez sur Démarrer la conversation. Autorisez l’accès au microphone lorsque cela vous est demandé, puis parlez. Vous devriez entendre la réponse de l’agent dans vos haut-parleurs.
Si debug: true est activé sur le serveur, les transcriptions entrantes et les réponses sortantes s’affichent dans la console.
Événements de session
Configurer le premier message de l’agent
Par défaut, l’agent attend que l’utilisateur parle en premier. Pour que l’agent salue l’utilisateur au début de la conversation, définissez un premier message dans l’option overrides du client au démarrage de la session.
Le premier message est prononcé par l’agent dès que la connexion est établie. Il ne déclenche pas le callback onTranscript sur votre serveur : il est entièrement géré côté ElevenLabs.