French traffic and weather bulletins read by text to speech: road numbers, 8/12 °C and gusts at 90 km/h
Road closures, temperature ranges, wind speeds and closing times are the shortest texts a French newsroom publishes, and the easiest for a synthetic voice to get wrong. We ran thirty-eight real-world French sentences through our text preparation. Here is the output, including the three cases it does not handle.
Ask an English speaker to read "A83 closed after a crash" aloud and nobody needs a style guide: "the A eighty-three". French has the same habit with a different grammar, and a voice that gets the grammar wrong is noticed in the first second. If your site publishes in French (a regional desk, a bilingual outlet in Canada or Belgium, a tourism board posting road updates), the short service items are where an audio version is judged: they are read every morning, by people who are often driving, and almost every line carries a sign the voice has to interpret.
So rather than claim that it works, we took thirty-eight typical French sentences from traffic and weather copy and ran them through the text preparation that sits in front of the voice. That layer decides how a letter stuck to a number, a slash between two temperatures or an abbreviated unit will be spoken. What follows is the actual output.
Road numbers: letter spelled, number said whole
French road names combine a letter for the network (A for motorway, N for national, D for departmental, M for metropolitan) and a number. The spoken form spells the letter and says the number as one quantity:
- "L'A83 est coupée" becomes "l'a quatre-vingt-trois" (the A eighty-three).
- "La D137 est barrée" becomes "la dé cent trente-sept".
- "La RN 12 puis la D 906" becomes "la erre enne douze puis la dé neuf cent six": a space between letters and digits changes nothing.
- "La M35 à Strasbourg" becomes "la emme trente-cinq".
- "Au PR 45 de la D2020", a kilometre marker on a departmental road, becomes "au pé erre quarante-cinq de la dé deux mille vingt".
The hard part is not the reading but the recognition. "A83" on its own could just as well be a product code or a spreadsheet cell. The rule therefore requires road context: either a road word in front ("autoroute", "nationale") or the elided article and prepositions French uses almost only for roads ("l'A83", "la D137", "sur A83"). The guard is visible in the output: "A83 : référence du produit" comes out untouched. That is deliberate. Missing a badly introduced road is a smaller fault than turning a product reference into a motorway.
Temperature ranges: the slash is not a score, a date or a fraction
French forecasts write the low and the high separated by a slash. To a machine, "8/12" looks like three wrong things: a mark out of twelve, the 8th of December (French dates put the day first), or eight twelfths.
- "Les maximales de 15/22 °C" becomes "quinze à vingt-deux degrés", fifteen to twenty-two degrees.
- "Paris 8/12 °C, Lille 6/11 °C" becomes "huit à douze degrés, six à onze degrés".
- "-3 °C" becomes "moins trois degrés".
- "3° le matin" becomes "trois degrés": a bare degree sign, without the C, is understood.
What tips the reading towards "to" is the degree sign that follows. Without it, "15/20" stays a school mark, which is how a French reader would take it too.
Wind, rain, snow, visibility
Compound units are said in full:
- "Rafales à 90 km/h" becomes "quatre-vingt-dix kilomètres-heure".
- "Vent de secteur NO" becomes "vent de secteur nord-ouest". Abbreviated compass points are expanded when a wind word precedes them, and only then: "le NO de la ville" is left alone.
- "12 mm en 24 h" becomes "douze millimètres en vingt-quatre heures".
- "Pluie de 20-30 mm" becomes "vingt à trente millimètres": a range in front of a unit is read with "à", not as a subtraction.
- "Visibilité réduite à 200 m" becomes "deux cents mètres". A lone "m" is taken as metres only because a number precedes it.
The full list of units the preparation recognises is in our guide to pronouncing units of measurement in French.
Closing times and roadwork dates
- "Fermeture de 21 h à 6 h" becomes "vingt et une heures à six heures", with the feminine agreement French requires because "heure" is feminine. English never has to think about this; French gets it wrong audibly when it is missed.
- "Entre 22h30 et 5h" becomes "vingt-deux heures trente et cinq heures", with or without spaces.
- "Du 14/11 au 18/11" becomes "du quatorze novembre au dix-huit novembre".
- "10-15 min de retard" becomes "dix à quinze minutes".
- "Ouverture à J+3" becomes "J plus trois".
Three cases it does not handle
Three of the thirty-eight sentences come out wrong. We list them because a desk should know before it publishes.
Two roads joined by a slash. "L'A63/A64" gives "l'a soixante-trois/A64": the second road has no context in front of it and is not recognised. Writing "l'A63 et l'A64" fixes it, and sounds better anyway.
Train numbers. "Le TER 857412 est supprimé" is read as eight hundred and fifty-seven thousand four hundred and twelve. It is an identifier, not a quantity, but no general rule can guess how a given operator groups its digits without damaging real numbers elsewhere.
Transit lines. "La ligne C2" is passed through unchanged and left to the voice engine. It is usually right, but we do not guarantee it.
For all three, the fix is not to rewrite each item but to record the spoken form once in the account's pronunciation lexicon. It then applies to every article. The method is described in how to fix the pronunciation of a word.
What this says about choosing a French voice
Most comparisons of French voices are run on a paragraph of literary prose, where every engine sounds fine. Service copy is a better test because it is made of conventions rather than words, and conventions are where a model trained mainly on English shows through. That is the argument behind our approach to French text to speech: the quality of a French voice depends less on its timbre than on what it is given to read.
To check any tool, including ours, take three real traffic items from last week, have them read, and listen to the end. Each sign that comes out wrong is either a lexicon entry or a case nobody has looked at yet.
Give your articles a voice with WeDispatch
This blog is itself voiced by WeDispatch. Curious how it sounds on your content?
Book a demo