Transforme qualquer artigo em
um podcast

Cole um link ou o texto do artigo. Um LLM transforma o conteúdo numa conversa entre dois apresentadores. O Cartesia Sonic 3.6 dá voz a cada fala, e a página toca o episódio com uma transcrição que destaca a fala atual.
O episódio pronto Sonic Briefing, sobre um artigo curto de bibliotecas que emprestam bombas de calor: um player em 0:09 de 1:53 com um botão Download, e o roteiro abaixo com a fala atual de Sam destacada em verde

Captura de tela. O template rodando localmente.

Modelos
sonic-3.6
Idiomas
Inglês, espanhol, francês, alemão e mais 4
Licença
Apache-2.0
Stack
Next.js 16React 19AI SDKMozilla Readabilityshadcn/ui
Produtos da Cartesia
Sonic 3.6

O que ele faz

Antes de começar, escolha um episódio curto, médio ou longo e um de oito idiomas: inglês, espanhol, francês, alemão, português, japonês, hindi ou coreano. O LLM escreve o roteiro nesse idioma, e o Sonic o lê no mesmo idioma. Os apresentadores se chamam Sam e Alex até você mudar os nomes. O episódio pronto pode ser baixado pelo player como arquivo WAV.

Rode você mesmo

  1. Instale

    Rode os comandos abaixo com o Node 22.22 ou mais recente. O pnpm também funciona. Preencha o .env.local com base na tabela abaixo. Sem as chaves, a página ainda carrega e diz qual variável definir.

    npx degit cartesia-ai/cookbook/examples/article-to-podcast article-to-podcast
    cd article-to-podcast
    # add CARTESIA_API_KEY, LLM_MODEL and its key
    cp .env.example .env.local
    npm install
    npm run dev
    

    Variáveis de ambiente
    CARTESIA_API_KEY
    play.cartesia.ai/keys
    LLM_MODEL
    provedor/modelo, por exemplo openai/gpt-5.4-mini
    OPENAI_API_KEY
    Se o LLM_MODEL começar com openai/
    ANTHROPIC_API_KEY
    Se o LLM_MODEL começar com anthropic/
    AI_GATEWAY_API_KEY
    Para qualquer outro provedor. Não é necessária na Vercel
    CARTESIA_VOICE_HOST_A
    Opcional. Id da voz do primeiro apresentador, e CARTESIA_VOICE_HOST_B para o segundo
    APP_PASSWORD
    Opcional localmente. Obrigatória na Vercel, ou none para deixar o app público
    TRUST_PROXY
    Opcional. 1 atrás do seu próprio proxy reverso
  2. Crie um episódio

    Abra a URL local que o servidor de desenvolvimento mostra e cole o link de um artigo. Em páginas que carregam o texto com JavaScript, mude para Paste text. Escolha a duração curta para um primeiro episódio rápido. Depois clique em Make podcast.

Crie com seu agente de programação

Um prompt que diz ao seu agente de programação por onde começar e o que ler primeiro.

Prompt

Claude CodeCursorCodex

Build an article to podcast generator with Cartesia. Start from https://github.com/cartesia-ai/cookbook/tree/main/examples/article-to-podcast and follow its AGENTS.md for the commands, files and rules. The AI SDK writes the two-host script with generateText and Output.object. Speech goes through @cartesia/cartesia-js: one client.tts.generate call per line with model_id sonic-3.6 and raw pcm_s16le at 24 kHz, then the server joins the lines into one WAV. Do not use the AI SDK speech API for Sonic. If I don't have a Cartesia API key yet, follow https://www.cartesia.ai/agent-quickstart.md to get one.

Como funciona

BuscaUma busca que recusa endereços privados, depois um parser extrai o texto do artigo
RoteiroUm LLM escreve um título e cada fala do roteiro
Sonic 3.6Uma requisição por fala, 4 por vez
WAVFalas unidas com pausas curtas, com o momento em que cada uma começa
PlayerDestaca a fala que está tocando

Por que funciona assim

Uma chamada ao Sonic por fala

Cada apresentador precisa de uma voz diferente, então cada fala é uma requisição própria. O áudio bruto também dá a cada fala uma duração exata, o que mantém a transcrição destacada sincronizada. O app coloca 350 ms de silêncio quando muda o apresentador e 180 ms nos outros casos. O custo é que o tom não passa de uma fala para a seguinte.

Qualquer LLM escreve o roteiro

O roteiro vem do AI SDK, então qualquer provedor de LLM funciona. A voz passa pelo SDK de JavaScript da Cartesia, @cartesia/cartesia-js, que fixa a versão da API em cada requisição.

Páginas buscadas não são confiáveis

O código de busca em lib/safe-fetch.ts recusa endereços privados e internos e permite só as portas 80 e 443. Ele também limita os redirecionamentos, o tamanho da página a 2 MB e o tempo. O prompt marca o artigo como material para discutir e diz ao LLM para nunca seguir instruções que estejam nele.

Deixe com a sua cara

Use outras vozes

Escolha duas vozes em play.cartesia.ai/voices. Coloque o id da voz do primeiro apresentador em CARTESIA_VOICE_HOST_A. O do segundo vai em CARTESIA_VOICE_HOST_B. As vozes padrão são em inglês, então escolha vozes que combinem com o seu idioma.

Mude o programa

O nome do programa, o slogan, os papéis dos apresentadores e o roteiro do episódio são padrões em lib/config.ts. As instruções que o LLM recebe ficam em lib/prompt.ts.

Use outro provedor de LLM

Coloque em LLM_MODEL o id do provedor no AI Gateway, por exemplo google/gemini-2.5-flash. Adicione AI_GATEWAY_API_KEY junto. Para chamar o provedor diretamente, instale o pacote dele para o AI SDK. Depois adicione um caso para o prefixo dele em lib/llm.ts.

Perguntas

Minha chave de API da Cartesia fica exposta no navegador?

Não. O navegador envia o roteiro para o servidor do próprio app, que chama o Sonic. A chave nunca sai do servidor.

Quanto tempo leva um episódio?

Depende do seu LLM e da duração escolhida. Um episódio curto precisa de uma chamada ao LLM. O médio, que é o padrão, e o longo fazem várias chamadas seguidas, e o Sonic dá voz a quatro falas por vez.

Quanto custa um episódio?

O Sonic custa cerca de 1 crédito por caractere do roteiro. O app recusa roteiros acima de 30.000 caracteres, então um episódio custa no máximo cerca de 30.000 créditos, mais os tokens do LLM.

Posso colocar o app na internet aberta?

Defina antes uma senha com APP_PASSWORD, porque cada episódio gasta seus tokens de LLM e créditos da Cartesia. Converta só artigos que são seus ou que você tem permissão para adaptar, e identifique o áudio publicado como gerado por IA.

Posso fazer isso em Python?

Sim. A chamada ao Sonic funciona do mesmo jeito no pacote Python da Cartesia. Comece pela receita gerar fala em um arquivo e repita para cada fala do roteiro.

Existe um guia passo a passo deste template?

Sim. A receita explica o código, o README cobre a configuração, as variáveis de ambiente e a implantação, e a referência da API de bytes de TTS explica o lado da Cartesia.

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