Product: fr-FR
Release Date: October 2026
TTS Engine version: 3.4.0
Introduction
This document describes how specific series of strings are read by the TTS Engine for the FR language in the FR domain. Example outputs are in French (French as spoken in France). The readings are the engine's current output for the version above: when a reading is not what is wanted, this document still shows what the engine does.
Convention: every example table includes a Lexis voice output column. Any new row appears marked with 🆕. Missing support is shown as "unsupported". Numeric ranges use [a-b] (for example, [1-99] means any number from 1 to 99).
Readings are shown in lower case with punctuation as the engine returns it and with hyphens replaced by spaces. Two markers appear in the readings: [pause] is a 0.025 s pause the Lexis voice puts between groups of digits, and [pause 0.2 s] is a fixed pause of 0.2 s.
Numbers
Integers
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
vingt cinq |
|
|
|
vingt et un |
|
|
|
soixante et onze |
|
|
|
quatre vingts |
|
|
|
quatre vingt quatorze |
|
|
|
cent cinquante neuf |
|
|
|
cent |
|
|
|
deux cents |
|
|
|
deux cent un |
|
|
|
moins cinquante huit |
|
|
|
deux mille huit cent vingt quatre |
|
|
|
mille cinq cents |
|
|
|
deux mille huit cent vingt quatre |
|
|
|
deux huit cent vingt quatre |
|
|
|
un million |
|
|
|
deux millions |
|
|
|
un milliard |
|
|
|
un million |
|
|
|
un zéro zéro |
Allowed thousands delimiter: dot only; a space reads as separate number groups (the groups of "1 000 000" are read one by one). Max supported value: 999999999999, read as "neuf cent quatre vingt dix neuf milliards neuf cent quatre vingt dix neuf millions neuf cent quatre vingt dix neuf mille neuf cent quatre vingt dix neuf". Beyond that, digits are spelled one by one.
Ordinal numbers
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
premier |
|
|
|
première |
|
|
|
deuxième |
|
|
|
vingt et unième |
Decimals
Decimal separator: comma. Three or more digits after the comma are spelled individually ("2,4527"); a two-digit fraction is read as a number ("2,45" is "deux virgule quarante cinq", "-25,78" is "moins vingt cinq virgule soixante dix huit"); a leading zero in the fraction is dropped ("2,05" is "deux virgule cinq").
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
deux virgule quatre cinq deux sept |
|
|
|
moins vingt cinq virgule soixante dix huit |
Fractions and units
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
treize seizièmes |
|
|
|
quarante cinq demis |
|
|
|
trente sept quatrièmes |
A fraction that complies with the date format, thus [1-31]<slash>[1-12], is read as a date if no supported unit is provided. Numeric dates are month first when both orders are valid, so "5/12" is read as "le douze mai" while "5/12 km" is read as "cinq douzièmes kilomètre". Fractions such as 3/4 and 1/2 without a unit are therefore read as dates ("le quatre mars", "le deux janvier"). A unit that is not in the unit table does not turn it into a fraction ("3/4 mi" is "le quatre mars mi").
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
½ tasse |
|
|
|
le quatre mars mi |
|
|
|
cinq douzièmes kilomètre |
A vulgar fraction such as ½ is not converted: the text passes through unchanged.
Digit-by-digit spelling
The dash notation can be used to spell the digit sequence digit by digit. For Lexis, the digits are read in groups of three, with a short pause ([pause], 0.025 s) between the groups. The comma is placed where the input has a space.
|
Example input |
Lexis |
|---|---|
|
|
quatre deux un [pause] quatre, deux trois [pause] quatre, sept cinq [pause] trois |
Note: this notation can be used for digit sequences with more than 2 digits. Otherwise it will be verbalized as an interval. E.g. "2-3" is "deux à trois".
16-digit card numbers
|
Example input |
Lexis |
|---|---|
|
|
cinq huit neuf [pause] six, quatre deux [pause] six cinq, un [pause] deux trois quatre, [pause] sept quatre six [pause] huit |
|
|
cinq huit neuf [pause] six quatre deux [pause] six cinq, un [pause] deux trois quatre [pause] sept quatre six [pause] huit |
Counter examples
-
Numbers joined by a dash more than once are read as integers and each dash is pronounced "tiret" ("10-20-30" is "dix tiret vingt tiret trente"; "4532-1234-5678" is "quatre mille cinq cent trente deux tiret mille deux cent trente quatre tiret cinq mille six cent soixante dix huit").
-
If only one dash is used, then the digit sequence is handled as an interval.
-
If no dash is used, the numbers are read as integers.
|
Example input |
Lexis |
|---|---|
|
|
quatre mille cinq cent trente deux tiret mille deux cent trente quatre tiret cinq mille six cent soixante dix huit tiret neuf mille douze |
|
|
quatre mille cinq cent trente deux mille deux cent trente quatre cinq mille six cent soixante dix huit neuf mille douze |
|
|
quatre mille cinq cent trente deux tiret mille deux cent trente quatre tiret cinq mille six cent soixante dix huit |
|
|
quatre mille cinq cent trente deux à mille deux cent trente quatre |
Telephone numbers
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
un vingt trois quarante cinq soixante sept quatre vingt neuf |
|
|
|
|
|
|
|
six douze trente quatre cinquante six soixante dix huit |
Each pair of digits is read as a number, so a leading zero pair is read as the digit ("01" is "un", "06" is "six"); there are no commas or pauses between the pairs. The "+" is passed on and the country code is read as a number ("+ 33"). Without spaces the digits are one integer ("0123456789" is "cent vingt trois millions quatre cent cinquante six mille sept cent quatre vingt neuf").
Combination of numbers and words
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
seize bit |
|
|
|
covid dix neuf |
A dash with spaces between a number and a word is read "tiret" ("16 - bit" is "seize tiret bit"), unlike "16-bit", which is "seize bit".
Ratio and intervals
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
seize à neuf |
|
|
|
seize à neuf |
|
|
|
trois à cinq jours |
If the ratio values overlap with the time format, the time will be announced. E.g. "24:00" is verbalized as "vingt quatre heures" while "25:00" is "vingt cinq à zéro".
Percentage
|
Example input |
Lexis |
|---|---|
|
|
|
|
|
|
|
|
|
The percent sign is read "pour cent" ("15 %" is "quinze pour cent").
Time
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
douze heures onze minutes une seconde |
|
|
|
vingt trois heures et quart |
|
|
|
vingt trois heures et demie |
|
|
|
vingt quatre heures moins le quart |
|
|
|
14h30 |
|
|
|
quatorze heures trente |
|
|
|
vingt quatre heures |
|
|
|
midi |
|
|
|
minuit |
|
|
|
|
|
|
|
|
Quarter and half hours are read "et quart", "et demie" and "moins le quart" (with the next hour) in 24-hour times. In 12-hour times the hour is followed by the part of the day: "du matin" for AM, "de l’après midi" for 1 to 5 PM, "du soir" for 6 to 11 PM; 12 PM is "midi" and 12 AM is "minuit". With minutes, the minutes are read as a number ("08:30 PM" is "huit heures trente du soir").
Date
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
le quatorze mai deux mille vingt deux |
|
|
|
le premier juin deux mille vingt |
|
|
|
le le quatorze mai deux mille vingt deux |
|
|
|
le trente et un décembre dix neuf |
|
|
|
le vingt sept mai deux mille vingt et un |
|
|
|
le deux novembre deux mille vingt deux |
|
|
|
le vingt et un octobre |
|
|
|
premier mai |
|
|
|
le vingt trois mai |
|
|
|
le douze mai |
|
|
|
le un janvier deux mille vingt |
|
|
|
30/2 |
Note: "le" is added before the day, also when it is already in the input. The day 1 is read "premier" in spelled-out dates and "un" in numeric dates; other days are cardinal numbers. Numeric slash dates are month first when both orders are valid ("5/12" is the 12th of May); if only one order is valid, that order is used. A two-digit year is read as a number ("dix neuf"); a full year is read as one number ("deux mille vingt deux").
Units
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
2, 5gb |
|
|
|
un virgule cinq gb |
|
|
|
|
|
|
|
|
In "(GB, MB/s)", keep the text, since the first sentences still match. Add: "The slash between units is read "barre oblique"."
Supported unit abbreviations
Each reading shows the singular / the plural form: the unit is read after "1" and after "2". The readings come from the French unit table of the input processor tests. A reading equal to the abbreviation means the abbreviation is not in the table: it is passed on in lower case.
|
Abbreviation |
Lexis |
|---|---|
|
|
mm |
|
|
cm |
|
|
mètre / mètres |
|
|
kilomètre / kilomètres |
|
|
km |
|
|
m² |
|
|
m2 |
|
|
m³ |
|
|
m3 |
|
|
" |
|
|
in |
|
|
' |
|
|
ft |
|
|
yd |
|
|
mi |
|
|
mph |
|
|
mph |
|
|
heure / heures |
|
|
hr |
|
|
min |
|
|
mins |
|
|
seconde / secondes |
|
|
g |
|
|
gm |
|
|
kg |
|
|
kg |
|
|
oz |
|
|
lb |
|
|
lbs |
|
|
ml |
|
|
ml |
|
|
l |
|
|
l |
|
|
gal |
|
|
cup |
|
|
hz |
|
|
hz |
|
|
khz |
|
|
mhz |
|
|
ghz |
|
|
w |
|
|
kw |
|
|
mw |
|
|
gw |
|
|
v |
|
|
ma |
|
|
a |
|
|
db |
|
|
kb |
|
|
mb |
|
|
gb |
|
|
tb |
|
|
pb |
|
|
kb |
|
|
mb |
|
|
gb |
|
|
tb |
|
|
pb |
|
|
ko |
|
|
mo |
|
|
go |
|
|
to |
|
|
po |
|
|
bps |
|
|
kbps |
|
|
mbps |
|
|
gbps |
|
|
tbps |
|
|
kbps |
|
|
mbps |
|
|
gbps |
|
|
tbps |
|
|
pbps |
|
|
not a unit: |
|
|
not a unit: |
|
|
not a unit: |
|
|
not a unit: |
Note: Short abbreviations that are also words or letters (in, min, h, m, A, s, "Go" versus "go") are read as units only when they follow a number. The degree sign directly after a number is read as an ordinal indicator ("5°C" is "cinquième c").
Words
Abbreviations and spelling
Lexis passes words in capital letters through in lower case and the Lexis model reads them (e.g. ABC, JOHN). Dotted capital abbreviations lose the last dot (e.g. B.C.).
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
abc |
|
|
|
john |
|
|
|
b. c |
|
|
|
r et d |
"&" is read "et" ("R&D" is "r et d", "chat & chien" is "chat et chien"). A single letter is passed on in lower case ("V" is "v", "W" is "w")..
Common abbreviations
|
Example input |
Lexis |
|---|---|
|
|
prof |
|
|
docteur |
|
|
dre |
|
|
monsieur |
|
|
madame |
|
|
mademoiselle |
|
|
etc |
|
|
le cinq janvier deux mille vingt quatre |
|
|
numéro cinq |
|
|
numéro |
|
|
numéro douze |
|
|
numéros trois et quatre |
|
|
nos clients |
|
|
par exemple |
|
|
c'est à dire |
"Prof." and "Dre" are not expanded ("Pr" is "professeur"). A trailing dot is accepted ("Dr." is "docteur", "Mme." is "madame"). Abbreviated month names ("janv." to "déc.") are read as the full month. "No." and "nº" are read "numéro"; "Nos" is read "numéros" only before a number ("nos clients" is unchanged). "cad" is read "c'est à dire".
Dashed words
|
Example input |
Lexis |
|---|---|
|
|
porte monnaie |
|
|
e mail |
|
|
paris [pause 0.2 s] lyon |
|
|
paris lyon |
URLs and e-mails
URLs
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
www, point google, point com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
www, point cent vingt trois, point com |
|
|
|
h t t p s, deux points, double barre oblique www, point x, point com, barre oblique a, croisillon b |
The scheme is spelled letter by letter, the colon is read "côlon" and the double slash "doublé barre oblique"; "www" is read as written, "." is "point", "/" is "barre oblique", "=" is "signe égal", "?" is "point d'interrogation" and "#" is "croisillon".
E-mails
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
i n f o, arobase om ilia, point com |
|
|
|
jean, point dupont, arobase om ilia, point com |
|
|
|
a, virgule b, arobase x, point com |
The part before "@" is spelled letter by letter and "@" is read "arobase". Symbols in the address are read by name: "," is "virgule", ";" is "point virgule", "&" is "et commercial" and "%" is "pour cent".
Currency
|
Format |
Example input |
Lexis |
|---|---|---|
|
|
|
vingt cinq dollars dix cents |
|
|
|
vingt cinq euros dix centimes |
|
|
|
vingt cinq euros dix centimes |
|
|
|
vingt cinq dollars américains |
|
|
|
un virgule trois million de dollars américains |
|
|
|
un virgule trois million de dollars |
Note: the subdivision follows the main amount without "et". After "million/milliard" the noun is introduced by "de" with no elision ("deux millions de euros").
Currency codes and symbols
Each reading shows the singular / the plural form. The subdivision is read after the main amount when the amount has decimals ("1,01" and "2,50").
|
Code |
Lexis |
Subdivision |
|---|---|---|
|
|
dollar américain / dollars américains |
cent / cents |
|
|
euro / euros |
centime / centimes |
|
|
livre sterling / livres sterling |
penny / pence |
|
|
dollar australien / dollars australiens |
cent / cents |
|
|
dollar canadien / dollars canadiens |
cent / cents |
|
|
yen japonais / yens japonais |
none: |
|
Symbol |
Lexis |
|---|---|
|
|
dollar / dollars |
|
|
euro / euros |
|
|
livre / livres |
|
|
yen japonais / yens japonais |
Punctuation and character processing
Supported characters
|
Char |
Description |
Used as/in |
Lexis |
|---|---|---|---|
|
|
period |
sentence end / thousands delimiter |
✅ |
|
|
comma |
sentence break / decimal separator; "virgule" in URLs and e-mails |
✅ |
|
(space) |
space |
separator of number groups (not a thousands delimiter) |
✅ |
|
|
dash |
number group / minus sign / interval |
✅ |
|
|
at sign |
e-mail address ("arobase") |
✅ |
|
|
percent |
percentage value ("pour cent"); "pour cent" in URLs and e-mails |
✅ |
|
|
ampersand |
"et" between words and letters (R&D); "et commercial" in URLs and e-mails |
✅ |
|
|
currency signs |
part of currency |
✅ |
|
|
equal sign |
"signe égal" in URLs, passed on elsewhere |
✅ |
|
|
number sign |
"croisillon" in URLs |
✅ |
|
|
semicolon, colon |
replaced by a full stop (colon is kept in times, ratios and URLs; ";" is "point virgule" in URLs and e-mails) |
✅ |
|
|
question mark, exclamation mark |
sentence end (see intonation) |
✅ |
|
|
slash, brackets |
time, ratio, URLs, fractions, dates, phone numbers; passed on elsewhere |
✅ |
|
|
degree, superscripts, fraction, quotes |
passed on; "°" after a number is an ordinal indicator |
✅ |
|
|
guillemets |
quotations, removed (no spoken output) |
✅ |
|
|
apostrophe |
elision (l', d', qu'), passed on as |
✅ |
|
|
underscore |
removed |
✅ |
|
|
grave accent |
replaced by an apostrophe |
✅ |
Any other character has no reading of its own: the processor passes it on unchanged (for example + * ~ ^ \ | < > [ ] { }).
Punctuation intonation
|
Char |
Lexis effect |
|---|---|
|
|
falling intonation |
|
|
rising intonation for yes/no questions |
|
|
falling intonation |
|
|
a lone exclamation mark is rewritten as a full stop (falling intonation) |
|
space / dash |
short pause (a spaced dash is a fixed pause of 0.2 s) |
|
no punctuation at the end of a sentence |
a period is added automatically |