Guides

TTS Verbalization Guide & Specifications for fr-FR

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

[1-9][0-9]

25

vingt cinq

[2-6]1

21

vingt et un

71

71

soixante et onze

80

80

quatre vingts

[7-9][0-9]

94

quatre vingt quatorze

[1-9][0-9]…[0-9]

159

cent cinquante neuf

100

100

cent

[2-9]00

200

deux cents

[2-9]0[1-9]

201

deux cent un

<dash>[1-9]…[0-9]

-58

moins cinquante huit

[1-9][0-9]…[0-9][0-9] (>999)

2824

deux mille huit cent vingt quatre

[1-9][0-9]{3}

1500

mille cinq cents

[1-9][0-9]{0,2}<dot>[0-9]{3}

2.824

deux mille huit cent vingt quatre

[1-9][0-9]{0,2}<space>[0-9]{3}

2 824

deux huit cent vingt quatre

1000000

1000000

un million

2000000

2000000

deux millions

1000000000

1000000000

un milliard

1<dot>000<dot>000

1.000.000

un million

1<space>000<space>000

1 000 000

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

[1-9]…[0-9]{er}

1er

premier

[1-9]…[0-9]{re,ère}

1re

première

[1-9]…[0-9]{e,ème}

2e

deuxième

[1-9]…[0-9]{e,ème}

21e

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

[1-9]…[0-9]<comma>[0-9]…[0-9]

2,4527

deux virgule quatre cinq deux sept

<dash>[1-9]…[0-9]<comma>[0-9]…[0-9]

-25,78

moins vingt cinq virgule soixante dix huit

Fractions and units

Format

Example input

Lexis

[1-99]<slash>[1-99]

13/16

treize seizièmes

[1-99]<slash>[1-99]

45/2

quarante cinq demis

[1-99]<slash>[1-99]

37/4

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

{vulgar fraction} <unit>

½ tasse

½ tasse

[1-99]/[1-99] <unit>

3/4 mi

le quatre mars mi

[1-31]<slash>[1-12] <unit>

5/12 km

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

4-2-1-4 2-3-4 7-5-3

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

5-8-9-6 4-2-6-5 1-2-3-4 7-4-6-8

cinq huit neuf [pause] six, quatre deux [pause] six cinq, un [pause] deux trois quatre, [pause] sept quatre six [pause] huit

5-8-9-6-4-2-6-5 1-2-3-4-7-4-6-8

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

4532-1234-5678-9012

quatre mille cinq cent trente deux tiret mille deux cent trente quatre tiret cinq mille six cent soixante dix huit tiret neuf mille douze

4532 1234 5678 9012

quatre mille cinq cent trente deux mille deux cent trente quatre cinq mille six cent soixante dix huit neuf mille douze

4532-1234-5678

quatre mille cinq cent trente deux tiret mille deux cent trente quatre tiret cinq mille six cent soixante dix huit

4532-1234

quatre mille cinq cent trente deux à mille deux cent trente quatre

Telephone numbers

Format

Example input

Lexis

[0-9]{2} [0-9]{2} [0-9]{2} [0-9]{2} [0-9]{2}

01 23 45 67 89

un vingt trois quarante cinq soixante sept quatre vingt neuf

+[0-9]{2} [1-9] [0-9]{2} [0-9]{2} [0-9]{2} [0-9]{2}

+33 1 23 45 67 89

+33 un vingt trois quarante cinq soixante sept quatre vingt neuf

[0-9]{2} [0-9]{2} [0-9]{2} [0-9]{2} [0-9]{2}

06 12 34 56 78

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

[0-9]…[0-9]<dash>{word}

16-bit

seize bit

{word}<dash>[0-9]…[0-9]

COVID-19

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

[0-9]…[0-9]<colon>[0-9]…[0-9]

16:9

seize à neuf

[0-9]…[0-9]<dash>[0-9]…[0-9]

16-9

seize à neuf

[0-9]…[0-9]<dash>[0-9]…[0-9] {word}

3-5 jours

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

15%

quinze pour cent

15 %

quinze pour cent

2,5 %

deux virgule cinq pour cent

The percent sign is read "pour cent" ("15 %" is "quinze pour cent").

Time

Format

Example input

Lexis

[00-24]<colon>[00-59]<colon>[00-59]

12:11:01

douze heures onze minutes une seconde

[00-24]<colon>[00-59]

23:15

vingt trois heures et quart

[00-24]<colon>30

23:30

vingt trois heures et demie

[00-24]<colon>45

23:45

vingt quatre heures moins le quart

[00-24]h[00-59]

14h30

14h30

[0-24] h [00-59]

14 h 30

quatorze heures trente

[00-24]<colon>00

24:00

vingt quatre heures

12<colon>00

12:00

midi

00<colon>00

00:00

minuit

[1-12] {PM,AM}

2 PM

deux heures de l’après midi

[01-12]<colon>[00-59] {PM,AM}

02:20 PM

deux heures vingt de l’après midi

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

[2-31] {month} [0-9]{4}

14 mai 2022

le quatorze mai deux mille vingt deux

1er {month} [0-9]{4}

1er juin 2020

le premier juin deux mille vingt

le [2-31] {month} [0-9]{4}

le 14 mai 2022

le le quatorze mai deux mille vingt deux

[00-31]/[00-12]/[0-9][0-9]

31/12/19

le trente et un décembre dix neuf

[00-31].[00-12].[0-9]{4}

27.05.2021

le vingt sept mai deux mille vingt et un

[0-9]{4}-[00-12]-[00-31]

2022-11-02

le deux novembre deux mille vingt deux

[1-31] {month}

21 octobre

le vingt et un octobre

1er {month}

1er mai

premier mai

[1-31]/[1-12] (only day-first is valid)

23/5

le vingt trois mai

[1-12]/[1-31]

5/12

le douze mai

[1-12]/[1-12]/[0-9]{4}

1/1/2020

le un janvier deux mille vingt

[00-31]/[00-12] (the date does not exist)

30/2

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

{amount}{unit}

2,5GB

2, 5gb

{amount}<space>{unit}

1,5 GB

un virgule cinq gb

{amount}{unit}/{unit}

1500MB/s

un, cinq, zéro, [pause] zéro mb barre oblique s

{amount}<space>{unit}/{unit}

1400 MB/s

mille quatre cents mb barre oblique s

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

mm

cm

cm

m

mètre / mètres

km

kilomètre / kilomètres

Km

km

m²

m²

m2

m2

m³

m³

m3

m3

"

"

in

in

'

'

ft

ft

yd

yd

mi

mi

mph

mph

MPH

mph

h

heure / heures

hr

hr

min

min

mins

mins

s

seconde / secondes

g

g

gm

gm

kg

kg

Kg

kg

oz

oz

lb

lb

lbs

lbs

ml

ml

mL

ml

l

l

L

l

gal

gal

cup

cup

Hz

hz

hz

hz

kHz

khz

MHz

mhz

GHz

ghz

W

w

kW

kw

MW

mw

GW

gw

V

v

mA

ma

A

a

dB

db

kb

kb

mb

mb

gb

gb

tb

tb

pb

pb

kB

kb

MB

mb

GB

gb

TB

tb

PB

pb

ko

ko

Mo

mo

Go

go

To

to

Po

po

bps

bps

Kbps

kbps

Mbps

mbps

Gbps

gbps

Tbps

tbps

kBps

kbps

MBps

mbps

GBps

gbps

TBps

tbps

PBps

pbps

°C

not a unit: 5°C reads cinquième c

°c

not a unit: 5°c reads cinquième c

°F

not a unit: 5°F reads cinquième f

°f

not a unit: 5°f reads cinquième f

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

[A-Z]…[A-Z]

ABC

abc

[A-Z]…[A-Z]

JOHN

john

[A-Z]<dot>[A-Z]<dot>

B.C.

b. c

[A-Z]&[A-Z]

R&D

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.

prof

Dr

docteur

Dre

dre

M.

monsieur

Mme

madame

Mlle

mademoiselle

etc.

etc

le 5 janv. 2024

le cinq janvier deux mille vingt quatre

No. 5

numéro cinq

No.

numéro

nº 12

numéro douze

Nos 3 et 4

numéros trois et quatre

nos clients

nos clients

par ex.

par exemple

cad

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

porte monnaie

e-mail

e mail

Paris - Lyon

paris [pause 0.2 s] lyon

Paris-Lyon

paris lyon

URLs and e-mails

URLs

Format

Example input

Lexis

(www)<dot>{word}<dot>{domain}

www.google.com/

www, point google, point com

http(s)://{word}<dot>{domain}

https://google.com/

h t t p s, deux points, double barre oblique google, point com

http(s)://www<dot>{word}<dot>{domain}

https://www.google.com/

h t t p s, deux points, double barre oblique www, point google, point com

(http(s)://)(www)<dot>{word}<dot>{domain}<slash>{sequence}

https://www.google.com/news=123

h t t p s, deux points, double barre oblique www, point google, point com, barre oblique news, signe égal cent vingt trois

(http(s)://)(www)<dot>{non-word}<dot>{domain}

www.123.com

www, point cent vingt trois, point com

(http(s)://)(www)<dot>{word}<dot>{domain}<slash>{word}#{word}

https://www.x.com/a#b

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

{word}@{word}<dot>{domain}

info@omilia.com

i n f o, arobase om ilia, point com

{word}<dot>{word}@{word}<dot>{domain}

jean.dupont@omilia.com

jean, point dupont, arobase om ilia, point com

{word}<comma>{word}@{word}<dot>{domain}

a,b@x.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

{symbol}{amount}

$25,10

vingt cinq dollars dix cents

{amount}{symbol}

25,10€

vingt cinq euros dix centimes

{amount} {symbol}

25,10 €

vingt cinq euros dix centimes

{amount} {code}

25 USD

vingt cinq dollars américains

{amount} {quantity} {code}

1,3 million USD

un virgule trois million de dollars américains

{symbol}{amount} {quantity}

$1,3 million

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

USD

dollar américain / dollars américains

cent / cents

EUR

euro / euros

centime / centimes

GBP

livre sterling / livres sterling

penny / pence

AUD

dollar australien / dollars australiens

cent / cents

CAD

dollar canadien / dollars canadiens

cent / cents

JPY

yen japonais / yens japonais

none: 1,50 JPY reads un virgule cinquante yen japonais

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