To give characters distinct voices when an AI drafts the dialogue, show the model how each one talks instead of describing them: two or three real lines per character, one or two habits of speech, and what they want in this scene, kept with the character and handed to the model every time they appear. A trait list ("sarcastic, guarded") isn't enough, because every model has a house voice and research shows it leaks into every role it plays. Then test the result the way editors test human dialogue: delete the names and see if you can still tell who's talking.
Why AI characters all sound the same
The clearest measurement is a 2024 study, Speaker Verification in Agent-Generated Conversations (Yang, Achananuparp, Huang, Jiang and Lim, revised June 2024). The authors built a model that judges whether two sets of lines come from the same speaker, then pointed it at role-playing AIs voicing different characters. Its "distinction score" asks how different one model's lines are when it plays two different roles. Real dialogue from two real characters scored 72.91. Every AI scored lower:
| Who wrote the lines | Distinction score (higher = characters sound more different) |
|---|---|
| Real dialogue | 72.91 |
| LLaMA2-Chat-7B | 63.57 |
| LLaMA2-Chat-70B | 62.43 |
| RoleGPT (prompted ChatGPT) | 56.16 |
| LLaMA2-Chat-13B | 53.56 |
| Character.AI | 49.89 |
| ChatHaruhi | 49.78 |
| CharacterLLM | 38.98 |
Checked October 2026: figures from Table 3 of the paper's v2 (6 June 2024). These are 2023–24 models; we found no newer study that runs the same test on current ones, so treat the numbers as the shape of the problem, not a ranking.
The paper's explanation is the useful part. Models "pre-trained on large datasets develop their own distinctive style, making it challenging to diversify for role-specific simulations." For CharacterLLM, which was fine-tuned on specific characters, lines written for two different roles were more alike than lines written for the same role. The authors also noticed that the two prompted models that did best put each role's catchphrases in the prompt, and that one model, given catchphrases, overused them and slipped "well well" into every role. Both of those show up in the fix below.
Humans weren't much help as judges, either: neither ten non-expert annotators nor ChatGPT could reliably tell speakers apart from their lines alone, doing "only modestly better" than chance.
The voice fades as the scene goes on
Even a well-briefed character drifts back to the house voice, and so does the narrator's person: a draft that opens in first person can slide into third (the pronoun check for first vs third person catches it). Li et al. (COLM 2024) gave LLaMA2-chat-70B and GPT-3.5 a persona to keep and measured "a significant instruction drift within eight rounds of conversations". Eight exchanges is a short argument. If you describe your characters once at the top of a long chat and then write chapter after chapter, the description is losing ground the whole time.
On r/SillyTavernAI, where people run characters for hours, one post put it in a line: "AI has a default voice. If you don't override it, every character inherits it" (u/Pastrugnozzo, May 2025, via an archive snapshot).
How to give characters distinct voices with AI, in five steps
1. Write each character's voice down as lines, not adjectives. Anthropic's prompting best practices call examples "one of the most reliable ways to steer Claude's output format, tone, and structure". For a character, the example is two or three lines they'd actually say, in a situation unlike the scene you're writing, so the model copies the rhythm and not the content.
2. Give each one or two habits, and no more. Sentence length, how formal they are, whether they answer questions with questions, a word they use that nobody else does. The speaker-verification study saw both sides of this: catchphrases helped the best models, and a model with too much to imitate repeated it everywhere. One verbal tic, used three times a page, is a parody.
3. Say what shapes the voice. The V.O.I.C.E. checklist from Story Embers (Lori Z. Scott, May 2021) is worldview, occupation, idiosyncrasies, culture, education. A line of each gives the model something to reason from when your sample lines don't cover the situation: an ER nurse and a philosophy lecturer describe the same car crash differently.
4. Tell the model what each character wants in this scene. Jacquelin Cangro's editor's note on distinct voices (December 2025) builds voice "from the inside out", starting from what the character wants right now. A character who wants to leave talks in short answers; one who wants to be forgiven over-explains. The model can't infer that from a personality sketch. If you cast the book from a list first, the character archetypes lists show where two characters share a role and need different wants.
5. Hand it all over every time, not once. Because of the drift above, the voice notes have to go back in with each scene the character is in. In a chatbot, that means pasting them. Keep them in one place so they're the same notes each time.
A voice sheet you can paste
Dana Reyes (ER nurse, 41). Wants: to end the conversation without saying no. Speaks in short sentences, answers a question with a question, never swears in front of patients and swears freely everywhere else. Uses "sweetheart" only when she's angry. Sounds like: "You eat today? No? Then we're not doing this yet." / "I've got four minutes. Pick the part that matters."
Theo Marsh (her brother, 38, philosophy lecturer). Wants: her to admit she's scared. Long sentences, qualifies everything, quotes people, apologises before disagreeing. Sounds like: "I'm not saying you're wrong, exactly, I'm saying there's a version of this where you're also tired."
For a fan fiction character, take the "Sounds like" lines from canon itself; how to write fanfiction has a check for keeping them in character. Then the scene instruction goes underneath: who's in it, what happens, where it ends. AI prompts for story writing has a full scene template the sheet slots into.
Test it: the speaker-tag test
The test comes from the craft side, and it works on AI dialogue too (for tags, subtext and format, see how to write dialogue, which counts what ten classic novels do). Cangro puts the goal plainly: "A strong character voice allows readers to recognize who's speaking even without dialogue tags." So:
- Copy the dialogue out and delete every name, tag and action beat.
- Read it cold, or give it to someone who knows the characters.
- Mark every line you can't place.
Any unplaceable line goes back with a narrow instruction: "rewrite only Theo's lines in this exchange, longer and more hedged; leave Dana's as they are". Asking for the whole scene again gives the house voice another turn.
Check one more thing while you're there. The CASPER study of characters in AI-written short stories (Brei, Sharma, Sanaie, Wang and Chaturvedi, ACL 2026) found that models "play it safe": their characters are more likely than human ones to be stereotyped, to change visibly over the story and to have their arc closed off by the end. In dialogue, that shows up as the character who explains their own feelings in the last exchange. If someone says exactly what they've learned, cut it. A model is decent at this kind of narrow check on one scene, less so on a whole chapter: what an AI plot hole finder catches and misses has the numbers.
Where chatbots fall short for this
- The voice sheet is yours to carry. Every new scene, every new chat, it has to be pasted again, and when you change a character it's on you to change it everywhere.
- Long conversations drift. The eight-round finding above is a chat's problem: the sheet sits further back with every reply.
- ChatGPT won't write part of the genre. For romance and dark fiction, the voice isn't the only thing it softens; why ChatGPT won't write NSFW covers what it refuses.
In KudoWrite, the voice lives in the character's entry
Paste Dana's sheet into her entry in the story bible and step 5 stops being your job. Whenever a beat has Dana in it, her entry goes to the model with the passage, in chapter 2 or chapter 40; characters are the one kind of entry the engine doesn't leave out when it chooses what a beat needs. Change how she talks and you change it once, in the sidebar, for every scene after.
When a line still comes back in the house voice, the speaker-tag test's narrow fix becomes a steer: "Theo's lines longer and more hedged; leave Dana's." It edits the beat in place, and it outranks everything else the model is given. The lines you wrote yourself survive an Expand: every level keeps them and builds around them. And for the scenes ChatGPT softens, KudoWrite has no content filter of its own; how far they go is your call, within the law.
You get one free credit to try it on a confirmed email, then one-off packs from $3.50 for 100 credits, with no subscription.
The next step
Pick the two characters in your book who sound most alike. Write a voice sheet for each, the way Dana's and Theo's are written above, and run the speaker-tag test on their last conversation. Then put the sheets in their bible entries in KudoWrite and write the next scene they share. Drafting to a November word count? Write the sheets in week one, and check whether the challenges that replaced NaNoWriMo allow AI drafting before you count those words. If the dialogue still sounds machine-made, AI writing that doesn't sound like AI is the editing pass.