ListenHubSkills
Advanced

Multi-Voice Scripts

Use a JSON script to control which voice speaks each line, for multi-character dialogue and dramatised scripts.

Basic TTS is one block of text read by one voice. A multi-voice script instead gives you line-by-line control over who speaks — a three-way debate, dialogue from a novel, or a teaching scenario where each character has their own voice and lines.

Starting a Request

Tell the AI you want to use a multi-voice script. It builds a multi-character dialogue and assigns a distinct voice to each speaker. In this example:

  • Su Zhe (measured male voice) — host, handles the opening and the main argument
  • Ruo Yun (warm female voice) — questioner, surfaces the tension and works through it
  • Yuan Ye (Beijing-accented male voice) — closer, delivers the philosophical wrap-up

Starting a multi-voice script request with three voices

Script Structure

The generated script is a plain JSON file. Each line specifies content (what is said) and speakerId (which voice says it), and lines are read in array order:

JSON script structure: each line specifies content and a voice ID

The point of this structure is that it is fully deterministic — two people alternating, a three-way roundtable, or a monologue interleaved with narration are all just different arrangements of the same array. You can write the script by hand, or have the AI generate it from a description.

Finished Dialogue

Around 30 seconds after submission, the three-way dialogue is ready. The AI returns a listening link, a subtitle file, the voice lineup, and the dialogue structure:

Multi-voice script complete: a 31-second three-way dialogue

FlowTTS vs. Script

AspectFlowTTS (single narrator)Script (multi-voice)
GranularityWhole text, one voicePer line, multiple voices
Best forArticle narration, long textDialogue, scripts, audiobooks
Input formatPlain textJSON (scripts array)
Arrangement controlLowHigh

For the underlying API, see the Text to Speech API reference.

On this page