API Python de synthèse vocale pour les applications en temps réel

Transformez le texte en parole avec le SDK Python de Cartesia. Enregistrez un WAV, diffusez l'audio dans votre application ou connectez Sonic à un agent vocal en temps réel.
speech.py
audio = client.tts.generate(
    transcript="Hello, world.",
    model_id="sonic-3.6",
    voice=voice_id,
    output_format=wav_format,
)
audio.write_to_file("speech.wav")

speech.wav

Exemple complet

Votre première requête de synthèse vocale

Transformez un texte en enregistrement WAV avec le SDK Python de Cartesia. Installez le package, ajoutez votre clé API et exécutez l'exemple sur votre serveur.

Installer le SDK

Utilisez Python 3.9 ou une version ultérieure dans un environnement virtuel.

Terminal
python -m pip install --upgrade cartesia

Configurer votre clé API

Créez une clé dans le Playground. Remplacez la valeur d'exemple ci-dessous et conservez votre clé sur le serveur.

macOS / Linux
export CARTESIA_API_KEY="your-api-key"

Vous utilisez PowerShell ?$env:CARTESIA_API_KEY="your-api-key"

Générer votre premier enregistrement

Enregistrez cet exemple sous speech.py. Exécutez-le depuis votre terminal, puis ouvrez speech.wav pour l'écouter.

Terminal
python speech.py

Modifiez le texte ou choisissez un identifiant vocal dans le Playground pour entendre un autre résultat.

Fichier de sortie
speech.wav
Format audio
44.1 kHz, 16-bit PCM
speech.py
import os
from cartesia import Cartesia

with Cartesia(api_key=os.environ["CARTESIA_API_KEY"]) as client:
    audio = client.tts.generate(
        model_id="sonic-3.6",
        transcript="Hello from your Python application.",
        voice="db6b0ed5-d5d3-463d-ae85-518a07d3c2b4",
        output_format={
            "container": "wav",
            "encoding": "pcm_s16le",
            "sample_rate": 44100,
        },
    )
    audio.write_to_file("speech.wav")

Choisir comment transmettre l'audio à votre application

Le bon mode de transport dépend du moment où votre texte est disponible et de la façon dont vous souhaitez lire la réponse.

Enregistrer un audio

Transport
HTTP
Sortie
WAV ou MP3

Convertissez un texte complet en audio et enregistrez-le pour une lecture ultérieure. L'exemple ci-dessus produit un fichier WAV avec un en-tête compatible avec les lecteurs audio.

Consulter la référence des sorties audio

Parler au fil de l'arrivée du texte

Transport
WebSocket
Sortie
Fragments audio bruts

Envoyez les fragments de texte au fur et à mesure que votre LLM les écrit et recevez les fragments audio générés par Sonic. Transmettez-les à un lecteur configuré pour le format audio demandé.

Créer un exemple en streaming

Diffuser l'audio d'un texte complet

Votre texte est déjà prêt ? Utilisez with_streaming_response pour lire la réponse HTTP par fragments.

Utilisez le streaming WebSocket lorsque de nouveaux fragments de texte arrivent pendant la génération, par exemple dans une réponse de LLM.

Gardez votre clé sur le serveur

Un backend Python peut gérer la requête pendant que votre application web, mobile ou votre système téléphonique gère la lecture.

01

Votre serveur Python

Lisez la clé API depuis votre environnement. Choisissez la voix, le modèle et les paramètres audio de chaque requête.

02

Sonic

Convertissez le texte en parole. Recevez une réponse audio ou gardez une connexion WebSocket ouverte pour envoyer le texte progressivement.

03

Votre application

Enregistrez l'audio ou transmettez-le à votre lecteur. Faites correspondre son encodage et sa fréquence d'échantillonnage à la réponse.

Du script au service en production

Une requête API réussie n'est qu'un début. Développez les comportements nécessaires autour d'elle pour l'application que vos auditeurs utiliseront.

Intégrer votre environnement Python

Utilisez le client synchrone pour les scripts et les tâches en arrière-plan. Utilisez AsyncCartesia dans un service asynchrone comme FastAPI. Fermez le client lorsqu'il a terminé, puis transmettez l'audio à votre service de stockage ou de lecture.

Tester toute l'expérience d'écoute

Définissez des délais d'expiration et gérez les limites de débit. Testez des textes réalistes avec la voix retenue. Pour les conversations, mesurez le délai avant le premier son audible et vérifiez que les interruptions arrêtent l'audio en attente. Le réseau et le lecteur influencent ce que l'auditeur entend.

Une sécurité de niveau entreprise.Du cloud au local.

  • Badge Conforme à HIPAA

    Conforme à HIPAA

  • Badge SOC 2 Type 2

    SOC 2 Type 2

  • Badge RGPD (GDPR)

    RGPD (GDPR)

  • Badge PCI

    PCI

Questions sur la synthèse vocale avec Python

Comment convertir du texte en parole avec Python ?

Installez cartesia, définissez CARTESIA_API_KEY dans l'environnement de votre serveur et créez un client Cartesia. Appelez client.tts.generate avec le texte, le modèle, l'identifiant vocal et le format de sortie, puis enregistrez la réponse avec write_to_file. L'exemple de cette page produit speech.wav. Consultez les exemples Python pour les requêtes complètes.

De quelle version de Python et de quel SDK ai-je besoin ?

Le SDK officiel nécessite Python 3.9 ou ultérieur. Installez-le avec python -m pip install --upgrade cartesia. Pour WebSocket, utilisez python -m pip install "cartesia[websockets]". Vérifiez la version installée dans la documentation du SDK lorsque vous adaptez un ancien exemple.

Puis-je enregistrer la parole générée en WAV ou MP3 ?

Oui. Le point de terminaison TTS accepte WAV, MP3 et l'audio brut. Choisissez le conteneur et ses paramètres compatibles dans output_format avant la génération. Utilisez WAV pour cet exemple, ou MP3 si votre application l'exige. Changer l'extension d'un fichier ne convertit pas l'audio.

Comment diffuser une réponse de LLM en parole avec Python ?

Utilisez WebSocket lorsque votre application reçoit le texte progressivement. Envoyez les fragments dans un contexte de génération commun et consommez les fragments audio à leur arrivée. Votre application doit encore les mettre en mémoire tampon et les lire. L'API WebSocket explique la continuation et l'annulation pour les applications conversationnelles.

Faut-il utiliser HTTP ou WebSocket pour la synthèse vocale ?

Utilisez HTTP lorsque le texte est déjà disponible, par exemple pour une narration complète ou une notification. Une réponse HTTP peut aussi diffuser l'audio progressivement. Utilisez WebSocket pour envoyer le texte au fil de sa génération ou gérer une conversation continue. Le streaming en entrée et en sortie sont deux choix distincts ; une réponse HTTP ne doit pas forcément être enregistrée dans un fichier.

Puis-je utiliser Cartesia avec Python asynchrone ou FastAPI ?

Oui. Utilisez AsyncCartesia et attendez ses appels API avec await dans une application asynchrone. Les exemples asynchrones montrent la génération, les fichiers et le streaming. Connectez l'audio à la réponse ou au lecteur de votre application et fermez le client à la fin de son cycle de vie.

Où conserver ma clé API Cartesia ?

Gardez votre clé de longue durée dans une variable d'environnement serveur ou un gestionnaire de secrets de déploiement. Ne la versionnez pas et ne l'envoyez pas au navigateur. Si celui-ci a besoin d'une connexion directe, faites créer un jeton de courte durée et de portée limitée par votre backend via l'API de jetons d'accès.

Comment choisir une voix et une langue pour la synthèse vocale Python ?

Écoutez une voix dans le Playground et transmettez son identifiant dans la requête. Définissez language ou locale pour votre texte, mais pas les deux. Testez vos noms, nombres et abréviations. Consultez la référence des requêtes pour les réglages de langue et de voix sans supposer que toutes les voix prennent en charge les mêmes accents.

Quel identifiant de modèle Sonic utiliser en production ?

Choisissez un modèle dans la documentation Sonic actuelle et testez-le avec votre application. L'identifiant sonic-3.6 reçoit des mises à jour stables. Une version datée publiée fige le comportement pendant l'évaluation d'une nouvelle version. Notez l'identifiant avec vos tests pour comparer les résultats après une mise à niveau.

Pourquoi le PCM brut nécessite-t-il des réglages de lecture particuliers ?

Le PCM brut n'a pas d'en-tête décrivant sa lecture. Le lecteur doit connaître la fréquence et l'encodage de la requête. Une incompatibilité peut produire du bruit, du silence ou une vitesse incorrecte. Commencez par une sortie WAV pour vérifier la parole indépendamment du lecteur de streaming, puis testez le chemin de lecture de l'audio brut.

Que faut-il gérer avant d'utiliser la synthèse vocale Python en production ?

Gérez les échecs d'authentification, les limites de débit, les erreurs réseau et les délais d'expiration. Adaptez les nouvelles tentatives et délais du SDK à votre application. Testez les interruptions et évitez de rejouer l'audio en attente lorsque l'utilisateur change de direction. Mesurez le délai entre la disponibilité du texte et la parole audible, réseau et tampon de lecture compris.

Commencer aujourd'hui

Parlez à un expert.

Échangez avec notre équipe et découvrez comment Cartesia peut vous aider à créer des expériences vocales de premier plan.

Contacter les ventes

Commencez à développer.

Accédez à nos modèles via l'API et mettez un agent vocal en production en quelques minutes.

Essayer Cartesia