French: spelling → sound
French spelling is historical but rule-governed: most of it can be reverse-engineered once you accept three big ideas. (1) Final consonants are usually silent — except c, r, f, l ('CaReFuL') — and a final e is mute but makes the consonant before it sound. (2) A vowel + n/m in the same syllable is a NASAL vowel (an/en → /ɑ̃/, on → /ɔ̃/, in/ain/ein → /ɛ̃/, un → /œ̃/); write a vowel or another n/m right after and it turns back into an ordinary vowel + consonant. (3) Vowel digraphs are fixed: ou /u/, oi /wa/, au/eau /o/, ai/ei /ɛ/, eu /ø~œ/, u /y/. Stress is always on the last pronounced syllable. Liaison (sounding a silent final before a vowel) is not modelled by the tracer.
Trace a word
Every box is one rule firing. Hover a box (or open the table) to see why. Rules are applied in order, first match wins — that order is the spelling system.
Consonants & glides
| IPA | Spelled | Example |
|---|---|---|
| p | p, pp | pain pɛ̃ bread |
| b | b | bon bɔ̃ good |
| t | t, tt, th | table tabl table |
| d | d | deux dø two |
| k | c (a,o,u), qu, k, ch (Greek words) | quand kɑ̃ when |
| ɡ | g (a,o,u), gu (e,i) | gare ɡaʁ station |
| m | m | maison mɛzɔ̃ house |
| n | n | nuit nɥi night |
| ɲ | gn | montagne mɔ̃taɲ mountain |
| f | f, ph | fleur flœʁ flower |
| v | v, w (wagon) | vin vɛ̃ wine |
| s | s, ss, c (e,i), ç, t (-tion) | sel sɛl salt |
| z | z, s between vowels | cuisine kɥizin kitchen — Single s between vowels is /z/: poisson /s/ vs poison /z/. |
| ʃ | ch | chat ʃa cat |
| ʒ | j, g (e,i), ge (a,o) | jour ʒuʁ day |
| ʁ | r, rr | rue ʁy street — Uvular — at the back, like a light gargle. Never rolled at the tip. |
| l | l, ll | lit li bed |
| j | i+vowel, y, il(l) after vowel, -ille | fille fij girl — Exceptions: ville, mille, tranquille keep /l/. |
| w | ou+vowel, oi = /wa/ | oui wi yes |
| ɥ | u+vowel | huit ɥit eight — Say /y/ and glide into the next vowel. nuit, lui, pluie. |
Vowels
| IPA | Spelled | Example |
|---|---|---|
| a | a, à | chat ʃa cat |
| ɑ | â | pâte pɑt dough — Merging with /a/ for most younger speakers. |
| e | é, -er, -ez, es (les, des) | été ete summer |
| ɛ | è, ê, ai, ei, e + consonant | mère mɛʁ mother |
| i | i, î, y | lit li bed |
| y | u, û | tu ty you — Round your lips for /u/, say /i/. NOT English 'oo'. |
| ø | eu, œu (open syllable) | peu pø little |
| œ | eu, œu (closed syllable) | peur pœʁ fear |
| ə | e (open syllable) | petit pəti small — Often dropped in fast speech: p'tit. |
| o | o (final), ô, au, eau | eau o water |
| ɔ | o + consonant | porte pɔʁt door |
| u | ou, où, oû | jour ʒuʁ day |
| ɑ̃ | an, am, en, em | enfant ɑ̃fɑ̃ child |
| ɛ̃ | in, im, ain, ein, ien, yn | pain pɛ̃ bread |
| ɔ̃ | on, om | bon bɔ̃ good |
| œ̃ | un, um | brun bʁœ̃ brown — Parisians merge it into /ɛ̃/: brun = brin. |
The rules, in order
92 rules. The left column is a pattern (regular expression) matched at the current position of the word; (?=…) looks ahead, (?<=…) looks behind, $ is the end of the word.
| # | Pattern | Sound | Why |
|---|---|---|---|
| 1 | (?<=^| )et(?:$| ) | et 'and' = /e/ | |
| 2 | (?<=(?:^| )(?:m|f|ch|hi|hiv|am|enf|v|c))er(?:$| ) | short words mer, fer, cher, hier, hiver… sound the r | |
| 3 | er(?:$| ) | -er ending = /e/ (infinitives, nouns) | |
| 4 | aill | -aill- = /aj/ (travaille, taille) | |
| 5 | eill | -eill- = /ɛj/ (bouteille, réveille) | |
| 6 | (?:euill|ueill) | -euill-/-ueill- = /œj/ (feuille, cueillir) | |
| 7 | ouill | -ouill- = /uj/ (grenouille) | |
| 8 | ail(?:$| ) | -ail = /aj/ (travail) | |
| 9 | eil(?:$| ) | -eil = /ɛj/ (soleil) | |
| 10 | euil(?:$| ) | -euil = /œj/ (fauteuil) | |
| 11 | ez(?:$| ) | -ez ending = /e/ | |
| 12 | (?<=(?:^| )[ldmtsc])es(?:$| ) | les, des, mes, tes, ses, ces = /e/ | |
| 13 | (?<=[^aeiouyéèê ])es(?:$| ) | -es after a consonant is silent | |
| 14 | et(?:$| ) | -et ending = /ɛ/, t silent | |
| 15 | (?<=(?:^| )[ldmtsjcn]|qu)e(?:$| ) | le, de, me, te, se, je, ce, ne, que keep a schwa | |
| 16 | e(?:$| ) | final e is mute (but it makes the consonant before it sound) | |
| 17 | (?<=.)[dtsxzp]{1,2}(?:$| ) | final d, t, s, x, z, p (and clusters like -ts, -ps) are silent — CaReFuL: c, r, f, l are not | |
| 18 | (?<=[aeiouéè])il(?:$| ) | -ail, -eil, -euil: il = /j/ | |
| 19 | ch | ||
| 20 | ph | ||
| 21 | th | th is just /t/ | |
| 22 | gn | ||
| 23 | qu | qu = /k/, the u is silent | |
| 24 | gu(?=[eiyéèê]) | gu before e/i: u only keeps the g hard | |
| 25 | ge(?=[aou]) | ge before a/o/u: e only keeps the g soft | |
| 26 | g(?=[eiyéèê]) | g before e/i/y = /ʒ/ | |
| 27 | g | ||
| 28 | c(?=[eiyéèê]) | c before e/i/y = /s/ | |
| 29 | ç | ||
| 30 | cc(?=[eiyéèê]) | ||
| 31 | c | ||
| 32 | j | ||
| 33 | h | h is silent | |
| 34 | (?<=(?:^| )v|(?:^| )m|tranqu)ille | ville, mille, tranquille are exceptions | |
| 35 | (?<=[aeiouéè])ill | vowel + ill = /j/ (travaille, feuille) | |
| 36 | (?<=[^aeiouéè])ille | consonant + ille = /ij/ (fille, famille) | |
| 37 | (?<=s)t(?=ion) | ||
| 38 | t(?=ion) | -tion = /sjɔ̃/ | |
| 39 | ss | ||
| 40 | (?<=[aeiouyéèêë])s(?=[aeiouyéèêê]) | single s between vowels = /z/ | |
| 41 | ll | ||
| 42 | mm | ||
| 43 | nn | ||
| 44 | tt | ||
| 45 | pp | ||
| 46 | rr | ||
| 47 | ff | ||
| 48 | bb | ||
| 49 | dd | ||
| 50 | r | ||
| 51 | x | ||
| 52 | w | ||
| 53 | k | ||
| 54 | (?<=i)en(?![aeiouyéèêëàâîïôûù]|n|m) | -ien = /jɛ̃/ (bien, chien, rien) | |
| 55 | (?:ain|ein|aim|eim|in|im|yn|ym)(?![aeiouyéèêëàâîïôûù]|n|m) | in/ain/ein + nothing vowel-ish after = nasal /ɛ̃/ | |
| 56 | (?:an|am|en|em)(?![aeiouyéèêëàâîïôûù]|n|m) | an/en + nothing vowel-ish after = nasal /ɑ̃/ | |
| 57 | (?:on|om)(?![aeiouyéèêëàâîïôûù]|n|m) | on + nothing vowel-ish after = nasal /ɔ̃/ | |
| 58 | (?:un|um)(?![aeiouyéèêëàâîïôûù]|n|m) | un = nasal /œ̃/ (Paris: /ɛ̃/) | |
| 59 | oin | oin = /wɛ̃/ (loin, coin) | |
| 60 | eaux? | ||
| 61 | au | ||
| 62 | ou(?=[aeiéè]) | ou before a vowel = glide /w/ (oui, ouest) | |
| 63 | o[uùû] | ou = /u/ | |
| 64 | oy(?=[aeiou]) | ||
| 65 | oi | oi = /wa/ | |
| 66 | eux(?:$| ) | ||
| 67 | (?:eu|œu)(?=se?(?:$| )) | -euse = /øz/ | |
| 68 | (?:eu|œu)(?=[^aeiou ]+(?:$| )) | eu in a closed syllable = /œ/ (peur, seul, fleur) | |
| 69 | (?:eu|œu) | eu in an open syllable = /ø/ (peu, deux, feu) | |
| 70 | œ | ||
| 71 | ai|ei|aî | ||
| 72 | ay | ||
| 73 | ui | ui = /ɥi/ (huit, nuit, cuisine) | |
| 74 | u(?=[aeioéè]) | u before a vowel = glide /ɥ/ | |
| 75 | i(?=[aeouéèê]) | i before a vowel = glide /j/ | |
| 76 | y(?=[aeiou]) | ||
| 77 | é | ||
| 78 | [èêë] | ||
| 79 | e(?=[^aeiouyéèê ]{2}) | e before two consonants = /ɛ/ (belle, terre, reste) | |
| 80 | e(?=[^aeiouyéèê ](?:$| )) | e before a final consonant = /ɛ/ (sel, mer, avec) | |
| 81 | e | e in an open syllable = /ə/ (petit, demain) | |
| 82 | â | ||
| 83 | [aà] | ||
| 84 | [iîï] | ||
| 85 | y | ||
| 86 | [uûü] | u = /y/ — lips rounded, tongue forward | |
| 87 | ô | ||
| 88 | o(?=se?(?:$| )) | o before final s/se = /o/ (rose, chose) | |
| 89 | o(?:$| ) | ||
| 90 | o(?=[^aeiou ]) | o in a closed syllable = /ɔ/ (porte, bonne) | |
| 91 | o | ||
| 92 | [pbtdfvlmnsz] |