Web Speech API · multi-voice · rate & pitch control

Markdown Text to Speech

Strips code blocks, URLs, and inline formatting, then narrates the prose with your browser's built-in voices.

Markdown → Speech
Source
126 B
5 lines
Speakable
124 B
after strip
Voices
0
available
Status
idle
1.0× rate
VoiceRate 1.0Pitch 1.0
input · markdown
speakable · stripped text
Welcome This is a Markdown text-to-speech reader. It strips code blocks, URLs, and inline formatting before reading aloud.
Quick Start

How to listen to Markdown

The Web Speech API runs locally — pick a voice, tune rate and pitch, and press Play.

  1. 01

    Paste Markdown

    Code fences, image links, and inline formatting are stripped automatically.

    Parsing runs through marked with GFM extensions enabled — tables, task lists, strikethrough, and fenced code blocks all match GitHub’s rendering.

    inputGFMmarkedCommonMarklive
    src · markdownmd · GFM
    # Welcome
    Text here.
    loaded · GFMGFM · ready
  2. 02

    Pick a voice

    Browser-installed voices appear in the dropdown. Languages vary by OS.

    Soft-break behaviour is configurable: by default a single newline becomes a space (CommonMark), toggle on for chat-style <br> insertion.

    voicesoft-breaksoptionsconfiglive
    voice · optionsen-US · live
    Samantha · en-US
    options applied · livelive
  3. 03

    Tune rate & pitch

    0.5×–2× rate; 0–2 pitch. Default 1× is natural speed.

    The preview is scoped under a .mde class so its CSS doesn’t bleed into the rest of the page. Output HTML is whitespace-controlled for clean diffs.

    tunepreviewscoped CSSrenderstable
    rate · rendered1.0× · ready
    rate 1.0 · pitch 1.0
    rendered · liverendered
  4. 04

    Play / Stop

    Press Play. The same button stops playback once started.

    Export covers both raw Markdown and rendered HTML; downloads stream as text/markdown or text/html via Blob + object URL.

    playclipboard.md.htmlblob
    ✓ · exportedlive · done
    ▶ playing…
    audio · ready to shipsuccess
Pro tips

Author Markdown that renders everywhere

GFM is the safe default

GitHub-Flavored Markdown is the de-facto baseline (tables, task lists, strikethrough). CommonMark is stricter but ubiquitous as a fallback.

Soft-break behaviour varies

A single newline is a space in CommonMark, a <br> in GFM. Toggle soft breaks when source matters.

Escape inside code fences

Backticks inside fenced blocks need a longer fence — three becomes four. Use ~~~ if your content has many backticks.

Anchors are slugified

GitHub lowercases, strips punctuation, and joins with hyphens. Duplicate headings get -1, -2 suffixes.

Tables need a header row

The dash row sets alignment (:---, :-:, ---:). Use Table Aligner for diff-friendly columns.

Front matter is YAML

Triple-dash blocks at the top of files are parsed by static-site generators. Use the Front-Matter Validator to catch syntax errors.

Use Cases

When to narrate Markdown

Accessibility, review, learning.

Accessibility

Screen-reader-style preview for docs. Render path uses marked with GFM extensions enabled (tables, task lists, strikethrough, autolinks), so what you preview matches what GitHub publishes bit-for-bit. Soft-break behaviour is configurable for chat-style vs prose Markdown.

a11y

Proofread by ear

Catch awkward phrasing you miss reading. Pairs cleanly with the Markdown Cheatsheet for syntax you can't quite remember — callout blocks, footnotes, definition lists. Output stays diff-friendly so style-only changes don't drown out real edits in PRs.

GitHub-perfect

Hands-free review

Listen to docs while doing other work. Cross-platform safe: anchors, code fences, and tables behave identically on GitHub, GitLab, Bitbucket, and Gitea. Heading-anchor slugs follow GitHub's lowercase-and-hyphenate rules so deep links survive a docs migration.

diff-friendly

Language practice

Hear non-native pronunciation of text. No server roundtrip — perfect for proprietary content you can't paste into a public tool. The full marked + GFM bundle ships with the page, so it works offline once loaded.

render-stable

RFC walkthrough

Play back design docs in meetings. Front matter (YAML / TOML / JSON) passes through unchanged so static-site pipelines (Jekyll, Hugo, Astro, Eleventy) read it correctly. Pair with the Front-Matter Validator to catch syntax errors before deploy.

cross-platform

Dyslexia support

Hearing alongside reading aids comprehension. Output is reproducible: identical input always produces identical Markdown, so doc-generation scripts can rely on it for snapshot tests and embedded into release workflows.

SEO-friendly
FAQ

Frequently asked questions

Voices come from your OS. Install more via Settings → Speech (macOS / Windows / Linux).
Code blocks and inline code make poor audio. They're stripped along with URLs and image syntax.
Not from this tool — the Web Speech API doesn't expose audio buffers. Use a dedicated TTS service for files.
Yes, if you pick a 'local' voice (marked in the dropdown). Cloud voices need a connection.
No — speech synthesis runs locally via the Web Speech API in your browser.
Suggest a tool

Something missing?

Tell us what you need. We ship the top requests every two weeks.

Sent straight to the maintainers · no account needed
47 in queue·8 shipped this month
Request queued. Thanks!