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

Reading a sports score aloud in French: the hyphen that turns into « minus »

2-0 is read « deux à zéro », not « deux moins zéro ». Match scores, tennis sets, minutes of play, league fixtures: the forms that trip up French speech synthesis, and how a well-prepared engine handles them.

A sports result is a textbook case for a synthetic voice: a handful of characters, an obvious meaning to any reader, and yet almost every way of getting it wrong gathered in one place. In French, "2-0" is read "deux à zéro" or "deux buts à zéro", never "deux moins zéro" or "deux tiret zéro". The hyphen between the two figures is not a subtraction, it is an opposition, and nothing in the sign itself says so. An engine that predicts sound without knowing it is reading a score hears an arithmetic operation, and a sports desk that adds audio to its match reports notices from the very first game.

The problem goes well beyond football. A tennis set, a track time, a minute of play, a league fixture, a table position: each form has a reading every French speaker expects, and a wrong reading that poorly prepared voices produce. Here are the ones that genuinely cause trouble, the reading you should expect, and the error you hear.

The table of scores that fool the machine

| Written form | Expected reading | Common error |
|---|---|---|
| 2-0 | deux à zéro (or deux buts à zéro) | deux moins zéro |
| 3-1 | trois à un | trois tiret un |
| 1-1 | un partout (or un à un) | un moins un |
| 0-0 | zéro à zéro | zéro moins zéro |
| l'OM s'impose 2-1 | deux à un | deux moins un |
| 6-4, 6-3, 6-2 | six jeux à quatre, six à trois, six à deux | six moins quatre |
| 40-A | quarante A (or avantage) | quarante a |
| 24-17 (rugby) | vingt-quatre à dix-sept | vingt-quatre mille dix-sept |
| 101-98 (basketball) | cent un à quatre-vingt-dix-huit | read as two unlinked numbers |
| 90e+3 | quatre-vingt-dixième minute plus trois | quatre-vingt-dixième e plus trois |
| 21e journée | vingt et unième journée | vingt et un e journée |
| 9''58 | neuf secondes cinquante-huit | neuf guillemets cinquante-huit |
| 4-2 aux tirs au but | quatre à deux | quatre moins deux |

Each line is a test you can run against any tool, ours included, in two minutes: take a real match report, find these forms, and listen to those points only. The right-hand column is not a hypothesis, these are the readings you actually hear on generic voices.

Why a score resists

The first trap is the hyphen. In "2-0" it sets two sides against each other, but the same sign separates a number range ("de 10 à 20"), a date, a reference, and a subtraction. None of those values is written into the character: it depends on what the passage is saying. A voice that reads "2-0" as "deux moins zéro" is applying the default arithmetic rule, which is wrong here and right elsewhere. It is the same mechanism described in reading number ranges, and it is why the hyphen is one of the most ambiguous characters in written French.

The second trap is the expected word. A French speaker does not say "deux zéro", they say "deux à zéro", and for a draw "un partout" rather than "un à un". That little linking word is nowhere in the text, it belongs to the spoken convention of the score, and a reading that drops it stays understandable but sounds like a data feed, not a result.

The third trap is the sport in context. "6-4" in tennis is "six jeux à quatre", "40-A" is "quarante, avantage", and "15-30" refers to points, not minutes. The same "3-1" is a goal score in football and a set score elsewhere. These readings are not guessable from the sign, they follow from the subject, and an engine with no model of spoken French does not have them.

What WeDispatch does about it, without overpromising

The default behaviour of the preparation applied to every article treats common scores as oppositions, not subtractions: a hyphen between two numbers in a report reads "à", large numbers stay numbers, and minutes and fixtures read as ordinals ("vingt et unième journée", not "vingt et un e"), a subject covered in reading numbers aloud in French. This is rule work applied before synthesis, not a matter of timbre: a beautiful voice fed badly will say "deux moins zéro", an ordinary voice prepared well will say "deux à zéro". That is the whole logic of the French text to speech page, where the essential part happens before any sound comes out.

What remains are the cases where the convention depends on the sport and the outlet. "Un partout" or "un à un", "avantage" or "A", whether to spell out "buts" or "sets": these are editorial choices, not universal truths, and guessing on your behalf would be worse than staying neutral. For a phrasing that recurs across your content and must always read the same way, the pronunciation lexicon fixes the expected form once and for all, with no regeneration.

The test to run before you choose

Take a real report from your site, not a demo text: a match summary with its final score, a goal minute, a league fixture. Have the tool you are evaluating read it and listen to those three points only. If the score sounds like a subtraction, if the minute loses its ordinal, if the time becomes punctuation, you have your answer, and it is more reliable than a whole-article listen.

Scores are cousins of ordinary numbers and number ranges, the two great revealers already cited. And for local newsrooms, where grassroots sport is often the most-read article, audio changes how the result travels: the subject is covered in regional daily press and local proximity audio. A score you understand on the first pass tells you more about a tool than any polished demo sentence.

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