Breton, Basque, Corsican, Alsatian: why French text-to-speech trips on regional names
Much of France's map is written in languages other than French, with their own spelling rules. What a French voice does with names like Ploumanac'h, Itxassou, Porto-Vecchio or Papeete, which letters mislead it, and how a local newsroom fixes it for good.
A French synthetic voice reads French the way a good human reader does: it applies the spelling rules of the language. That is exactly what goes wrong on a large share of French place names. Brittany, the Basque Country, Corsica, Alsace and Moselle, French Flanders, the Occitan south and French Polynesia all carry names from languages with their own conventions. Written in the Latin alphabet, they look French. Read with French rules, they come out wrong.
For a regional news site this is not cosmetic. The town name is often the first word of the story and comes back a dozen times, and every local listener knows how it should sound. A voice that says "Kar-ex" for Carhaix has lost the audience by the second sentence, however good its timbre.
The pattern behind the mistakes
The errors are not random. Nearly every one comes from a letter or letter group that means one thing in French and another in the source language.
- Breton. The "c'h" is a throaty k sound, never the French "ch" (sh). The "w" is a v. Some endings that French would swallow or nasalise are spoken in full: Lesneven ends in "-ven", like the English word, not in a French nasal.
- Basque. "tx" is the "ch" of English church, and "z" is an s. Itxassou is "It-cha-ssou"; a French reader seeing "x" wants a ks.
- Corsican. As in Italian, "cci" is "ch" (church) and "cch" is a k. The final "e" is pronounced: Corte is "Kor-tay", Porto-Vecchio is "Porto-Vek-yo".
- Alsatian, Mosellan and Flemish. A final "ch" is a k (Forbach, Illzach), "heim" rhymes with "time", and "w" goes back to v: Wissembourg starts with a v.
- Tahitian and other Polynesian languages. Every vowel is spoken and "u" is "oo". Papeete has four syllables and Faaa has three. A French voice tends to merge adjacent vowels, which produces a name nobody in Polynesia would recognise.
None of this is exotic knowledge. Locals take it for granted, and that is the problem: nothing in the written form signals it to a reader who does not already know.
What we have prepared, and why none of it applies on its own
Here is the checkable part. In late September 2026 we built a themed bank of hard-to-pronounce names for French audio: towns with silent letters, international figures, sport, culture, and a "regional names" theme that holds 70 entries by itself. Each entry carries a reading spelling, the reason, and usually the mistake a voice makes by default. A few of them, with the French reading spelling as stored:
| Written | Reading spelling | The trap |
|---|---|---|
| Ploumanac'h | Plou-ma-nak | Breton "c'h" is a k; the voice says "nache" |
| Carhaix | Ka-rè | h and x are silent; the voice says "Kar-èks" |
| Itxassou | It-cha-ssou | Basque "tx" is "ch" as in church |
| Porticcio | Por-ti-tcho | Corsican "cci" is "ch" as in church |
| Schiltigheim | Chil-ti-gaïme | "heim" rhymes with time |
| Papeete | Pa-pé-é-té | every vowel is spoken |
The same table shows the limit. These entries are proposals, not rules. None of them changes a customer's audio until it has been listened to, before and after correction, and approved by ear. The asymmetry is the reason: a mistake in one customer's lexicon affects one customer, who can fix it; a mistake in a shared base affects everyone, including accounts that have never opened their lexicon. A wrong shared base is worse than an empty one.
Some names are contested locally anyway. Whether Saint-Tropez ends in "-pay" or "-pez" divides the people who live there, and that is a call a tool should leave to the local newsroom.
The fix that works for your patch
So the decisive correction stays with the newsroom. Your account's pronunciation lexicon takes one entry per line, written as spelling = pronunciation, using ordinary French letters rather than phonetic symbols: Penmarc'h = Pin-mar, Ghisonaccia = Gui-zo-na-tcha. The correction applies from the next generation onwards, across every article, without touching your copy. The lexicon holds up to two hundred entries, plenty for the towns of one département and the surnames that keep coming back, as long as it is used as a list of exceptions rather than a dictionary. The full method is in the lexicon guide, and the wider question of officials and hamlets in the piece on proper nouns in news audio.
A practical routine for a regional title: spend an hour building the list once (the twenty most-cited towns, the local officials, the hamlets the voice gets wrong), then add to it as readers or editors flag new ones.
What the tool does not do: read a sentence in Breton
Two needs are easy to confuse. Pronouncing a Breton name correctly inside a French article is what this piece is about, and the lexicon handles it. Reading a whole paragraph in Breton, Basque, Corsican or Creole is a different job, and none of those languages is currently among our reading languages. A council publishing a French and Breton bilingual page will get good audio for the French half; a Breton sentence read with French rules will not be usable. Better to know that before you hear it.
That follows from the line we take on our French text-to-speech page: read French well first, including the French spoken across its regions, rather than claim languages we cannot yet judge by ear.
Give your articles a voice with WeDispatch
This blog is itself voiced by WeDispatch. Curious how it sounds on your content?
Book a demo