Référence du SDK Python
Référence du SDK Python
Classes, méthodes et événements du SDK Python Speech Engine.
Cette page documente l’API publique du SDK Python Speech Engine (elevenlabs).
Obtenir une ressource Speech Engine
Récupérez une SpeechEngineResource à partir de son ID de moteur. L’objet renvoyé fournit des méthodes pour démarrer un serveur, vérifier des requêtes ou créer des sessions individuelles.
SpeechEngineResource
Propriétés
serve
Démarre un serveur WebSocket autonome. Bloque jusqu’à son arrêt.
Désactiver l’authentification
Par défaut, serve() vérifie l’en-tête X-Elevenlabs-Speech-Engine-Authorization sur chaque connexion entrante. Si votre serveur se trouve derrière une couche d’infrastructure qui restreint déjà le trafic entrant à ElevenLabs, généralement une liste d’autorisation d’adresses IP limitée aux plages de sortie d’ElevenLabs, vous pouvez ignorer la vérification JWT en transmettant disable_auth=True :
Lorsque l’authentification est désactivée, le serveur accepte tout client pouvant l’atteindre et émet un UserWarning au démarrage.
Utilisez disable_auth=True uniquement si une liste d’autorisation d’adresses IP, des valeurs d’en-tête personnalisées ou une restriction réseau équivalente
se trouve devant le serveur. Sans cela, toute personne sur Internet peut ouvrir une
session et consommer vos ressources de calcul ainsi que votre quota LLM en aval.
verify_request
Vérifie qu’une requête entrante provient de l’API Speech Engine d’ElevenLabs. Vérifie que l’en-tête X-Elevenlabs-Speech-Engine-Authorization contient un JWT valide signé avec le hachage SHA-256 de votre clé API.
Nécessaire uniquement si vous gérez vous-même la mise à niveau WebSocket. Avec serve(), la vérification est effectuée automatiquement, sauf si disable_auth=True a été défini.
Renvoie : bool, True si la requête est valide.
create_session
Encapsule un WebSocket accepté dans une SpeechEngineSession. Utilisez cette méthode pour une intégration serveur personnalisée, par exemple FastAPI, Starlette ou une gestion manuelle de WebSocket.
Renvoie : SpeechEngineSession
SpeechEngineSession
Encapsule une seule connexion WebSocket. Chaque connexion représente une conversation. La session émet des événements pour les transcriptions et les changements de cycle de vie, et fournit des méthodes pour renvoyer des réponses LLM.
Lorsqu’une nouvelle transcription arrive, le gestionnaire de la transcription précédente est automatiquement annulé, interrompant tout appel LLM en cours.
Propriétés
on
Enregistre un gestionnaire pour un événement. Renvoie la session pour permettre l’enchaînement.
off
Supprime un gestionnaire précédemment enregistré.
once
Enregistre un gestionnaire qui s’exécute une fois puis se supprime.
send_response
Renvoie une réponse LLM à l’API Speech Engine pour la synthèse vocale. Cette méthode doit être appelée dans un gestionnaire on_transcript. L’appeler en dehors d’un gestionnaire émet un avertissement et s’arrête sans envoyer de réponse.
Le SDK détecte automatiquement et extrait le texte des formats de flux LLM suivants :
run
Exécute la boucle de réception jusqu’à la fermeture du WebSocket. Il s’agit du point d’entrée principal après la création manuelle d’une session via create_session().
close
Ferme la session et la connexion WebSocket sous-jacente.
Rappels
Les arguments nommés transmis à serve(). Tous les rappels sont facultatifs. Les gestionnaires peuvent être des fonctions synchrones ou asynchrones, sous forme de coroutines.
Événements
Lorsque vous utilisez directement session.on() plutôt que des rappels, voici les noms des événements et les signatures de leurs gestionnaires.
Des constantes de noms d’événements sont disponibles pour une utilisation avec sûreté de type :
ConversationMessage
Un message unique dans l’historique de conversation. La transcription complète est transmise à on_transcript à chaque tour.
Protocole filaire
À titre de référence, voici les messages JSON échangés via la connexion WebSocket. Le SDK gère automatiquement la sérialisation et la désérialisation.