Transformez n'importe quel article
en podcast

Collez un lien ou le texte de l'article. Un LLM en fait une conversation entre deux animateurs. Cartesia Sonic 3.6 donne une voix à chaque réplique, et la page lit l'épisode avec une transcription qui surligne la réplique en cours.
L'épisode terminé Sonic Briefing: Libraries Lending Heat Pumps, tiré d'un court article sur des bibliothèques qui prêtent des pompes à chaleur. Un lecteur à 0:09 sur 1:53 avec un bouton Download, et en dessous le script avec la réplique en cours de Sam surlignée en vert

Capture d'écran. Le modèle lancé en local.

Modèles
sonic-3.6
Langues
Anglais, espagnol, français, allemand et 4 autres
Licence
Apache-2.0
Stack technique
Next.js 16React 19AI SDKMozilla Readabilityshadcn/ui
Produits Cartesia
Sonic 3.6

Ce qu'il fait

Avant de commencer, choisissez un épisode court, moyen ou long et l'une des huit langues : anglais, espagnol, français, allemand, portugais, japonais, hindi ou coréen. Le LLM écrit le script dans cette langue, et Sonic le lit dans la même langue. Les animateurs s'appellent Sam et Alex tant que vous ne les renommez pas. L'épisode final se télécharge depuis le lecteur au format WAV.

Lancez-le vous-même

  1. Installez

    Lancez les commandes ci-dessous avec Node 22.22 ou plus récent. pnpm fonctionne aussi. Remplissez .env.local à l'aide du tableau ci-dessous. Sans clés, la page se charge quand même et indique la variable à définir.

    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
    

    Variables d'environnement
    CARTESIA_API_KEY
    play.cartesia.ai/keys
    LLM_MODEL
    fournisseur/modèle, par exemple openai/gpt-5.4-mini
    OPENAI_API_KEY
    Si LLM_MODEL commence par openai/
    ANTHROPIC_API_KEY
    Si LLM_MODEL commence par anthropic/
    AI_GATEWAY_API_KEY
    Pour tout autre fournisseur. Inutile sur Vercel
    CARTESIA_VOICE_HOST_A
    Facultatif. L'id de voix du premier animateur, et CARTESIA_VOICE_HOST_B pour le second
    APP_PASSWORD
    Facultatif en local. Obligatoire sur Vercel, ou none pour rendre l'app publique
    TRUST_PROXY
    Facultatif. 1 derrière votre propre proxy inverse
  2. Créez un épisode

    Ouvrez l'URL locale affichée par le serveur de développement et collez le lien d'un article. Pour les pages qui chargent leur texte en JavaScript, passez plutôt à Paste text. Choisissez la durée courte pour un premier épisode rapide. Appuyez ensuite sur Make podcast.

Créez-le avec votre agent de code

Un prompt qui indique à votre agent de code par où commencer et quoi lire en premier.

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.

Comment ça marche

RécupérationUne récupération qui refuse les adresses privées, puis un analyseur extrait le texte de l'article
ScriptUn LLM écrit un titre et chaque réplique du script
Sonic 3.6Une requête par réplique, 4 à la fois
WAVRépliques jointes avec de courts silences, avec l'heure de début de chacune
LecteurSurligne la réplique en cours

Pourquoi ça fonctionne ainsi

Un appel Sonic par réplique

Chaque animateur a besoin d'une voix différente, donc chaque réplique fait l'objet de sa propre requête. L'audio brut donne aussi à chaque réplique une durée exacte, ce qui garde la transcription surlignée synchronisée. L'app ajoute 350 ms de silence quand l'animateur change et 180 ms sinon. La contrepartie : le ton ne se transmet pas d'une réplique à l'autre.

N'importe quel LLM écrit le script

Le script vient de l'AI SDK, donc tout fournisseur de LLM fonctionne. La voix passe par le SDK JavaScript de Cartesia, @cartesia/cartesia-js, qui fixe la version de l'API à chaque requête.

Les pages récupérées ne sont pas fiables

Le code de récupération de lib/safe-fetch.ts refuse les adresses privées et internes et n'autorise que les ports 80 et 443. Il limite aussi les redirections, la taille de la page à 2 Mo et la durée. Le prompt présente l'article comme un contenu à commenter et demande au LLM de ne jamais suivre les instructions qu'il contient.

Personnalisez-le

Utilisez d'autres voix

Choisissez deux voix sur play.cartesia.ai/voices. Mettez l'id de la voix du premier animateur dans CARTESIA_VOICE_HOST_A. Celui du second va dans CARTESIA_VOICE_HOST_B. Les voix par défaut sont anglaises, alors choisissez des voix adaptées à votre langue.

Changez l'émission

Le nom de l'émission, le slogan, les rôles des animateurs et le plan de l'épisode sont des valeurs par défaut dans lib/config.ts. Les instructions données au LLM sont dans lib/prompt.ts.

Utilisez un autre fournisseur de LLM

Mettez dans LLM_MODEL l'id AI Gateway du fournisseur, par exemple google/gemini-2.5-flash. Ajoutez AI_GATEWAY_API_KEY à côté. Pour appeler le fournisseur directement, installez son paquet AI SDK. Ajoutez ensuite une branche pour son préfixe dans lib/llm.ts.

Questions

Ma clé d'API Cartesia est-elle exposée dans le navigateur ?

Non. Le navigateur envoie le script au serveur de l'app, qui appelle Sonic. La clé ne quitte jamais le serveur.

Combien de temps faut-il pour un épisode ?

Cela dépend de votre LLM et de la durée choisie. Un épisode court demande un seul appel au LLM. Le moyen, choisi par défaut, et le long font plusieurs appels à la suite, et Sonic donne voix à quatre répliques à la fois.

Combien coûte un épisode ?

Sonic coûte environ 1 crédit par caractère de script. L'app refuse les scripts de plus de 30 000 caractères, donc un épisode coûte au plus environ 30 000 crédits, plus vos tokens de LLM.

Puis-je la mettre en ligne publiquement ?

Définissez d'abord un mot de passe avec APP_PASSWORD, car chaque épisode dépense vos tokens de LLM et vos crédits Cartesia. Ne convertissez que des articles qui vous appartiennent ou que vous avez le droit d'adapter, et signalez l'audio publié comme généré par IA.

Puis-je le faire en Python ?

Oui. L'appel à Sonic fonctionne de la même façon dans le paquet Python de Cartesia. Partez de la recette générer de la voix dans un fichier et bouclez sur les répliques de votre script.

Existe-t-il un guide pas à pas pour ce modèle ?

Oui. La recette parcourt le code, le README couvre l'installation, les variables d'environnement et le déploiement, et la référence de l'API TTS bytes explique le côté Cartesia.

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