Poem Analyzer

Paste a poem and the analyzer marks stress over each line's vowels, counts syllables, estimates the dominant meter with breaking feet highlighted, and letters the end-rhyme scheme — distinguishing perfect from slant rhyme. It uses this release's retained CMUdict pronunciations; unknown words are estimated and marked.

Up to 120 lines. Blank lines separate stanzas. The poem is analyzed in memory and never stored.
The share link keeps the poem in the part of the address after “#”, which stays in your browser and is not sent to the server.

About the Poem Analyzer

Scansion is derived from the retained CMUdict pronunciation entries in this data release (v1/2026.07-lexical.6); the primary retained variant of each word supplies its syllable count, stress digits, and rhyme key. CMUdict primarily represents North American English, so a line's marks are one defensible reading, not the only one.

How it works

  1. Each line is split into word tokens; each token's stress digits are placed over its vowel-letter groups when the spelling maps cleanly, otherwise the pattern is shown beside the word.
  2. The dominant meter is the foot (iamb, trochee, anapest, or dactyl) whose repeated pattern best matches the unambiguous stress marks across all lines; feet that contradict it are highlighted as breaking.
  3. End-rhyme letters compare each line's final word by rhyme key: an identical key is a perfect rhyme (uppercase letter); a shared ending with a different vowel — or a shared vowel with a different ending — is a slant rhyme (lowercase letter).
  4. Stanzas are separated by blank lines and each gets its own summary of lines, syllables, local meter, and scheme.

Limits and estimates

  • Words absent from the pronunciation source are marked estimated: syllables come from a documented spelling heuristic (vowel-letter groups, minus a silent final "e", minimum one) and their stress is treated as flexible.
  • One-syllable words are metrically ambiguous in English. The toggle above either keeps them flexible (default) or uses the dictionary stress digit with a small function-word list read as unstressed.
  • Rhyme comparison uses each word's primary retained variant only; alternate pronunciations, eye rhymes, and multi-word rhymes are not considered.
  • Bounds: up to 20,000 characters, 120 lines, 300 characters per line, and 40 analyzed words per line.
  • Your poem is analyzed in memory and never stored; share links keep the text in the URL fragment, which your browser does not send to the server.