How to voice a multi-character script without hiring a cast
Short answer: Mark every line in your script with which character speaks it, then assign each character a distinct voice. For a short scene with a handful of speakers, ElevenLabs Text to Dialogue is the simplest route, built specifically for multi-speaker scripts with a confirmed limit of 10 distinct voices per request. For a longer production that also needs music, sound effects and a full timeline, ElevenLabs Studio is the better fit, though you should confirm Studio's exact simultaneous-voice limit on your specific plan directly with ElevenLabs before committing to a large cast, since that detail isn't consistently published.
You've got a script with several distinct characters and need it voiced convincingly, without booking and coordinating a cast for something that might just be a draft.
I'm Ranjit, and I run Blur Studio: 15+ years building software, 120 apps taken live, and clients who have gone on to raise $10M+. I build AI systems and processes that help businesses do a lot more with a lot less time. I also work differently from most of what else is out there, more on that further down this page. Say hello.
This page may contain affiliate links from which Blur Studio earns commissions.
A multi-character script, whether it's an audio drama, a branching training scenario, or a short dramatized ad, needs a cast large enough to tell its own voices apart. Hiring that many people for something that might get rewritten, or that's genuinely just a draft to pitch, is disproportionate effort before you even know the final version is locked. This is especially true in the early stages of a project, where a script might go through two or three meaningful rewrites before anyone commits real budget to it, and paying actors to re-record each revision gets expensive fast compared to regenerating a voice track in minutes. For courses and games, see how to make different character voices.
Two tools, two different fits
ElevenLabs offers two routes into this, and which one fits depends on the scale of what you're making. Text to Dialogue is purpose-built for multi-speaker scripts: mark each line with its speaker, assign a voice to each, and it generates one audio file with natural turn-taking between them. It has a confirmed limit of up to 10 distinct voices in a single request, with no cap on how many lines or turns the dialogue itself has, which comfortably covers most scripted scenes. A short two-voice example is an ad with two voices.
ElevenLabs Studio is the better fit once you need more than dialogue alone: a full timeline with music, sound effects and video alongside the narration, project structure spanning chapters, or a longer production than a single scene. Studio supports multiple narration tracks on its timeline, each assignable its own voice, which is how a larger cast gets built inside a single project. Where I'd be careful is assuming a specific number of simultaneous distinct voices Studio supports per plan; that cap isn't consistently published the way Text to Dialogue's 10-voice limit is, so for anything with a genuinely large cast, confirm the current limit on your plan directly with ElevenLabs before you script around an assumption. As a practical rule of thumb: if your entire project is one scene or a handful of short exchanges, start with Text to Dialogue and only move to Studio once you actually hit a wall it can't cover, rather than defaulting to the more complex tool because it sounds more capable on paper. If you would rather perform the lines, you can voice every character yourself.
A worked example: a 3-character training scenario
Say you're producing a customer-service training scenario with three characters: a calm customer, a frustrated customer, and the staff member handling both calls. This is a genuinely common script shape for training content, and it's small enough that Text to Dialogue handles it cleanly in one pass. Mark each line with its speaker, pick three voices with real contrast between them (not just three different names in a list), and generate the scene as one file. The part worth doing deliberately here: pick the frustrated customer's voice first and build the other two around it by contrast, since a frustrated or heightened-emotion character is the one listeners need to distinguish fastest, and if that voice sits too close in tone to either of the other two, the training scenario stops working as a training scenario and just sounds like confusing crosstalk. The full method is in making sample customer call audio.
How your script formatting affects the result
A script written for a human cast to read from a page doesn't always translate cleanly into what either tool expects. Stage directions, parenthetical actor notes like "(sarcastically)" or "(under breath)," and inconsistent character-name formatting across a long script are common sources of a generated voiceover coming out wrong even when the underlying tool is working correctly. Before generating anything, do a pass through the script specifically to normalize how each character's name is written (exactly the same spelling and casing every time), and either remove stage directions entirely or fold their intent into the actual line text, since "say this sarcastically" as a bracketed note won't be read as a direction, it'll either be skipped or, worse, read aloud as part of the line. A clean, consistently formatted script is the single biggest lever you have over getting a good result on the first generation rather than needing several rounds of fixes.
How to do it, step by step
- Mark every line with its speaker clearly, the same discipline either tool needs to assign voices correctly.
- If your cast is small (under 10 voices) and it's one scene, use Text to Dialogue for the simplest path to a finished file.
- If you need music, sound design, or a longer multi-scene structure, build it in Studio instead, assigning a distinct voice to each character's track.
- Listen for voices that sound too similar once everything's generated. With more than two or three characters, it's easy to pick voices that work individually but blur together when a listener hasn't met the character yet.
- Keep a simple character-to-voice reference document as your cast grows, so you (or anyone else working on the project) stays consistent if you come back to it later or produce a sequel scene.
What I'd actually tell someone casting this
The quality ceiling here is genuinely high for a draft or even a finished small-cast production, but the thing that actually determines whether it sounds good isn't the tool, it's how distinct your voice choices are from each other. Four characters who all sound like variations of "pleasant and clear" will blur together no matter which tool generated them. Spend real time on voice selection before you generate a full script, the same way a casting director would, rather than treating voice choice as an afterthought.
Think about contrast across a few specific dimensions, not just "pick four different-sounding voices" in the abstract: pitch (a noticeably lower or higher register than the others), pace (one character who talks faster or more clipped than the rest), age register (a voice that reads as notably younger or older), and accent or regional tone if your cast calls for it. A script with a manager, a new hire, a customer and a narrator, for instance, naturally supports contrast on most of those dimensions at once: the manager steady and measured, the new hire faster and slightly higher, the customer with a different accent or regional tone, the narrator deliberately neutral so it doesn't compete with any of the characters for attention. Picking along a couple of these dimensions deliberately, rather than auditioning voices one at a time in isolation, gets you to a convincing cast faster than trial and error.
When to skip this
For a genuinely large cast, a full-length audio drama with a dozen or more recurring characters, this is worth testing carefully before you commit, since the tooling here is built more for scenes and short-to-mid productions than feature-length ensemble casts. Confirm it holds up at your actual scale before scripting the whole thing around it.
There's also a content-type line worth drawing honestly. For anything where the performance itself is the product, genuinely heightened emotional range, comedic timing that depends on human delivery, a scene where the acting is the whole point rather than just getting information across, real voice actors still generally outperform generated voices on nuance and timing. This tooling is strongest for content where getting several clearly distinct voices onto a page of dialogue is the main job: training scenarios, drafts to pitch a production before casting it properly, explainer dialogues, and short-to-mid scenes where clarity matters more than award-worthy performance. Know which category your project is in before you commit to one path over the other.
How I'd approach this
For a scene, a draft, or a small-cast short production, ElevenLabs' Studio and Text to Dialogue cover this well without anything custom. If you're building a recurring, large-cast production and want consistent voice assignment, automatic script-to-audio generation, and your own management layer on top of ElevenLabs' tools rather than juggling it by hand each episode, that's a pipeline I build for studios and agencies producing at real volume. Concretely, that usually means a small internal tool that holds your character-to-voice mapping as structured data rather than a shared document someone has to remember to check, takes a new script in, assigns voices automatically based on the speaker tags already in the text, and flags anything it can't match (a new character, a renamed one, a formatting inconsistency) for a human to resolve before generation runs. For a production with a dozen or more recurring characters across many episodes, that kind of system is the difference between voice consistency being something you have to actively manage every time and something that just happens correctly by default.
Questions people ask
How many different character voices can I use in one script?
Text to Dialogue supports up to 10 distinct voices per request, with no limit on lines or turns. ElevenLabs Studio can support more voices across a project's multiple tracks, but confirm the exact current limit on your plan directly with ElevenLabs rather than assuming a number, since it isn't consistently published.
Should I use Text to Dialogue or Studio for a multi-character script?
Text to Dialogue for a single scene with a small cast and no need for music or video. Studio for a longer production, multiple scenes, or anything needing sound design and a full timeline alongside the voices.
Why do my characters sound similar even with different voices assigned?
Pick voices with real contrast (pitch, pace, tone), the same way a casting director would, rather than several voices that are each individually pleasant but too close to each other for a listener to tell apart without context.
Can I reuse the same character voices across multiple scripts or episodes?
Yes, keep a simple reference of which voice belongs to which character so you (or anyone else working on the project) stays consistent across future scripts.
Is this good enough for a full-length audio drama?
For a short to mid-length production, generally yes. For a large, recurring cast at feature length, test carefully at your actual scale first; the tooling is built more around scenes and shorter productions.
Do I need a paid plan to voice a multi-character script commercially?
Yes. ElevenLabs' free tier doesn't include commercial use rights; that starts on the Starter plan and above.