← Blog · 8 September 2026 · Lire en français

Hyphenated compounds: the quiet trap for French text to speech

Peut-être, c'est-à-dire, arc-en-ciel, quatre-vingts, Sainte-Foy-lès-Lyon: the hyphen changes how a word is read. What a French text to speech engine does with it, and where it slips.

The hyphen is the punctuation mark nobody talks about, and that is exactly why it trips up text to speech. You barely see it, you never hear it directly, and yet it decides whether a run of letters is read as a single word, as two words in sequence, or as a fixed phrase. In French, peut être and peut-être do not mean the same thing and are not read the same way. An engine that treats the hyphen as a plain space, or the opposite, as a hard boundary, gets it wrong half the time.

If you are voicing French content and you do not read French yourself, this is one of the failure modes you cannot hear coming. It hides inside ordinary-looking words.

Three families of hyphens, three expected behaviours

Not every hyphen poses the same problem. It helps to split them into three cases, because the right reading differs in each.

The first case is words fused by usage: arc-en-ciel (rainbow), porte-monnaie (wallet), garde-robe (wardrobe). They are read in one breath, with no internal pause, like any ordinary word. The classic engine error is to insert a micro-pause at each hyphen, chopping the word into what sounds like a list.

The second case is set phrases and logical hinges: c'est-à-dire (that is), peut-être (perhaps), vis-à-vis, au-dessus (above). These are read as a linked group, but they often carry a slight inflection because they steer the reasoning of the sentence. Read flat, c'est-à-dire loses its function of announcing a clarification, and the meaning goes with it.

The third and hardest case is compound proper nouns: Sainte-Foy-lès-Lyon, Villeneuve-d'Ascq, Jean-Baptiste, Aix-en-Provence. A French town name can string five elements together, with a lès or a sur that is not a common word at all. Here the spelling tells you almost nothing about the expected pronunciation, exactly as it happens with proper nouns and place names that have no hyphen.

Numbers, where the hyphen changes the count

There is one place where the hyphen changes not just the rhythm but the meaning: numbers written out in words. Since the 1990 spelling reform, all parts of a compound number are joined by hyphens, and that rule exposes a real ambiguity.

| Written | Expected reading | Value |
|---------|------------------|-------|
| quatre-vingts | quatre-vingts | 80 |
| quatre-vingt-deux | quatre-vingt-deux | 82 |
| vingt-et-un | vingt-et-un | 21 |
| trois-cent-mille | trois-cent-mille | 300,000 |
| mille-neuf-cent-quatre-vingt-quatre | the full year | 1984 |

An engine that reads digits correctly can still stumble on numbers spelled out, because it has to recognise that the whole string forms one number before it says it. This is the direct extension of the work described in reading numbers aloud: the digit is easier than the word.

What our engine does with it, no overselling

On lexicalised compounds and common set phrases, the engine treats them as units: peut-être and c'est-à-dire are read linked, without the break that gives away word-by-word processing. Reading the hyphen as an internal join rather than a boundary is part of what it means to actually read French rather than decode it, and it is the heart of the work laid out on the French text to speech page.

The honest limit is again on proper nouns. A rare compound, a regional spelling, an uncommon surname: the engine applies its general rules, and sometimes it cuts where it should not, or reads lès as les. We would rather say so than promise the machine knows every French commune. It infers from the form, and an unusual form yields an unusual reading.

The move that locks a compound in place

When a compound matters, usually a proper noun or a specialist term, the guarantee does not come from the voice but from the pronunciation lexicon. You declare, once and for all, how Sainte-Foy-lès-Lyon or your brand name should be read, and the engine stops guessing on that specific word. It is the same principle as any pronunciation you want pinned: you do not correct the voice, you hand it the answer.

Testing a tool in two minutes

Take three sentences. C'est-à-dire qu'il faudra peut-être attendre (expected: two linked groups, no chopping). Elle habite à Sainte-Foy-lès-Lyon (expected: a town name read in one flow, with a lès that is not les). Il a quatre-vingt-un ans (expected: 81, not quatre, vingt, un). A tool that clears all three reads the hyphen for what it is. A tool that chops the compounds or breaks the number is handling each segment in isolation, and you will know before you fit an entire site.

The hyphen is a small mark, but it is a good tell. It cannot be fixed in the edit; it plays out at read time, and a single misplaced cut in a town name is enough to signal that the audio was placed without listening. That is precisely the finish that separates a tool that pronounces French from one that reads it.

Give your articles a voice with WeDispatch

This blog is itself voiced by WeDispatch. Curious how it sounds on your content?

Book a demo

Read next