Kirshbot: an experiment in AI voice consistency and creative constraints

Kirshbot was a character-bot experiment in measuring speech patterns and using them to evaluate generated dialogue. I wanted to find out whether explicit rules for rhythm, sentence length, and vocabulary could help identify lines that no longer sounded consistent with the character.

Generating a resemblance was only the starting point. The useful result was a profile that gave reviewers specific reasons to accept or reject a line.

What Makes a Voice Recognizable

A recognizable character voice is not just a list of catchphrases.

It is rhythm. Silence. Vocabulary. Sentence length. What the character notices. What they refuse to say. Whether they explain themselves. Whether they decorate a thought or state it directly.

That is why “write this like Character X” usually produces bad results. The model reproduces obvious traits without consistently following the character’s speech patterns.

Real production teams know this already. They use style guides, character bibles, continuity documents, script notes, brand voice systems, approvals, and a lot of human taste. Maintaining a consistent voice requires explicit guidance and review.

Kirshbot became a small, overbuilt way to test those rules and see which parts could be measured.

The experiment’s limits

This was an unofficial, non-commercial experiment using a fictional character as source material. It was not endorsed by the owners, writers, performers, studio, network, or franchise. An analytical experiment does not establish permission to publish or commercially use an imitation.

In professional use, a team would need authorization, clear labeling, and human review of the writing. A voice profile cannot settle questions of rights, likeness, contracts, or licensing.

The Core Experiment

The practical question was narrow:

Can you measure a character’s speech patterns, encode them as constraints, and use those constraints to evaluate whether generated text follows the profile?

The workflow looked like this:

Dialogue Input -> Transcription -> Speech Analysis -> Voice Profile -> Generation -> Validation

Generation is the least trustworthy step in that chain.

The system first analyzed dialogue using transcription and speech-analysis tooling. Then it built a measurable profile: pace, pause frequency, sentence length, reading level, filler rate, repeated structures, and tonal habits. Generated text only mattered if it could pass the validation checks.

What the Analysis Measured

The analysis looked for the unglamorous stuff: average speaking pace, pause patterns, sentence length, reading complexity, filler frequency, repeated structures, tonal tendencies, and common thematic territory.

Those measurements are not “the character.” They are evidence.

A voice profile describes measurable tendencies and known problems, much as a production style guide does. It can specify typical sentence length, pacing, vocabulary, and phrasing to avoid.

Instead of saying, “This doesn’t sound right,” you can say the sentence is too long, the diction is too ornamental, the joke breaks the tone, the thought explains itself too much, or the line sounds like a summary of the character instead of something the character would say.

Define Testable Constraints

The system worked best when it stopped asking for personality and started enforcing limits.

A broad style request might say: “Make it dry, understated, philosophical, and weirdly funny.” Sometimes that works. Usually it works once, then drifts.

Specific checks made the results easier to evaluate.

For this project, generated lines were checked against a profile before they could be considered successful. If the output wandered outside the voice profile, it failed. That means a short, boring line could be more successful than a clever one.

This is also how real creative systems work. A brand voice guide does not exist to maximize cleverness. A character bible does not exist so every writer can show off. Continuity notes do not exist because everyone loves paperwork.

They help writers maintain consistency across drafts and episodes.

What the measurements cannot establish

A line can match the measured profile and still be poor writing. It may contradict continuity, miss the purpose of a scene, or imitate familiar traits without giving the character anything appropriate to say.

A reviewer still needs to assess those qualities. The same method could help with brand voice, game dialogue, or support messages, but each would need its own source material, constraints, and approval process.

A Reusable Review Process

The useful pattern is simple:

Source Material -> Voice Guide -> Measurable Constraints -> Draft Output -> Review -> Approval

AI can help extract patterns, summarize tonal rules, identify contradictions, flag off-brand drafts, compare alternate phrasings, and maintain continuity across a large pile of material.

A person still needs to assess the writing and confirm permission for its intended use.

What I’d Build Next

I would develop this into an internal tool for reviewing voice consistency.

Something a creative team could use internally to ask:

  • Does this line match the established voice?
  • Does this scene violate the character bible?
  • Did the tone drift between drafts?
  • Are these marketing blurbs still on-brand?
  • Which approval notes keep recurring?
  • Where does the system need a clearer rule?

What the Experiment Showed Me

The useful result was a set of explicit constraints. They gave the generator guidance and reviewers concrete reasons to accept or reject a line.

That does not make measured similarity the same as good writing. It gives a creative team another way to detect inconsistency before approving a draft.