Skip to content
Sealis
Sealis
Report 2026-0122 min read

Can a model sound like you without changing what you said?

Four language models, one unchanged rewrite pipeline, two tests. The first test flattered the models that rewrite most; the second, on realistic AI-written drafts, shows which ones keep your content, and how far voice matching still has to go. Numbers, charts, errors and the checks that changed our mind.

Summary

Sealis rewrites a draft so that it sounds like one specific person wrote it, without changing what the draft says. We tested that claim on four language models, running each through the same rewrite pipeline with hidden reasoning switched off. The first test used public-domain letters. The second used realistic AI-written drafts. The second test exists because the first one flattered some of the models.

4models, one unchanged pipeline
664rewrites in the two tests reported here
0 of 122hard facts lost in the fact-dense test, by any model
≤11%of the way to the target voice: the most any model moved a rewrite of an AI draft
  1. On letters, two models scored well ahead. Voice gain, the share of the way from generic text to the writer’s real passage, was 104% for gemini-3.6-flash and 95% for deepseek-v4-pro, against 73% for gpt-6-luna and 38% for kimi-k2.6.
  2. Much of that lead tracks how much of the text a model rewrites. Models that changed about a third of the input’s vocabulary scored highest. After allowing for that, every model’s difference from the four-model average falls within noise: each range includes zero.
  3. Some of the lead is recall, not style. The strongest scorers reproduced exact phrases from letters they were never shown, because those letters are public and have been read before.
  4. On AI-written drafts, naming the stock phrases in the prompt helped all four models. The share of rewrites that kept the length, kept every point and removed the machine phrasing rose for every model, most for gpt-6-luna (73% to 94%).
  5. Matching a voice is the unsolved part. On real drafts no model moved a rewrite more than 11% of the way to the target voice, even with the improved prompt. We say this plainly because the first test would have let us claim otherwise.

The question and how we tested it

The pipeline is the one Sealis ships. It builds a prompt from a person’s writing samples and the measured habits in them, asks a model to rewrite the draft, checks that numbers, dates and names survived, reads the result against the draft for dropped or invented content, and retries once if either check fails. We changed nothing in it for the first test. Only the model behind it changed.

The models were gemini-3.6-flash on Google Vertex AI, and gpt-6-luna, kimi-k2.6 and deepseek-v4-pro on Azure AI Foundry. Where a model reasons before answering we turned that off with its own setting: thinkingLevel: minimal for gemini-3.6-flash and reasoning_effort: none for gpt-6-luna and kimi-k2.6. In a probe, kimi-k2.6 used about 409 tokens on a one-line answer with reasoning on and 26 with it off. We wanted the comparison to be about the writing, not about who thinks longest.

One model run and left out. We also ran gemini-3.1-flash-lite, the smaller Google model Sealis used when we began. It is a lite-tier model, a different size class from the four above, so ranking it alongside them would say little about the models themselves. It is excluded from every comparison and figure here. It was the comparator for our pre-registered bar (below), which is why that bar is described the way it is. Its results are available on request.

Before the full runs we wrote down a pass bar in advance: a model beats that smaller model only if its voice gain is at least 8 points higher, the paired difference is more than two standard errors, facts kept are within 2 points, failures are 2% or fewer, and it copies no more from the writer’s samples. Read literally, no model cleared it, for a reason we explain below. We kept the bar and added a dated note instead of editing it.

Test 1: public-domain letters

Method. We built passages of 700 to 1,600 characters from the letters and prose of nine writers in Project Gutenberg texts[4]. Six are real personal or published letters. The other three are not: Webster’s are the letters of a character in a novel, Lorimer’s are fictional, and Jerome’s are essays. Each writer has 12 sample passages and 4 held-out passages. A model flattened each held-out passage into generic assistant English, and that cached text, identical for every model, is what the pipeline received. The pipeline rewrote it using only the writer’s 12 samples, and we scored the output against the passage the writer really wrote. One passage was refused by the flattening model, which left 35 per run. Each model ran twice.

Scoring. Voice gain is how far the output moved from the generic text towards the real passage, using Cosine Delta over function-word rates, punctuation and sentence rhythm[1][2]. 0% is no movement and 100% is as close to the writer’s profile as the real passage itself. Right author is whether the output sits closer to this writer’s profile than to any of the other eight. As an independent check we also classified every output with a character four-gram model[3], which uses different features. Hard facts (numbers, dates, names, codes) are checked by code.

0%20%40%60%80%100%120%a real passage = 100%gemini-3.6-flash104%deepseek-v4-pro95%gpt-6-luna73%kimi-k2.638%Voice gain: share of the way from the generic text to the real passage

pooled over both runs each run

Data table
Voice gain by model
ModelRun ARun BPooled
gemini-3.6-flash105.6%102.6%104.1%
deepseek-v4-pro104.9%84.7%94.8%
gpt-6-luna72.1%73.1%72.6%
kimi-k2.644.4%30.8%37.6%
Fig. 1Voice gain by model, pooled over two runs of 35 passages (n = 70 each). The small circles are the individual runs, the dashed line is a real passage. Two runs of the same model differed by 1 to 20 points, which is the noise in every figure that follows.
ModelRight author (main score)Right author (character check)Hard facts kept
gemini-3.6-flash77.1%82.9%100%
gpt-6-luna70%80%100%
kimi-k2.662.9%70%100%
deepseek-v4-pro80%81.4%99.8%
Generic input (no rewrite)33.3%62.9%-
Real passages-88.6%-

Facts held up everywhere. On a separate test of 12 fact-dense messages (invoices, travel, meeting notes) rewritten in strong period voices, every model kept all 122 hard facts and invented none. (The voice test did flag 2 to 4 “invented” facts out of 70 for three of the models. Every one was a single capitalised ordinary word, such as “Labour” or “Honour”, in the FitzGerald passages. FitzGerald capitalised his nouns, and our checker reads a capitalised word as a possible name. These are the models copying his habit, not inventing numbers or names, but by the letter of our bar they are failures, which is why we say no model cleared it.) The independent character check agreed that kimi-k2.6 was lowest and that the other three were close together. On this evidence two models score highest on voice, and all four are safe with facts.

That is not the end of it. Three checks changed how we read it.

Why the first result overstates

These are the checks, in the order we ran them. Each one weakens a different part of the headline in Figure 1.

Bolder rewrites score higher

We measured how much of each input’s vocabulary (words of five letters or more) survived in the output. The models that scored highest changed the most. Across all 280 rewrites, the more vocabulary changed, the higher the voice gain (correlation 0.33), at roughly 18 points for every additional 10% changed.

60%70%80%90%100%20%40%60%80%100%120%trend across the fourgemini-3.6-flashgpt-6-lunakimi-k2.6deepseek-v4-proShare of the input's vocabulary kept, to the right means a lighter touchVoice gain
Data table
Vocabulary kept and voice gain
ModelVocabulary keptVoice gain
gemini-3.6-flash69%104.1%
gpt-6-luna74.5%72.6%
kimi-k2.694.8%37.6%
deepseek-v4-pro67.4%94.8%
Fig. 2Voice gain against the share of the input’s vocabulary kept, one point per model. Orange is gemini-3.6-flash, blue is gpt-6-luna and the hollow points are the other two. The dashed line is a straight-line fit through the four and is a guide to the eye, not a result.

We then estimated each model’s difference from the average of the four after allowing for how much it rewrote, and again after also allowing for recalled phrases (below), with intervals from resampling the nine writers, since passages by one writer are not independent.

Raw difference-40-2002040+27−5−40+18Allowing for howmuch was rewritten-40-2002040+16−8−12+4…and forrecalled phrases-40-2002040+16−8−10+2gemini-3.6-flashgpt-6-lunakimi-k2.6deepseek-v4-proPoints of voice gain above or below the four-model average, with 95% interval
Data table
Difference from the average of the four models
ModelRaw differenceAllowing for how much was rewritten…and for recalled phrases
gemini-3.6-flash+27 [+3, +56]+16 [−7, +40]+16 [−9, +37]
gpt-6-luna−5 [−14, +4]−8 [−19, +1]−8 [−17, +4]
kimi-k2.6−40 [−63, −24]−12 [−44, +27]−10 [−32, +13]
deepseek-v4-pro+18 [+9, +26]+4 [−23, +23]+2 [−18, +20]
Fig. 3Each model’s difference from the average of the four, in points of voice gain, with 95% intervals from resampling the nine writers. Raw, kimi-k2.6 sits clearly below the average and deepseek-v4-pro above it. Once rewriting is allowed for, every interval includes zero.

Some models remember the letters

These letters are public and widely copied, so a model may have read them. We counted five-word phrases from the real passage that appeared in a model’s output but not in the generic input it was given. Such a phrase can only come from the writer’s style or from memory, and in most cases it is memory.

0.02.55.07.510gemini-3.6-flash4.4gpt-6-luna6.1kimi-k2.61.9deepseek-v4-pro7.9Percent of output phrases recalled from the real passage
Data table
Percent of output phrases recalled from the real passage
MeasureOutput phrases recalled from the real passage
gemini-3.6-flash4.4
gpt-6-luna6.1
kimi-k2.61.9
deepseek-v4-pro7.9
Fig. 4Recalled phrases by model, over 70 rewrites each. The share of rewrites with at least one recalled phrase ran from 43 of 70 for kimi-k2.6 to 67 of 70 for gpt-6-luna. The worst single rewrite reached 21.1%.

Generic input given to the model: “…the sudden illness of Mr. Wither, who was seized that morning in Winchester with a recurrence of his previous alarming condition.”

Output of gemini-3.6-flash: “…who was seized at Winchester that morning with a return of his former alarming complaint. An express was sent from thence to the family…”

The writer’s actual sentence (Jane Austen, letter): “…who was seized that morning at Winchester with a return of his former alarming complaint. An express was sent off from thence to the family…”

The model was not shown the third passage. It still produced “a return of his former alarming complaint” and “from thence”, which the generic input did not contain. The recall effect is a property of this test, and it will not help a model on a customer’s private writing. That is also why the first test cannot be used to estimate how any of these models would do on someone’s own emails.

A score over 100% is not a ceiling

Two models scored above 100%, meaning the output was closer to the writer’s overall profile than the writer’s own passage. We first suspected that models exaggerate the writer’s habits. We tested that: for seven style features, from sentence length to semicolons, every model moved less than the real passage did (the highest ratio was 0.87). The better explanation is that one real passage is a noisy sample of a writer, while an output built from twelve samples can land closer to the average than any single passage does. 100% is a reference point, not a limit.

The gains are uneven across writers

What a realpassage movesgemini-3.6-flashgpt-6-lunakimi-k2.6deepseek-v4-proLorimer25.635.021.011.524.8Webster17.419.59.99.012.2Keats12.64.16.42.69.1FitzGerald10.76.86.73.08.9Twain8.01.60.40.85.4Chesterfield6.713.310.37.511.0Stewart2.05.84.40.23.8Austen1.50.51.1−2.72.0Jerome1.53.51.71.13.4
Data table
Distance moved towards each writer
WriterReal passagegemini-3.6-flashgpt-6-lunakimi-k2.6deepseek-v4-pro
Lorimer25.635.021.011.524.8
Webster17.419.59.99.012.2
Keats12.64.16.42.69.1
FitzGerald10.76.86.73.08.9
Twain8.01.60.40.85.4
Chesterfield6.713.310.37.511.0
Stewart2.05.84.40.23.8
Austen1.50.51.1-2.72.0
Jerome1.53.51.71.13.4
Fig. 5Distance each model moved a rewrite towards each writer’s style, in hundredths of a Cosine Delta unit, averaged over both runs. The first column is how far a real passage moves from the generic text. Dashed grey cells moved the wrong way or not at all.

Three writers (Austen, Jerome and Stewart) have almost nothing between the generic text and the real passage: about 1.5 to 2 units, against 25.6 for Lorimer. On those writers a ratio score swings wildly. Scaled by each writer’s own gap, scores ran from −183% to +290%. This is why Figure 5 shows plain distance. It also means a handful of writers drive any pooled average.

Test 2: real AI-written drafts

Why a second test. The first test’s inputs were passages flattened by a model, which is plain text and not the stock-phrase prose Sealis exists to fix. A model that changes little can do well there. So we built the test around the actual job.

Method. We took 12 of the 30 everyday writing tasks that Sealis Labs uses (a cover letter opening, an invoice reminder, a complaint reply and so on) and had two models write a draft of 130 to 170 words for each, with no persona, the way a person would use an assistant. Six drafts were used to choose a prompt change. Six more were set aside and run once. Each draft was rewritten in four voices: Webster, Twain, and two real email writers from the Enron corpus[5], whose texts we use only as samples and do not publish. That makes 48 rewrites per row after pooling.

What counts as a pass. All of these, fixed before the results: the length is 85 to 120% of the draft; at least 85% of the draft’s sentences have a matching sentence in the rewrite by meaning (sentence embeddings, cosine similarity of 0.75 or more)[6]; at least 75% of the stock phrases the Score engine flags in the draft[7] are gone; no hard fact is lost; and, for the last line of each table, the output is classified as the intended voice. We report the first four together as keeps the content and removes the slop.

Calibrating the voice test. We tested the two voice classifiers on real held-out text from the same four voices, cut to 150 words. The character model identified the right voice 93% of the time and Cosine Delta 68% (chance is 25%). So Delta is a rough instrument on short texts and differences under about 10 points should be treated as noise. We use Delta for voice because it does not depend on the topic words.

The prompt change. Three edits to the rewrite prompt: a word range around the draft’s length, an instruction that every point the text makes must survive, and the exact stock phrases the Score engine flagged in that draft, named so the model does not repeat them.

Current prompt Prompt names the stock phrases

0%20%40%60%80%100%gpt-6-luna73% → 94%kimi-k2.658% → 71%gemini-3.6-flash48% → 69%deepseek-v4-pro56% → 67%Rewrites that kept the length, kept every point, removed the slop and lost no fact
Data table
Rewrites that kept the length, kept every point, removed the slop and lost no fact
ModelCurrent promptPrompt names the stock phrases
gpt-6-luna73%94%
kimi-k2.658%71%
gemini-3.6-flash48%69%
deepseek-v4-pro56%67%
Fig. 6Share of rewrites that kept the content and removed the machine phrasing, before and after the prompt change, 48 rewrites per row (six dev drafts and six hold-out drafts, four voices). The change raised the figure for all four models. Individual differences of 10 points or less are within noise; the same direction across four models and two draft sets is the evidence.
Test 2 results with the new prompt
Model (new prompt)Length in bandPoints keptSlop clearedFacts keptContent + slopVoiceAll
gemini-3.6-flash81%98%95%94%69%60%44%
gpt-6-luna98%99%96%100%94%48%46%
kimi-k2.694%99%83%100%71%42%25%
deepseek-v4-pro75%98%93%98%67%48%29%

Current prompt Prompt names the stock phrases

0%20%40%60%80%100%gpt-6-luna33% → 46%gemini-3.6-flash27% → 44%deepseek-v4-pro13% → 29%kimi-k2.617% → 25%Rewrites that met every check, including landing in the intended voice
Data table
Rewrites that met every check, including landing in the intended voice
ModelCurrent promptPrompt names the stock phrases
gpt-6-luna33%46%
gemini-3.6-flash27%44%
deepseek-v4-pro13%29%
kimi-k2.617%25%
Fig. 7Share of rewrites that passed every check, including being classified as the intended voice.

What the second test shows:

  • gpt-6-luna kept the content best. With the new prompt it kept the length in 98% of rewrites, kept 99% of points, cleared 96% of stock phrases, lost no facts, and met all four content checks together 94% of the time.
  • gemini-3.6-flash matched voice best (60% classified as the intended voice, against 48% for gpt-6-luna) but lost a hard fact in about 6% of rewrites.
  • Nobody moved the voice far. With the new prompt, rewrites travelled between 5% and 11% of the way to the target voice. Twain and the first email voice were hardest for every model.

Dev and hold-out agreed on the direction. They did not agree everywhere: the prompt’s effect on slop for gpt-6-luna was large on the dev drafts (76% to 100%) and absent on the hold-out drafts (96% to 92%), which had less machine phrasing to remove. We report the pooled figure and not the better of the two.

A heavily padded draft

The benchmark drafts had a handful of flagged phrases each. A real cover letter can have far more. One we tried had 24 phrases flagged by the Score engine (“I hope this email finds you well”, “esteemed organization”, “a testament to”, “at your earliest convenience”) and a Score of 21 out of 100.

With the new prompt alone, gpt-6-luna still repeated 7 of them and left the Score essentially unchanged. We then added a check to the pipeline: after the first draft, count the stock phrases that survived, and if more than a quarter did, or the length is outside 85 to 120%, retry once with a note naming exactly what is wrong. Across four voices, surviving phrases fell to 0 to 5 and length landed at 0.73 to 0.85 of the draft, but the Score after rewriting varied widely, from 10 to 88 between voices and runs. One retry gets part of the way. It is not a fix for the heaviest slop, and the benchmark’s lighter drafts would have hidden that.

Cost and speed

Cost per rewrite uses the tokens we measured per rewrite in Test 1 and list prices read on 20 October 2026 from third-party price listings[8], converted at US$1 = A$1.5. These are estimates, not invoices. Prices change, and gemini-3.6-flash is listed as doubling on 1 January 2027. The shipped pipeline with the new prompt uses a longer prompt and sometimes an extra call, so expect 30 to 60% more.

Estimated cost and speed per rewrite
ModelUS$ per million tokens (in / out)Tokens per rewrite (in / out)Est. cost per rewrite (A$)Seconds per rewrite
gpt-6-luna0.1 / 0.57,959 / 3810.00155.7
gemini-3.6-flash0.75 / 3.7511,044 / 5470.015513.0
kimi-k2.61.045 / 4.410,189 / 7320.020811.9
deepseek-v4-pro1.74 / 3.489,423 / 5170.027310.3

At these prices no model costs more than about 3 cents a rewrite, and the dearest is about 18 times the cheapest. For a service charging a monthly fee that gap matters less than the quality differences above.

Limitations

  • Memorisation. Test 1 uses public-domain letters that models have probably seen. It cannot tell us how a model would do on a person’s own writing.
  • Old writers, short passages, not all real letters. The writers are from the 18th to the 20th century, and three of the nine are fiction or essays (see the method). Passages are 700 to 1,600 characters. Modern email and social posts may behave differently.
  • Small samples. Test 1 has 35 passages per run and nine writers. Test 2 has 48 rewrites per row from 12 drafts and four voices. Differences under about 10 points are within noise.
  • The voice measures are rough. Cosine Delta identified real 150-word passages only 68% of the time, and the character classifier can lean on topic words.
  • The score rewards change. Voice gain rises with how much a model rewrites. We could not fully separate that from better writing.
  • No human readers. Every score is computed by code. Nobody rated these rewrites blind, and that is the next test we owe.
  • One prompt family, thinking off. Results may differ with reasoning on or a different prompt. The embedding threshold (0.75) was set in advance and not calibrated.
  • The drafts are short and come from two generators. Real slop is longer and more varied.
  • Four models, one left out. The smaller Google model we also ran is excluded as a different size class. Models of a similar size from other providers were not tested.
  • Versions and dates. Results are for these model versions on 13 to 20 October 2026. Prices are third-party listings.
  • Not tested. We did not test Anthropic models, because we had no API access to run them under the same conditions.

Reproducing this

Every figure has its numbers in the data table beneath it. The saved model outputs contain third-party text and are not published. We will share the aggregated results with researchers who ask at info@sealis.tech.

References

  1. Burrows, J. (2002). “Delta”: a measure of stylistic difference and a guide to likely authorship. Literary and Linguistic Computing, 17(3), 267–287.
  2. Evert, S., Proisl, T., Jannidis, F., Reger, I., Pielström, S., Schöch, C., & Vitt, T. (2017). Understanding and explaining Delta measures for authorship attribution. Digital Scholarship in the Humanities, 32(suppl_2), ii4–ii16. doi:10.1093/llc/fqx023.
  3. Stamatatos, E. (2009). A survey of modern authorship attribution methods. Journal of the American Society for Information Science and Technology, 60(3), 538–556. doi:10.1002/asi.21001.
  4. Project Gutenberg (gutenberg.org), accessed September 2026 and checked against the site on 20 October 2026: #16623 Elinore Pruitt Stewart, Letters of a Woman Homesteader (Stewart); #157 Jean Webster, Daddy-Long-Legs (Webster); #21959 George Horace Lorimer, Letters from a Self-Made Merchant to His Son (Lorimer); #3361 Lord Chesterfield, Letters to His Son (Chesterfield); #60433 John Keats, Letters of John Keats to Fanny Brawne (Keats); #3194 Mark Twain, Mark Twain’s Letters, vol. 2 (Twain); #42078 The Letters of Jane Austen (Austen); #20539 Letters of Edward FitzGerald, vol. 2 (FitzGerald); #849 Jerome K. Jerome, The Idle Thoughts of an Idle Fellow (Jerome).
  5. Klimt, B., & Yang, Y. (2004). The Enron corpus: a new dataset for email classification research. Machine Learning: ECML 2004, 217–226. doi:10.1007/978-3-540-30115-8_22. Two senders’ emails were used as voice samples in Test 2 and are not republished.
  6. Google Cloud. Text embeddings API, model text-embedding-005, Vertex AI documentation. Accessed 20 October 2026.
  7. Sealis Labs (2026). How Score works. The stock-phrase list and weights are read from the engine itself.
  8. Model price listings, read 20 October 2026: azurespeed.com, GPT-6 Luna; azurespeed.com, Kimi K2.6; futureagi.com, DeepSeek V4 Pro on Azure AI Foundry; Google Cloud, Vertex AI generative AI pricing. These are third-party aggregators or snapshots, not invoices.

Cite this

Sealis Labs (2026). Can a model sound like you without changing what you said?. Report 2026-01, 20 October 2026. https://sealis.tech/labs/voice-transfer-report