Loading…
Estimate reading and speaking time from text with adjustable words-per-minute rates. Includes word, character, sentence, and paragraph counts.
Reading Time Estimator is loading — interactive editor will appear here. Use examples below to try instantly once loaded.
Press ? for keyboard shortcuts
Estimates how long a piece of text takes to read silently or speak aloud. Counts words, characters, sentences, and paragraphs, then converts the word count into time using adjustable words-per-minute rates (defaults: 238 wpm silent reading, 145 wpm speaking).
Writers, bloggers, and presenters need realistic length targets. 'X min read' labels on articles and talk timings for presentations both come from words-per-minute estimates — this tool makes the numbers explicit instead of guessing.
This tool is part of the DevStackIO platform — a collection of free online developer tools from DevStackIO. Browse more free developer resources on DevStackIO.
Bloggers adding read-time labels, speakers timing a talk or podcast script, students checking essay length, and editors trimming content to a time budget.
Paste or type your text into the input area
Adjust reading and speaking words-per-minute if needed
Read the estimated silent-reading and speaking times
Use the word, sentence, and paragraph counts as writing stats
A 1,500-word blog post → about 6 min 18 sec at 238 wpmA 1,300-word speech → about 9 min at 145 wpm speaking speedQ: Where does 238 wpm come from?
A: It's the average silent reading rate for adults from Brysbaert's 2019 meta-analysis (Journal of Memory and Language).
Q: Does it handle non-English text?
A: Words are counted by Unicode letter/digit classes, so most scripts work; scripts without spaces (e.g. Japanese, Chinese) count whole runs between whitespace.
Q: Is my text uploaded? A: No
everything runs in your browser; nothing leaves your device.
Authoritative specifications, standards, and in-depth reading for Reading Time Estimator.
Reading time
7 sec
Speaking time
11 sec
Defaults: 238 wpm silent reading (Brysbaert 2019 meta-analysis) and 145 wpm speaking. 100% client-side.
Count words, characters, and sentences. Get reading time and Flesch score as you type.
Count characters, words, lines, and bytes. Use for quick length checks; for full stats use word-counter. Input: text ≤10MB. Returns counts. 100% client-side.
Sort lines alphabetically and remove duplicates. Use when cleaning lists; for comparing two texts use text-diff-visual. Input: text lines ≤10MB. Returns sorted unique lines. 100% client-side.
Preview rendered Markdown without editing. Use for quick read-only preview; for editing use markdown-editor, for HTML output copy use markdown-to-html. Input: Markdown ≤10MB. Returns rendered HTML preview. 100% client-side.
Generate URL slugs from titles with lowercase rules. Use as default slug tool; slugify-string is a noindex alias. Input: text ≤10MB. Returns slug string. 100% client-side.
Visual side-by-side diff for two texts with char-level highlights. Use as default diff tool; for similarity score use string-comparison, for JSON use json-diff. Input: two texts ≤10MB. Returns visual diff. 100% client-side.
Obfuscate strings with masking and reversible transforms. Use when hiding PII in demos; for hashing use hash-generator. Input: text ≤10MB. Returns obfuscated text. 100% client-side.
Search and copy emoji with keywords. Use when inserting emoji; for ASCII art use ascii-art. Input: search text. Returns emoji to copy. 100% client-side.