API di sintesi vocale Python per applicazioni in tempo reale

Trasforma il testo in parlato con l'SDK Python di Cartesia. Salva un file WAV, trasmetti audio alla tua applicazione o collega Sonic a un agente vocale in tempo reale.
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")

La tua prima richiesta di sintesi vocale

Trasforma un copione in una registrazione WAV con l'SDK Python di Cartesia. Installa il pacchetto, aggiungi la chiave API ed esegui l'esempio sul tuo server.

Installa l'SDK

Usa Python 3.9 o versioni successive in un ambiente virtuale.

Terminale
python -m pip install --upgrade cartesia

Imposta la chiave API

Crea una chiave in Playground. Sostituisci il segnaposto qui sotto e conserva la chiave sul server.

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

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

Genera la tua prima registrazione

Salva questo esempio come speech.py. Eseguilo dal terminale, poi apri speech.wav per ascoltare.

Terminale
python speech.py

Modifica la trascrizione o scegli un ID vocale da Playground per ascoltare un risultato diverso.

File di output
speech.wav
Formato 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")

Scegli come l'audio raggiunge la tua app

Il trasporto adatto dipende da quando il testo è pronto e da come intendi riprodurre la risposta.

Salva una registrazione

Trasporto
HTTP
Output
WAV o MP3

Converti un copione completo in audio e salvalo per ascoltarlo in seguito. L'esempio qui sopra produce un file WAV con un'intestazione leggibile dai player audio.

Leggi la documentazione sull'output audio

Parla mentre arriva il testo

Trasporto
WebSocket
Output
Blocchi di audio grezzo

Invia frammenti di testo mentre il tuo LLM scrive e ricevi blocchi audio mentre Sonic li genera. Inoltrali a un player configurato per il formato audio richiesto.

Crea un esempio di streaming

Trasmetti audio da un copione completo

Hai già tutto il testo? Usa with_streaming_response per leggere la risposta HTTP a blocchi.

Usa lo streaming WebSocket quando arriva nuovo testo durante la generazione, come nella risposta di un LLM.

Conserva la chiave sul server

Un backend Python può gestire la richiesta, mentre l'app web, mobile o il sistema telefonico gestisce la riproduzione.

01

Il tuo server Python

Leggi la chiave API dall'ambiente. Scegli voce, modello e impostazioni audio per ogni richiesta.

02

Sonic

Converti il testo in parlato. Ricevi una risposta audio o mantieni aperto un WebSocket per l'input incrementale.

03

La tua applicazione

Salva la registrazione o passa l'audio al player. Allinea codifica e frequenza di campionamento alla risposta.

Da uno script a un servizio in produzione

Una richiesta API riuscita è solo l'inizio. Costruisci il comportamento necessario intorno all'applicazione che useranno i tuoi ascoltatori.

Adattalo alla tua infrastruttura Python

Usa il client sincrono per script e processi in background. Usa AsyncCartesia in un servizio asincrono come FastAPI. Chiudi il client quando ha finito, poi passa l'audio al servizio di archiviazione o riproduzione.

Prova l'intera esperienza d'ascolto

Imposta timeout delle richieste e gestisci i limiti di frequenza. Prova copioni realistici con la voce che lancerai. Per le conversazioni, misura il tempo fino al parlato udibile e assicurati che le interruzioni fermino l'audio in coda. Rete e player influiscono su ciò che sente l'ascoltatore.

Sicurezza di livello enterprise.Dal cloud al locale.

  • Badge Conforme a HIPAA

    Conforme a HIPAA

  • Badge SOC 2 Type 2

    SOC 2 Type 2

  • Badge GDPR

    GDPR

  • Badge PCI

    PCI

Domande sulla sintesi vocale con Python

Come converto il testo in parlato in Python?

Installa cartesia, imposta CARTESIA_API_KEY nell'ambiente server e crea un client Cartesia. Chiama client.tts.generate con testo, modello, ID vocale e formato di output, poi salva la risposta con write_to_file. L'esempio in questa pagina produce speech.wav. Consulta gli esempi Python per richieste complete.

Quale versione di Python e quale SDK mi servono?

L'SDK ufficiale richiede Python 3.9 o successivo. Installalo con python -m pip install --upgrade cartesia. Per il supporto WebSocket, installa python -m pip install "cartesia[websockets]". Confronta la versione del pacchetto installato con la documentazione dell'SDK quando adatti un esempio precedente.

Posso salvare il parlato generato come WAV o MP3?

Sì. L'endpoint TTS supporta output WAV, MP3 e audio grezzo. Scegli il contenitore e le impostazioni supportate in output_format prima di generare il parlato. Usa WAV per l'esempio in questa pagina; scegli MP3 quando la tua applicazione richiede quel formato. Cambiare soltanto l'estensione del file non converte l'audio.

Come trasmetto una risposta di un LLM alla sintesi vocale in streaming con Python?

Usa un WebSocket quando la tua applicazione riceve il testo un pezzo alla volta. Invia quei blocchi di testo tramite un contesto di generazione condiviso e consuma i blocchi audio restituiti man mano che arrivano. La tua applicazione deve comunque bufferizzare e riprodurre quell'audio. L'API WebSocket spiega continuazione e annullamento per le applicazioni conversazionali.

Dovrei usare HTTP o WebSocket per la sintesi vocale?

Usa HTTP quando la trascrizione è già disponibile, per esempio una narrazione completa o una notifica. Anche una risposta HTTP può fornire audio progressivamente. Usa WebSocket quando devi inviare testo in modo incrementale o gestire una conversazione continua. Streaming in ingresso e streaming in uscita sono scelte separate; salvare un file non è l'unico modo di consumare una risposta HTTP.

Posso usare Cartesia con Python asincrono o FastAPI?

Sì. Usa AsyncCartesia e attendi le chiamate API in un'applicazione asincrona. Gli esempi asincroni dell'SDK mostrano generazione, output su file e streaming. Collega l'audio restituito alla risposta o al lettore dell'applicazione e chiudi il client quando termina il suo ciclo di vita.

Dove dovrei conservare la chiave API Cartesia?

Mantieni la chiave di lunga durata in una variabile d'ambiente del server o in un gestore di segreti della distribuzione. Non inserirla nei commit né inviarla al codice del browser. Se il browser richiede una connessione diretta, fai creare al backend un token di breve durata e ambito limitato tramite l'API dei token di accesso.

Come scelgo voce e lingua per il TTS Python?

Ascolta l'anteprima di una voce nel Playground e passa il suo ID nella richiesta. Imposta language o locale per il testo, ma non entrambi. Testa nomi, numeri e abbreviazioni dei tuoi testi. Consulta il riferimento delle richieste per le impostazioni di lingua e voce, anziché presumere che tutte le voci supportino gli stessi accenti.

Quale ID del modello Sonic dovrei usare in produzione?

Scegli un modello dalla documentazione attuale di Sonic e testalo con la tua applicazione. L'ID sonic-3.6 riceve aggiornamenti stabili delle istantanee. Un'istantanea datata pubblicata mantiene fisso il comportamento del modello mentre valuti una nuova versione. Registra l'ID del modello insieme ai test per confrontare i risultati dopo un aggiornamento.

Perché il PCM grezzo richiede impostazioni di riproduzione particolari?

Il PCM grezzo non contiene un'intestazione di file che descriva come riprodurlo. Il lettore deve conoscere frequenza di campionamento e codifica usate nella richiesta. Una mancata corrispondenza può produrre rumore, silenzio o parlato alla velocità sbagliata. Parti da un output WAV per verificare il parlato generato separatamente dal lettore in streaming, poi testa il percorso di riproduzione dell'audio grezzo.

Cosa dovrei gestire prima di usare il TTS Python in produzione?

Gestisci errori di autenticazione, limiti di frequenza, errori di rete e timeout. Configura tentativi ripetuti e timeout dell'SDK in base alla tua applicazione. Testa la riproduzione interrotta ed evita di riprodurre audio in coda dopo che l'utente cambia direzione. Misura il tempo dalla disponibilità del testo al parlato udibile, includendo rete e buffer di riproduzione.

Inizia oggi

Parla con un esperto.

Contatta un membro del nostro team e scopri come Cartesia può aiutarti a creare esperienze vocali di altissimo livello.

Contatta il team commerciale

Inizia a sviluppare.

Accedi ai nostri modelli tramite API e porta un agente vocale in produzione in pochi minuti.

Prova Cartesia