Radio play: two voices, one Speech node
Make a short two-person audio scene, a radio play, an explainer dialogue or a podcast-style intro, without recording anyone.
Show that one Speech node can do a conversation: Gemini 3.1 Flash TTS reads a "conversation between A and B" with a cast note that assigns a voice to each name, and does not read the names aloud.
Saved result
Tilly: Steady, Rotor. One hill, one cake, and noon on the clock. Rotor: Wind gust! The top tier is tilting eleven degrees! Should I panic? Tilly: No panicking. Unstack it. Three tiers, three trips. You're quick as a kettle whistle. Rotor: Recalculating... Three trips. Landing pad: lighthouse porch. ETA: eleven fifty-two. Tilly: Good lad. Mind the gulls. Land soft as butter on warm toast. Rotor: Tier two delivered! Tier one... gull! Shoo! Delivered! Not a crumb lost. Tilly: Then take the candles and yourself up last, slow and proud. Rotor: All tiers assembled! The keeper says it's the finest she's ever seen! Tilly: And you, first flight, first delivery, not one crumb dropped. Rotor: The keeper named a cupcake Rotor's Ration for me. Best morning ever.
The story idea goes to GLM 5.3 Flash, which writes a 10-line, 126-word radio play as "Tilly: …" / "Rotor: …" lines: Tilly, a calm old baker, talks a jumpy delivery drone on its first morning through getting a three-tier cake up a windy hill to a lighthouse. A gust tilts the top tier, they split the cake into three trips, a gull nearly gets the last one, and the keeper names a cupcake after Rotor. Join puts a fixed cast note in front of the script ("TTS the following conversation between Tilly and Rotor. Tilly has a deep calm older voice (voice Kore); Rotor has a bright young voice (voice Puck). Do not read the speaker names aloud."), and Gemini 3.1 Flash TTS reads it as one 1:09 scene. A diarizing transcription model (Voxtral) splits the recording into two speakers that switch exactly where the script switches, Tilly low (about 108 Hz) and Rotor high (about 253 Hz), and no speaker names are read aloud. Flaws: the delivery is slow for 126 words, with long gaps between lines. Gemini picks its own timbres from the cast note: Tilly comes out as a deep, rather masculine voice, not obviously the Kore voice named in the note. The script repeats one beat ("not a crumb lost" and "not one crumb dropped"). This depends on the cast note's wording: a first take that called it "a lively radio play" came back in one voice and is not used. The model is a preview. Every line was checked against the transcript and is family-friendly. Inspired by @jeffreyabrick's two-voice radio play (https://x.com/jeffreyabrick/status/2113269680702156843). No media from that post is used.
Make it yours
- Open the graph — save first if the canvas already has your work. Undo brings yours back.
- Rewrite Story idea, and change the two names in the idea, the Script node's system prompt and Cast · voice direction. Keep the cast note's opening ("TTS the following conversation between …") and the "Do not read the speaker names aloud" line; rewording it can collapse everything into one voice. Describe the two voices so they contrast (deep and calm against bright and young).
- Check the editor estimate, then run with your NanoGPT key. GLM 5.3 Flash for under $0.001 + Gemini 3.1 Flash TTS at about $0.10 per 1,000 characters (cast note plus script, about 950 characters here) = about $0.10. The saved run was about $0.098 by balance; the TTS price is not reported per call.
- Listen for the switch at every line, and for names being read out. If both characters sound the same, put the cast note back to the wording here and run the Speech node again.
Download workflow · Original sampled graph · Explore MCP tools · awesome-noodles