API de texto para fala em Python para aplicações em tempo real

Transforme texto em fala com o SDK Python da Cartesia. Salve um arquivo WAV, transmita áudio para sua aplicação ou conecte o Sonic a um agente de voz em tempo real.
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")

Sua primeira solicitação de texto para fala

Transforme um roteiro em uma gravação WAV com o SDK de Python da Cartesia. Instale o pacote, adicione sua chave de API e execute o exemplo no servidor.

Instale o SDK

Use Python 3.9 ou posterior em um ambiente virtual.

Terminal
python -m pip install --upgrade cartesia

Configure sua chave de API

Crie uma chave no Playground. Substitua o valor de exemplo abaixo e mantenha a chave no servidor.

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

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

Gere sua primeira gravação

Salve este exemplo como speech.py. Execute pelo terminal e abra speech.wav para ouvir.

Terminal
python speech.py

Mude a transcrição ou escolha um ID de voz no Playground para ouvir outro resultado.

Arquivo de saída
speech.wav
Formato de áudio
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")

Escolha como o áudio chega ao seu app

O transporte adequado depende de quando o texto fica pronto e de como você pretende reproduzir a resposta.

Salve uma gravação

Transporte
HTTP
Saída
WAV ou MP3

Converta um roteiro completo em áudio e salve para ouvir depois. O exemplo acima produz um arquivo WAV com um cabeçalho que os players de áudio conseguem ler.

Leia a referência de saída de áudio

Fale conforme o texto chega

Transporte
WebSocket
Saída
Blocos de áudio bruto

Envie fragmentos de texto conforme o LLM escreve e receba blocos de áudio conforme o Sonic os gera. Encaminhe esses blocos para um player configurado para o formato solicitado.

Crie um exemplo de streaming

Transmita áudio de um roteiro completo

Já tem todo o texto? Use with_streaming_response para ler a resposta HTTP em blocos.

Use streaming por WebSocket quando chegar texto novo durante a geração, como uma resposta de um LLM.

Mantenha sua chave no servidor

Um backend Python pode cuidar da solicitação enquanto seu app web, app móvel ou sistema telefônico cuida da reprodução.

01

Seu servidor Python

Leia a chave de API do ambiente. Escolha a voz, o modelo e as configurações de áudio para cada solicitação.

02

Sonic

Converta o texto em fala. Receba uma resposta de áudio ou mantenha um WebSocket aberto para entrada incremental.

03

Sua aplicação

Salve a gravação ou envie o áudio ao player. Faça a codificação e a taxa de amostragem corresponderem às da resposta.

De um script a um serviço em produção

Uma solicitação bem-sucedida à API é o começo. Desenvolva o comportamento ao redor dela para a aplicação que seus ouvintes usarão.

Integre à sua infraestrutura Python

Use o cliente síncrono para scripts e tarefas em segundo plano. Use AsyncCartesia em um serviço assíncrono como FastAPI. Feche o cliente quando o trabalho terminar e envie o áudio ao serviço de armazenamento ou reprodução.

Teste toda a experiência de escuta

Defina tempos limite de solicitação e trate os limites de uso. Teste roteiros realistas com a voz que você vai usar em produção. Para conversas, meça o tempo até a fala audível e garanta que as interrupções parem a reprodução em fila. Sua rede e seu player afetam o que o ouvinte escuta.

Segurança de nível empresarial.Da nuvem ao ambiente local.

  • Selo Em conformidade com a HIPAA

    Em conformidade com a HIPAA

  • Selo SOC 2 Type 2

    SOC 2 Type 2

  • Selo GDPR

    GDPR

  • Selo PCI

    PCI

Dúvidas sobre texto para fala em Python

Como converto texto em fala em Python?

Instale cartesia, defina CARTESIA_API_KEY no ambiente do servidor e crie um cliente Cartesia. Chame client.tts.generate com sua transcrição, modelo, ID de voz e formato de saída e salve a resposta com write_to_file. O exemplo desta página produz speech.wav. Consulte os exemplos em Python para ver solicitações completas.

De qual versão de Python e SDK preciso?

O SDK oficial exige Python 3.9 ou posterior. Instale com python -m pip install --upgrade cartesia. Para suporte a WebSocket, instale com python -m pip install "cartesia[websockets]". Compare a versão instalada do pacote com a documentação do SDK ao adaptar um exemplo antigo.

Posso salvar a fala gerada como WAV ou MP3?

Sim. O endpoint de TTS aceita saída WAV, MP3 e áudio bruto. Escolha o contêiner e suas configurações compatíveis em output_format antes de gerar a fala. Use WAV para o exemplo desta página; escolha MP3 quando sua aplicação precisar desse formato. Mudar apenas a extensão do arquivo não converte o áudio.

Como transmito uma resposta de LLM para fala com Python?

Use um WebSocket quando sua aplicação recebe texto aos poucos. Envie esses blocos de texto por um contexto de geração compartilhado e consuma os blocos de áudio retornados conforme chegam. Sua aplicação ainda precisa armazenar temporariamente e reproduzir esse áudio. A API WebSocket explica continuação e cancelamento para aplicações de conversação.

Devo usar HTTP ou WebSockets para texto para fala?

Use HTTP quando a transcrição já estiver disponível, como uma narração ou notificação completa. Uma resposta HTTP também pode entregar áudio progressivamente. Use WebSockets quando precisar enviar texto de forma incremental ou gerenciar uma conversa contínua. Streaming de entrada e de saída são escolhas separadas; salvar um arquivo não é a única forma de consumir uma resposta HTTP.

Posso usar a Cartesia com Python assíncrono ou FastAPI?

Sim. Use AsyncCartesia e aguarde suas chamadas de API com await em uma aplicação assíncrona. Os exemplos assíncronos do SDK mostram geração, saída em arquivo e streaming. Conecte o áudio retornado à resposta ou ao reprodutor da sua aplicação e feche o cliente quando seu ciclo de vida terminar.

Onde devo armazenar minha chave de API da Cartesia?

Mantenha sua chave de longa duração em uma variável de ambiente do servidor ou em um gerenciador de segredos da implantação. Não a inclua em commits nem a envie ao código do navegador. Se o navegador precisar de uma conexão direta, faça seu backend criar um token de curta duração e escopo limitado pela API de tokens de acesso.

Como escolho uma voz e um idioma para TTS em Python?

Ouça uma voz no Playground e passe seu ID na solicitação. Defina language ou locale para sua transcrição, mas não ambos. Teste nomes, números e abreviações dos seus próprios textos. Consulte a referência da solicitação para configurações de idioma e voz, em vez de presumir que todas as vozes têm o mesmo suporte a sotaques.

Qual ID de modelo Sonic devo usar em produção?

Escolha um modelo na documentação atual do Sonic e teste-o com sua aplicação. O ID sonic-3.6 recebe atualizações de versões estáveis. Uma versão datada publicada mantém o comportamento do modelo fixo enquanto você avalia um lançamento mais recente. Registre o ID do modelo junto com seus testes para comparar resultados após uma atualização.

Por que PCM bruto precisa de configurações especiais de reprodução?

PCM bruto não contém um cabeçalho de arquivo que descreva como reproduzi-lo. O reprodutor precisa da taxa de amostragem e da codificação usadas na solicitação. Uma diferença pode produzir ruído, silêncio ou fala na velocidade errada. Comece com saída WAV para conferir a fala gerada separadamente do reprodutor de streaming e depois teste o fluxo de reprodução de áudio bruto.

O que devo tratar antes de usar TTS em Python em produção?

Trate falhas de autenticação, limites de requisições, erros de rede e tempos limite. Configure as novas tentativas e os tempos limite do SDK para sua aplicação. Teste reprodução interrompida e evite reproduzir áudio da fila depois que o usuário mudar de direção. Meça desde a disponibilidade do texto até a fala audível, incluindo rede e buffer de reprodução.

Comece hoje

Fale com um especialista.

Converse com alguém da nossa equipe e descubra como a Cartesia pode ajudar você a criar experiências de voz de alto nível.

Fale com vendas

Comece a criar.

Acesse nossos modelos por API e coloque um agente de voz em produção em minutos.

Experimente a Cartesia