Fontlex English

A font that hints at how English words are pronounced, for learners. The text box below holds plain text; the font draws the hints, in any app that renders color fonts. Copy the text and you get the letters you typed.

In words of two or more syllables, the stressed vowel is bold and red and reduced vowels (the schwa of banana) are blue. In any word, silent letters fade. A word whose stress moves between noun and verb (record, present, object) takes its reading from the word before it: the, a, my make it a noun, to, will, we a verb; with neither it shows only what both readings share. An invisible character right after the word, which a tagger can add, overrides that: U+FE00 for the noun, U+FE01 for the verb (in the sample, after new record and then record). The switches above the text turn one kind of hint off; in other apps they are the font's stylistic sets (ss01 silent letters, ss02 reduced vowels, ss03 stress).

Where the hints come from

The pronunciations are the CMU Pronouncing Dictionary's (American English). Each word's spelling is aligned with its sounds, letter groups such as sh, ee and tion's ti taken as one spelling of one sound, so a letter that spells no sound is silent: the k of knife, the gh of night, the b of debt. The font lists the 30,000 most frequent words that the dictionary has, about 96% of running English text; any other word is drawn plain.

How exact it is

TextCheckedDrawn as listed
Listed words, alone, capitalized, in capitals and in sentences; unlisted words170,817100.0%
Lines of this project's English documentation1,294100.0%
This page's sample3100.0%

Each letter's glyph is compared with the lexicon's hint for it, in HarfBuzz (Chrome, Firefox); Core Text (Safari) gives the same results.

How a font does it

Three OpenType passes. Right to left, each word's last letter gets a variant that says so; left to right, its first letter. Then one rule per listed word, matching from a first letter to a last one with case ignored, applies a hint to each marked letter. Words are matched whole, so often inside oftentimes isn't. Hints depend only on the word, so they survive line wrapping, unlike constructs that span words.

Base font: Noto Sans and Noto Sans Bold (SIL Open Font License). Pronunciations: the CMU Pronouncing Dictionary (BSD-style license); word frequencies: wordfreq.