Passer à la navigation

Speech Engine

Ajoutez la voix à votre propre agent de chat ou LLM avec ElevenLabs.

Vue d’ensemble

ElevenLabs Speech Engine ajoute des capacités vocales à n’importe quel agent de chat. ElevenLabs gère la reconnaissance et la synthèse vocales, tandis que votre serveur assure la logique du LLM. Le SDK gère le cycle de vie des connexions, la gestion des tours de parole et la détection des interruptions, afin que vous puissiez vous concentrer sur le comportement de votre agent.

Fonctionnement

Speech Engine connecte votre serveur à ElevenLabs via WebSocket. Chaque connexion représente une conversation.

  1. Un utilisateur parle dans le navigateur. ElevenLabs capture l’audio et le transcrit.
  2. La transcription est envoyée à votre serveur avec l’historique complet de la conversation.
  3. Votre serveur transmet la transcription à votre LLM et renvoie la réponse en streaming.
  4. ElevenLabs convertit le texte en parole et le lit dans le navigateur.

Quand utiliser Speech Engine

Speech Engine est conçu pour les développeurs qui souhaitent utiliser leur propre LLM et contrôler la logique de conversation sur leur propre serveur. Utilisez-le lorsque vous devez :

  • Ajouter la voix à un agent de chat textuel existant
  • Utiliser un LLM spécifique, un modèle finetuné ou un pipeline d’inférence personnalisé
  • Garder un contrôle total sur le routage des conversations, la gestion du contexte et l’appel d’outils
  • Intégrer la voix dans une application serveur existante (Express, FastAPI, etc.)

Si vous souhaitez une solution entièrement hébergée où ElevenLabs fournit le LLM, la base de connaissances et les outils, utilisez plutôt ElevenAgents.

Fonctionnalités clés

  • Tout LLM : utilisez OpenAI, Anthropic, Google Gemini ou tout modèle produisant du texte. Le SDK extrait automatiquement le texte des formats de streaming d’OpenAI, Anthropic et Gemini.
  • Gestion des interruptions : lorsque l’utilisateur parle pendant une réponse, le SDK annule automatiquement la requête LLM en cours via un AbortSignal (TypeScript) ou l’annulation de tâche (Python).
  • Streaming : les réponses sont envoyées au navigateur en streaming à mesure qu’elles sont générées. Transmettez une chaîne, un itérable asynchrone ou un objet de flux LLM natif.
  • Gestion des tours de parole : le SDK gère les tours de conversation, votre serveur n’a donc qu’à répondre aux transcriptions.

Durée des conversations

Speech Engine prend en charge des conversations allant jusqu’à 40 minutes (2 400 secondes). Par défaut, une conversation se termine après 600 secondes (10 minutes). Pour autoriser des conversations plus longues, augmentez conversation.max_duration_seconds dans l’API ou Durée maximale de la conversation dans l’onglet Avancé du Dashboard. Consultez Configurer la durée maximale de la conversation. Si vous avez besoin de conversations de plus de 40 minutes, contactez notre équipe.

Autorisation d’adresses IP

Si votre serveur est derrière un pare-feu ou utilise des contrôles d’accès basés sur les adresses IP, vous pouvez autoriser les adresses IP de sortie statiques depuis lesquelles les connexions WebSocket d’ElevenLabs sont établies. Consultez l’autorisation d’adresses IP pour obtenir la liste complète des adresses IP.

L’autorisation d’adresses IP garantit que votre serveur n’accepte que les connexions WebSocket provenant des systèmes d’ElevenLabs.

FAQ

Tout LLM produisant du texte. Le SDK intègre l’extraction de flux pour OpenAI (API Responses et API Chat Completions), l’API Messages d’Anthropic et l’API Google Gemini. Pour les autres fournisseurs, transmettez une chaîne simple ou un itérable asynchrone de fragments de chaînes.

ElevenAgents est une plateforme entièrement hébergée où ElevenLabs fournit le LLM, la base de connaissances et les outils. Speech Engine s’adresse aux développeurs qui souhaitent utiliser leur propre LLM et contrôler la logique de conversation sur leur propre serveur.

En TypeScript, vous pouvez rattacher Speech Engine à n’importe quel serveur HTTP Node.js (Express, Fastify ou http.createServer() simple), ou exécuter un serveur WebSocket autonome. En Python, le SDK fournit un serveur autonome via engine.serve(), ou vous pouvez l’intégrer à FastAPI, Starlette ou tout framework ASGI à l’aide de engine.create_session().