Trasforma qualsiasi articolo in
un podcast

Incolla un link o il testo dell'articolo. Un LLM lo trasforma in una conversazione tra due conduttori. Cartesia Sonic 3.6 dà voce a ogni battuta, e la pagina riproduce l'episodio con una trascrizione che evidenzia la battuta in corso.
L'episodio finito Sonic Briefing: Libraries Lending Heat Pumps, da un breve articolo su biblioteche che prestano pompe di calore: un lettore a 0:09 di 1:53 con un pulsante Download, e sotto il copione con la battuta attuale di Sam evidenziata in verde

Screenshot. Il template in esecuzione in locale.

Modelli
sonic-3.6
Lingue
Inglese, spagnolo, francese, tedesco e altre 4
Licenza
Apache-2.0
Stack
Next.js 16React 19AI SDKMozilla Readabilityshadcn/ui
Prodotti Cartesia
Sonic 3.6

Cosa fa

Prima di iniziare, scegli un episodio breve, medio o lungo e una di otto lingue: inglese, spagnolo, francese, tedesco, portoghese, giapponese, hindi o coreano. L'LLM scrive il copione in quella lingua, e Sonic lo legge nella stessa lingua. I conduttori si chiamano Sam e Alex finché non li rinomini. L'episodio finito si scarica dal player come file WAV.

Eseguilo tu

  1. Installa

    Esegui i comandi qui sotto con Node 22.22 o successivo. Funziona anche pnpm. Compila .env.local seguendo la tabella qui sotto. Senza chiavi la pagina si carica comunque e ti dice quale variabile impostare.

    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
    

    Variabili d'ambiente
    CARTESIA_API_KEY
    play.cartesia.ai/keys
    LLM_MODEL
    provider/model, per esempio openai/gpt-5.4-mini
    OPENAI_API_KEY
    Se LLM_MODEL inizia con openai/
    ANTHROPIC_API_KEY
    Se LLM_MODEL inizia con anthropic/
    AI_GATEWAY_API_KEY
    Per qualsiasi altro fornitore. Non serve su Vercel
    CARTESIA_VOICE_HOST_A
    Opzionale. Id della voce del primo conduttore, e CARTESIA_VOICE_HOST_B per il secondo
    APP_PASSWORD
    Opzionale in locale. Obbligatoria su Vercel, oppure none per rendere l'app pubblica
    TRUST_PROXY
    Opzionale. 1 dietro il tuo reverse proxy
  2. Crea un episodio

    Apri l'URL locale che stampa il server di sviluppo e incolla il link a un articolo. Per le pagine che caricano il testo con JavaScript, passa invece a Paste text. Scegli la durata breve per un primo episodio veloce. Poi premi Make podcast.

Crealo con il tuo agente di programmazione

Un prompt che dice al tuo agente di programmazione da dove partire e cosa leggere per primo.

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.

Come funziona

RecuperoUn download che rifiuta gli indirizzi privati, poi un parser estrae il testo dell'articolo
CopioneUn LLM scrive un titolo e ogni battuta del copione
Sonic 3.6Una richiesta per battuta, 4 alla volta
WAVBattute unite con brevi pause, con il momento di inizio di ciascuna
LettoreEvidenzia la battuta in corso

Perché funziona così

Una chiamata a Sonic per battuta

Ogni conduttore ha bisogno di una voce diversa, quindi ogni battuta è una richiesta a sé. L'audio grezzo dà anche a ogni battuta una durata esatta, così la trascrizione evidenziata resta sincronizzata. L'app aggiunge 350 ms di silenzio quando cambia chi parla e 180 ms negli altri casi. Il prezzo è che il tono non passa da una battuta all'altra.

Qualsiasi LLM scrive il copione

Il copione arriva dall'AI SDK, quindi funziona con qualsiasi provider LLM. La voce passa dall'SDK JavaScript di Cartesia, @cartesia/cartesia-js, che fissa la versione dell'API a ogni richiesta.

Le pagine scaricate non sono affidabili

Il codice di download in lib/safe-fetch.ts rifiuta gli indirizzi privati e interni e consente solo le porte 80 e 443. Limita anche i redirect, la dimensione della pagina a 2 MB e il tempo. Il prompt presenta l'articolo come materiale da discutere e dice all'LLM di non seguire mai le istruzioni che contiene.

Personalizzalo

Usa altre voci

Scegli due voci su play.cartesia.ai/voices. Metti l'id della voce del primo conduttore in CARTESIA_VOICE_HOST_A. Quello del secondo va in CARTESIA_VOICE_HOST_B. Le voci predefinite sono inglesi, quindi scegline di adatte alla tua lingua.

Cambia il programma

Il nome del programma, lo slogan, i ruoli dei conduttori e la scaletta dell'episodio sono valori predefiniti in lib/config.ts. Le istruzioni che riceve l'LLM sono in lib/prompt.ts.

Usa un altro fornitore di LLM

Imposta LLM_MODEL sull'id AI Gateway del provider, per esempio google/gemini-2.5-flash. Aggiungi AI_GATEWAY_API_KEY accanto. Per chiamare il provider direttamente, installa il suo pacchetto AI SDK. Poi aggiungi un ramo per il suo prefisso in lib/llm.ts.

Domande

La mia chiave API di Cartesia è esposta nel browser?

No. Il browser invia il copione al server dell'app, che chiama Sonic. La chiave non lascia mai il server.

Quanto ci vuole per un episodio?

Dipende dal tuo LLM e dalla durata che scegli. Un episodio breve richiede una sola chiamata all'LLM. Il medio, che è il predefinito, e il lungo fanno più chiamate in fila, e Sonic dà voce a quattro battute alla volta.

Quanto costa un episodio?

Sonic costa circa 1 credito per carattere di copione. L'app rifiuta copioni oltre 30.000 caratteri, quindi un episodio costa al massimo circa 30.000 crediti, più i token dell'LLM.

Posso metterla online pubblicamente?

Prima imposta una password con APP_PASSWORD, perché ogni episodio consuma i tuoi token LLM e i tuoi crediti Cartesia. Converti solo articoli tuoi o che hai il permesso di adattare, e indica che l'audio pubblicato è generato dall'IA.

Posso farlo in Python?

Sì. La chiamata a Sonic funziona allo stesso modo nel pacchetto Python di Cartesia. Parti dalla ricetta generare la voce in un file e ripetila per ogni battuta del copione.

Esiste una guida passo passo per questo template?

Sì. La ricetta spiega il codice, il README copre configurazione, variabili d'ambiente e distribuzione, e il riferimento dell'API TTS bytes spiega la parte Cartesia.

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