Voice Humanizer: Extract Voice + Humanize Text
Combines the forensic voice extraction from agentic-humanizer with the 28-pattern detection engine from brandonwise/humanizer. Extract once, rewrite forever.
When to use
- User pastes AI-generated text and wants it to sound human
- User wants their writing voice extracted from a sample
- User says "humanize this" or "make this sound like me"
- User wants to rewrite text in a specific saved voice
Step 1: Resolve voice fingerprint
Check if the user specified a voice profile name. If they said "use my email voice"
or "use my prompting style", load the corresponding fingerprint directly from
~/.voice-humanizer/voices/<name>.json. See references/voice-catalog.md for
the current profile inventory.
If no profile name was given, check for a default fingerprint at
~/.voice-humanizer/fingerprint.json.
If neither exists, or the user says "extract my voice" / "new voice sample", run the extraction below.
Extraction
Ask the user:
"Paste 200+ words of your writing and I'll extract your voice fingerprint."
Validate the sample:
- Under 50 words: reject, ask for more
- 50-199 words: warn that 200+ works better, let them continue
- 200+ words: proceed
Run this extraction prompt internally against the sample:
Analyze the writing sample and extract stable style traits. Return JSON only.
Focus on style, not topic. Do not copy private facts, names, or anecdotes.
Prefer observable habits over generic labels. If a trait is not visible,
write "not enough evidence".
Output this exact schema:
{
"voice_summary": "one-line description of the overall voice",
"avg_sentence_length": "N-N words",
"sentence_length_variance": "high|medium|low + one-line note",
"signature_openings": ["phrase1", "phrase2", "phrase3"],
"signature_closings": ["phrase1", "phrase2"],
"function_word_habits": "description of connector/preposition/article patterns",
"punctuation_quirks": "description of punctuation habits",
"register": "casual|casual-professional|professional|academic",
"contraction_use": "high|medium|low",
"hedge_use": "high|medium|low",
"idiom_inventory": ["phrase1", "phrase2", "phrase3"],
"paragraph_rhythm": "description of paragraph structure",
"do_list": ["rule1", "rule2", "rule3"],
"dont_list": ["rule1", "rule2", "rule3"]
}
Show the extracted fingerprint to the user and ask:
"Look right?"
Options: Yes, Edit, Re-extract.
On Yes, save to ~/.voice-humanizer/fingerprint.json and
~/.voice-humanizer/sample.txt.
On Edit, let the user correct fields inline. Validate all required fields are present before saving.
On Re-extract, ask what to change and re-run.
Step 2: Humanize text
When given text to humanize, apply this pipeline:
Phase A: Detect AI patterns
Scan for all 28 AI writing patterns:
Content (1-6): significance inflation, notability name-dropping, superficial -ing analyses, promotional language, vague attributions, formulaic challenges
Language (7-13): AI vocabulary (see Tier 1/2 below), copula avoidance, negative parallelisms, rule of three, synonym cycling, false ranges, em dash overuse
Style (14-19): em dash overuse, boldface overuse, inline-header lists, Title Case headings, emoji overuse, curly quotes
Communication (20-28): chatbot artifacts, cutoff disclaimers, sycophantic tone, filler phrases, excessive hedging, generic conclusions, reasoning chain artifacts, excessive structure, confidence calibration, acknowledgment loops
Tier 1 vocabulary (dead giveaways — never use)
delve, tapestry, vibrant, crucial, comprehensive, meticulous, embark, robust, seamless, groundbreaking, leverage, synergy, transformative, paramount, multifaceted, myriad, cornerstone, reimagine, empower, catalyst, invaluable, bustling, nestled, realm, unpack, deep dive, actionable, impactful, learnings, bandwidth, net-net, value-add, thought leader
Tier 2 vocabulary (suspicious in density)
furthermore, moreover, paradigm, holistic, utilize, facilitate, nuanced, illuminate, encompasses, catalyze, proactive, ubiquitous, quintessential, cadence, best practices
Banned phrases
"In today's digital age", "It is worth noting", "plays a crucial role", "serves as a testament", "in the realm of", "delve into", "harness the power of", "embark on a journey", "without further ado", "let's dive in", "circle back", "key takeaways", "paradigm shift", "move the needle", "low-hanging fruit", "pain points", "double-click on"
Phase B: Strip + inject
- Strip all Tier 1 vocabulary. Replace with plain alternatives.
- Cut banned phrases. Rewrite the surrounding sentence.
- Remove chatbot artifacts. "I hope this helps!", "Great question!", "Let me know if...", "Would you like me to..." — delete entirely.
- Kill generic conclusions. "The future looks bright", "Exciting times lie ahead" — replace with a specific fact, or cut.
- Replace copula avoidance. "Serves as" → "is". "Boasts" → "has".
- Fix negative parallelisms. "Not merely X, but rather Y" → just say Y.
- Kill vague attributions. "Experts believe" → name a specific source or drop the claim.
- Fix filler. "In order to" → "to". "Due to the fact that" → "because". "It is important to note that" → just say the thing.
Phase C: Inject voice (if fingerprint loaded)
Apply these rules from the loaded fingerprint:
- Sentence length: Match
avg_sentence_lengthrange - Rhythm: Match
sentence_length_variancepattern - Openings: Use
signature_openingsto start sentences - Register: Match
registerlevel - Contractions: Match
contraction_uselevel - Hedging: Match
hedge_uselevel - Function words: Match
function_word_habitspatterns - Idioms: Use phrases from
idiom_inventorywhere natural - Paragraph rhythm: Match
paragraph_rhythmstructure - Do/don't: Apply
do_listanddont_listrules
Phase D: Add texture
- Vary sentence rhythm. Short. Then longer ones. Fragment.
- Add an opinion. React to the facts, don't just report them.
- Add a concrete example. Replace one vague claim with something specific (a number, a name, a real scenario).
- Acknowledge complexity. Let some mess in. Perfect structure feels algorithmic.
- Cut all em dashes. Replace with periods, commas, colons, or restructure. This is a hard constraint. Zero em dashes in final output.
- Read aloud test. If anything sounds like a press release, rewrite it.
Phase E: Verify
Before returning the final text, verify:
- Zero Tier 1 vocabulary words
- Zero banned phrases
- Zero em dashes (— or –)
- Zero chatbot artifacts
- No generic conclusions
- Sentence rhythm varies (check: adjacent sentences differ in length)
- At least one concrete specific (number, name, or example)
- At least one opinion (not just neutral reporting)
- Voice fingerprint rules applied (if loaded)
Output format
Present the humanized text followed by a compact change summary:
## Humanized
<text>
## Changes
- Killed N Tier 1/2 vocab words: <examples>
- Stripped N banned phrases: <examples>
- Fixed: <pattern fixes applied>
- Voice match: <which fingerprint rules were applied>
Commands
/voice-humanizer extract— extract voice from a new sample/voice-humanizer show— show the current fingerprint/voice-humanizer reset— delete saved fingerprint and sample/voice-humanizer humanize [text]— humanize text with current fingerprint
Dependencies
None. This is a self-contained LLM skill. No CLI tools, no API keys, no external services required. The extraction runs on the host LLM. The humanization runs on the host LLM using the patterns and fingerprint as constraints.