Skip to content
100% local

TTS sanitizer

Clean raw text so it reads naturally through a text-to-speech engine.

Input

TTS sanitizer

Text written for a screen carries things a text-to-speech engine reads out loud that a human would silently skip: asterisks around a bold word, a hash mark before a heading, a long URL spelled out letter by letter, an emoji announced as "grinning face". This tool strips all of that so a script, article or chat message plays back as clean speech instead of a garbled string of symbol names.

Four options cover the usual sources of noise, all on by default. Strip markdown syntax removes formatting characters from bold, italic, code and strikethrough text, drops leading blockquote and list markers, and turns a markdown link into just its visible text — the words survive, only the syntax goes. Strip emoji removes pictographs using the same Unicode matching a browser uses to render them, so a thumbs-up or a flag isn't read out as a string of code points. Strip URLs deletes http, https and www links entirely rather than spelling a domain out letter by letter. Collapse repeated punctuation turns a run like "!!!" or "???" into a single mark, since most engines treat one exclamation point as emphasis and three as three separate pauses.

Whitespace is always tidied, regardless of which options are on: runs of spaces collapse to one, trailing spaces disappear from line ends, and stacks of blank lines shrink to a single blank line — pacing stays natural whether the source is a blog draft, a notes-app export or a pasted chat log.

Built for anyone prepping text for a voice: podcast scripts, video narration, accessibility read-alouds, IVR prompts, or testing how a paragraph sounds. Paste the text, watch the live count of characters removed, and copy or download the result. Everything runs locally in your browser — nothing you paste is uploaded or stored anywhere.

FAQ

Will this remove markdown formatting completely?
It removes the syntax characters (asterisks, underscores, hashes, backticks, tildes, blockquote and list markers) and converts links to their visible text, while keeping every word intact — so "**important**" becomes "important" instead of vanishing.
Does it catch every kind of emoji?
It matches the standard Unicode pictographic property that covers faces, objects, symbols and multi-part emoji joined with a zero-width joiner, such as family or profession emoji, so those disappear as a whole rather than leaving stray fragments.
What happens to plain text links, not markdown links?
Any http://, https:// or www. address is removed entirely, whether or not it was wrapped in markdown link syntax — the URL just disappears from the reading.
Why collapse "!!!" to a single "!"?
Most text-to-speech engines read repeated punctuation as repeated pauses or emphasis rather than skipping the extras, so "!!!" can sound like three short beats instead of one. Collapsing it to a single mark keeps the pacing natural.
Is my text uploaded anywhere?
No — it never leaves your browser; everything runs locally on your device.