Guides

TTS Verbalization Guide & Specifications for pt-BR

Product: pt-BR
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 PTlanguage in the BR domain. Example outputs are in Portuguese (Brazilian Portuguese). 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. 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

vinte e cinco

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

159

cento e cinquenta e nove

100

100

cem

10[1-9]

101

cento e um

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

-58

menos cinquenta e oito

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

2824

dois mil oitocentos e vinte e quatro

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

1500

mil e quinhentos

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

2.824

dois mil oitocentos e vinte e quatro

1000000

1.000.000

um milhão

2000000

2.000.000

dois milhões

1000000000

1.000.000.000

um bilhão

Allowed thousands delimiter: dot (a space is read the same way). Max supported value: 999.999.999.999, read as "novecentos e noventa e nove bilhões novecentos e noventa e nove milhões novecentos e noventa e nove mil novecentos e noventa e nove". Beyond that, digits are spelled one by one.

Ordinal numbers

Format

Example input

Lexis

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

1º

primeiro

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

1ª

primeira

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

21º

vigésimo primeiro

Decimals

Decimal separator: comma. Digits after the comma are spelled individually ("2,4527"); a two-digit fraction is read as a number ("-25,78" is "menos vinte e cinco vírgula setenta e oito").

Format

Example input

Lexis

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

2,4527

dois vírgula quatro cinco dois sete

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

-25,78

menos vinte e cinco vírgula setenta e oito

Fractions and units

Format

Example input

Lexis

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

13/16

treze dezesseis avos

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

45/2

quarenta e cinco meios

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

3/4

três de abril

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. E.g. "5/12" is read as "cinco de dezembro" while "5/12 km" is read as "cinco doze avos de quilômetro". Because dates are day first, fractions such as 3/4 and 1/2 are read as dates ("três de abril", "primeiro de fevereiro").

Format

Example input

Lexis

{vulgar fraction} <unit>

½ xícara

½ xícara

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

3/4 mi

três de abril mi

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

5/12 km

cinco doze avos de quilômetro

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 of a group are separated by a comma and the groups are separated by a space.

Example input

Lexis

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

quatro dois um [pause] quatro, dois três [pause] quatro, sete cinco [pause] três

Note: a dash between two numbers is read digit by digit, but in case of range or match score, will be read as ("2-3" is "dois a três").

16-digit card numbers

Example input

Lexis

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

cinco oito nove [pause] seis, quatro dois [pause] seis cinco, um [pause] dois três quatro, [pause] sete quatro seis [pause] oito

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

cinco oito nove [pause] seis quatro dois [pause] seis cinco, um [pause] dois três quatro [pause] sete quatro seis [pause] oito

Counter examples

  • A dash between the groups of digits is read digit by digit as well: the numbers in between are not read as integers and the dash is not pronounced.

  • If no dash is used, the numbers are read as integers.

Example input

Lexis

4532-1234-5678-9012

quatro mil quinhentos e trinta e dois traço mil duzentos e trinta e quatro traço cinco mil seiscentos e setenta e oito traço nove mil e doze

4532 1234 5678 9012

quatro mil quinhentos e trinta e dois mil duzentos e trinta e quatro cinco mil seiscentos e setenta e oito nove mil e doze

4532-1234-5678

quatro mil quinhentos e trinta e dois traço mil duzentos e trinta e quatro traço cinco mil seiscentos e setenta e oito

4532-1234

quatro mil quinhentos e trinta e dois a mil duzentos e trinta e quatro

Telephone numbers

Format

Example input

Lexis

([0-9]{2}) 9[0-9]{4}-[0-9]{4}

(11) 91234-5678

onze, nove um dois três quatro, cinco meia sete oito

([0-9]{2}) [0-9]{4}-[0-9]{4}

(11) 3456-7890

onze, três quatro cinco meia, sete oito nove zero

+[0-9]{2} ([0-9]{2}) 9[0-9]{4}-[0-9]{4}

+55 (11) 91234-5678

mais cinquenta e cinco, onze, nove um dois três quatro, cinco meia sete oito

The area code is read as a number when it has two digits, the groups are read digit by digit with commas between them, and 6 is read "meia".

Combination of numbers and words

Format

Example input

Lexis

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

16-bit

dezesseis bit

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

COVID-19

covid dezenove

A space around a dash between a number and a word verbalizes the dash as the word "traço" (e.g. "16 - bit" becomes "dezesseis traço bit"). A spaced dash between two words is read as a pause (see Dashed words).

Ratio and intervals

Format

Example input

Lexis

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

16:9

dezesseis por nove

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

16-9

dezesseis a nove

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

3-5 dias

três a cinco dias

If the ratio values overlap with the time format, the time will be announced. E.g. "24:00" is verbalized as "meia noite" while "25:00" is "vinte e cinco por zero". A ratio is read with "por" ("16:9" is "dezesseis por nove"). A dash between two numbers is read digit by digit, except before a word.

Percentage

Example input

Lexis

15%

quinze por cento

2,5%

dois vírgula cinco por cento

Time

Format

Example input

Lexis

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

12:11:01

doze horas onze minutos e um segundo

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

23:15

vinte e três e quinze

[00-24]h[00-59]

14h30

14h30

[00-24]<colon>00

24:00

meia-noite

12<colon>00

12:00

meio-dia

00<colon>00

00:00

meia-noite

[1-12] {PM,AM}

2 PM

duas horas da tarde

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

02:20 PM

duas e vinte da tarde

Note: a whole PM or AM hour is read with "horas" ("2 PM" is "duas horas da tarde") and with minutes without it ("02:20 PM" is "duas e vinte da tarde"); "14h30" is left as written.

Date

Format

Example input

Lexis

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

14 de maio de 2022

quatorze de maio de dois mil e vinte e dois

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

1 de junho de 2020

um de junho de dois mil e vinte

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

31/12/19

trinta e um de dezembro de dezenove

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

27.05.2021

vinte e sete de maio de dois mil e vinte e um

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

2022-11-02

dois de novembro de dois mil e vinte e dois

[1-31] de {month}

21 de outubro

vinte e um de outubro

[1-31]/[1-12]

23/5

vinte e três de maio

[1-31]/[1-12]

5/12

cinco de dezembro

Note: Dates are day first, so "5/12" is the 5th of December (en-US reads May 12th). A two-digit year after a date is read as a number ("dezenove"); a full year is read as one number ("dois mil e vinte e dois").

Units

Format

Example input

Lexis

{amount}{unit}

2,5GB

dois vírgula cinco gigabytes

{amount}<space>{unit}

1,5 GB

um vírgula cinco gigabytes

{amount}{unit}/{unit}

1500MB/s

mil e quinhentos megabytes por segundo

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

1400 MB/s

mil e quatrocentos megabytes por segundo

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 Portuguese unit table of the input processor tests.

Abbreviation

Lexis

mm

milímetro / milímetros

cm

centímetro / centímetros

m

metro / metros

km

quilômetro / quilômetros

Km

quilômetro / quilômetros

m²

metro quadrado / metros quadrados

m2

metro quadrado / metros quadrados

m³

metro cúbico / metros cúbicos

m3

metro cúbico / metros cúbicos

"

"

in

in

'

'

ft

ft

yd

yd

mi

mi

mph

mph

MPH

mph

h

hora / horas

hr

hora / horas

min

minuto / minutos

mins

mins

s

segundo / segundos

g

grama / gramas

gm

gm

kg

quilograma / quilogramas

Kg

quilograma / quilogramas

oz

oz

lb

lb

lbs

lbs

ml

mililitro / mililitros

mL

mililitro / mililitros

l

litro / litros

L

litro / litros

gal

gal

cup

cup

Hz

hertz

hz

hz

kHz

quilohertz

MHz

megahertz

GHz

gigahertz

W

watt / watts

kW

quilowatt / quilowatts

MW

megawatt / megawatts

GW

gw

V

volt / volts

mA

miliampere / miliamperes

A

ampere / amperes

dB

decibel / decibéis

kb

kb

mb

mb

gb

gb

tb

tb

pb

pb

kB

kilobyte / kilobytes

MB

megabyte / megabytes

GB

gigabyte / gigabytes

TB

terabyte / terabytes

PB

petabyte / petabytes

bps

bit por segundo / bits por segundo

Kbps

kilobit por segundo / kilobits por segundo

Mbps

megabit por segundo / megabits por segundo

Gbps

gigabit por segundo / gigabits por segundo

Tbps

tbps

kBps

kbps

MBps

mbps

GBps

gbps

TBps

tbps

PBps

pbps

°C

grau celsius / graus celsius

°c

° c

°F

grau fahrenheit / graus fahrenheit

°f

° f

Note: Short abbreviations that are also words or letters (in, min, h, m, A, s) are read as units only when they follow a number; "in" is not a unit here ("5 in the box" is left as written).

Words

Abbreviations and spelling

Lexis passes words in capital letters through unchanged and the Lexis model reads them (e.g. ABC, JOHN). Dotted capital abbreviations keep their dots (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]

P&D

p&d

Between capital letters, "&" is passed through. Between words, "&" is read as "e".

A single letter is read by its letter name: F is "efe", R is "érre", W is "dáblio".

Common abbreviations

Example input

Lexis

Prof.

professor

Prof.ª

prof. ª

Dr.

doutor

Dra.

doutora

Sr.

senhor

Sra.

senhora

etc.

etcétera

Dashed words

Example input

Lexis

guarda-chuva

guarda-chuva

e-mail

e-mail

Rio - Niterói

rio [pause 0.2 s] niterói

Rio-Niterói

rio-niterói

URLs and e-mails

URLs

Format

Example input

Lexis

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

www.google.com

dáblio dáblio dáblio, ponto google, ponto com

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

http://google.com

agá tê tê pê, dois pontos, barra barra google, ponto com

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

https://www.google.com

agá tê tê pê ésse, dois pontos, barra barra dáblio dáblio dáblio, ponto google, ponto com

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

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

agá tê tê pê ésse, dois pontos, barra barra dáblio dáblio dáblio, ponto google, ponto com, barra ene é dáblio ésse, igual um dois três

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

www.123.com

dáblio dáblio dáblio, ponto um dois três, ponto com

E-mails

Format

Example input

Lexis

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

info@omilia.com

info, arroba omilia, ponto com

Currency

Format

Example input

Lexis

R${amount}

R$25,10

vinte e cinco reais e dez centavos

{symbol}{amount}

$25,10

vinte e cinco dólares e dez centavos

{amount}{symbol}

25,10€

vinte e cinco euros e dez centavos

{amount} {code}

25 USD

vinte e cinco dólares americanos

{amount} {quantity} {code}

1,3 milhões USD

um vírgula três milhões de dólares americanos

{symbol}{amount} {quantity}

$1,3 milhões

um vírgula três milhões de dólares

Note: after "milhão/milhões" the noun is introduced by "de" ("um vírgula três milhões de dólares").

Currency codes and symbols

Each reading shows the singular / the plural form. The subdivision is read after "e" when the amount has decimals ("1,01" and "2,50").

Code

Lexis

Subdivision

USD

dólar americano / dólares americanos

centavo / centavos

EUR

euro / euros

centavo / centavos

GBP

libra esterlina / libras esterlinas

pêni / pence

AUD

dólar australiano / dólares australianos

centavo / centavos

CAD

dólar canadense / dólares canadenses

centavo / centavos

JPY

iene / ienes

none: 1,50 JPY reads um vírgula cinquenta iene

BRL

real / reais

centavo / centavos

Symbol

Lexis

$

dólar / dólares

€

euro / euros

£

libra esterlina / libras esterlinas

¥

iene / ienes

R$

real / reais

Punctuation and character processing

Supported characters

Char

Description

Used as/in

Lexis

.

period

sentence end / thousands separator

✅

,

comma

sentence break / decimal separator

✅

-

dash

number group / minus sign

✅

@

at sign

email address

✅

%

percent

percentage value, in URLs

✅

&

ampersand

"e" (between capital letters it is passed through)

✅

$ € £ ¥ R$

currency signs

part of currency

✅

=

equal sign

in URLs

✅

;

semicolon

in URLs

✅

? !

question mark, exclamation mark

sentence end (see intonation)

✅

: / ( )

colon, slash, brackets

time, ratio, URLs, fractions, dates

✅

° ² ³ " '

degree, superscripts, quotes

units

✅

º ª

ordinal indicators

ordinal numbers

✅

The slash is read "barra". Other symbols are read by name: \ "barra invertida", ^ "circunflexo", _ "sublinhado", + "mais", # "cerquilha", $ "cifrão", * "asterisco" and ~ "til". Outside times, ratios and URLs a colon or semicolon is replaced by a full stop, and brackets are passed on unchanged. The vulgar fraction ½ is not converted.

Any other character has no reading of its own: the processor passes it on unchanged (for example quotation marks and ©, ®, ™, §, ×, ÷, ±).

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