Guides

TTS Verbalization Guide & Specifications for es-MX

Product: es-MX
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 ES language in the MX domain. Example outputs are in Spanish (Mexican Spanish). 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

veinticinco

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

159

ciento cincuenta y nueve

100

100

cien

10[1-9]

101

ciento uno

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

-58

menos cincuenta y ocho

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

2824

dos mil ochocientos veinticuatro

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

1500

mil quinientos

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

2,824

dos mil ochocientos veinticuatro

1000000

1,000,000

un millón

2000000

2,000,000

dos millones

1000000000

1,000,000,000

mil millones

Allowed thousands delimiter: comma only; a space reads as two number groups. Max supported value: 999,999,999,999, read as "novecientos noventa y nueve mil novecientos noventa y nueve millones novecientos noventa y nueve mil novecientos noventa y nueve". Beyond that, digits are spelled one by one.

Ordinal numbers

Format

Example input

Lexis

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

1º 🆕

primero

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

1ª 🆕

primera

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

21º 🆕

vigésimo primero

Decimals

Decimal separator: dot. Digits after the dot are spelled individually ("2.4527" is "dos punto cuatro cinco dos siete", "-25.78" is "menos veinticinco punto siete ocho").

Format

Example input

Lexis

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

2.4527

dos punto cuatro cinco dos siete

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

-25.78

menos veinticinco punto siete ocho

Fractions and units

Format

Example input

Lexis

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

13/16

trece dieciséisavos

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

45/2

cuarenta y cinco medios

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

37/4

treinta y siete cuartos

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. Dates are day first, so "5/12" is read as "cinco de diciembre". With a unit it is a fraction ("5/12 km" is "cinco doceavos kilómetro"). Fractions such as 3/4 and 1/2 without a unit are therefore read as dates ("tres de abril", "primero de febrero").

Format

Example input

Lexis

{vulgar fraction} <unit>

½ taza

½ taza

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

3/4 mi

tres cuartos milla

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

5/12 km

cinco doceavos kiló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 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

cuatro dos uno [pause] cuatro, dos tres [pause] cuatro, siete cinco [pause] tres

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 "dos a tres".

16-digit card numbers

Example input

Lexis

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

cinco ocho nueve [pause] seis, cuatro dos [pause] seis cinco, uno [pause] dos tres cuatro, [pause] siete cuatro seis [pause] ocho

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

cinco ocho nueve [pause] seis cuatro dos [pause] seis cinco, uno [pause] dos tres cuatro [pause] siete cuatro seis [pause] ocho

Counter examples

  • The numbers in between the dashes are read as integers and the dash is pronounced as "guion" if the dash is used more than once.

  • 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 🆕

cuatro mil quinientos treinta y dos guion mil doscientos treinta y cuatro guion cinco mil seiscientos setenta y ocho guion nueve mil doce

4532 1234 5678 9012

cuatro mil quinientos treinta y dos mil doscientos treinta y cuatro cinco mil seiscientos setenta y ocho nueve mil doce

4532-1234-5678 🆕

cuatro mil quinientos treinta y dos guion mil doscientos treinta y cuatro guion cinco mil seiscientos setenta y ocho

4532-1234

cuatro mil quinientos treinta y dos a mil doscientos treinta y cuatro

Telephone numbers

Format

Example input

Lexis

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

(55) 1234-5678

( cincuenta y cinco ) mil doscientos treinta y cuatro a cinco mil seiscientos setenta y ocho

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

55 1234 5678 🆕

cinco cinco, uno dos tres cuatro, cinco seis siete ocho

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

+52 55 1234 5678 🆕

más cincuenta y dos, cinco cinco, uno dos tres cuatro, cinco seis siete ocho

The country code is read as a number ("+52" is "más cincuenta y dos").

Combination of numbers and words

Format

Example input

Lexis

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

16-bit

dieciséis bit

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

COVID-19

covid diecinueve

A space around a dash between a number and a word verbalizes the dash as the word "guion" (e.g. "16 - bit" becomes "dieciséis guion 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

dieciséis a nueve

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

16-9

dieciséis a nueve

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

3-5 días

tres a cinco días

If the ratio values overlap with the time format, the time will be announced. E.g. "24:00" is verbalized as "veinticuatro horas" while "25:00" is "veinticinco a cero".

Percentage

Example input

Lexis

15%

quince por ciento

2.5%

dos punto cinco por ciento

Time

Format

Example input

Lexis

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

12:11:01

doce horas once minutos y un segundo

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

23:15

veintitrés y quince

[00-24]<colon>00

24:00

veinticuatro horas

12<colon>00

12:00 🆕

mediodía

00<colon>00

00:00

medianoche

[1-12] {PM,AM}

2 PM

dos de la tarde

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

02:20 PM

dos y veinte de la tarde

Note: PM is read "de la tarde" ("1 PM" is "una de la tarde", "2 PM" is "dos de la tarde").

Date

Format

Example input

Lexis

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

14 de mayo de 2022

catorce de mayo de dos mil veintidós

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

1 de junio de 2020

uno de junio de dos mil veinte

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

31/12/19

treinta y uno de diciembre de diecinueve

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

27.05.2021

veintisiete de mayo de dos mil veintiuno

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

2022-11-02

dos de noviembre de dos mil veintidós

[1-31] de {month}

21 de octubre

veintiuno de octubre

[1-31]/[1-12]

23/5

veintitrés de mayo

[1-31]/[1-12]

5/12 🆕

cinco de diciembre

Note: The day 1 is read "uno" in a full date; other days are cardinal numbers. Dates are day first, so "5/12" is the 5th of December (en-US reads May 12th). Dates and months are masculine, so 21 is "veintiuno" and 31 is "treinta y uno". A two-digit year is read as a number ("diecinueve"); a full year is read as one number ("dos mil veintidós"), without "y".

Units

Format

Example input

Lexis

{amount}{unit}

2.5GB

dos punto cinco gigabytes

{amount}<space>{unit}

1.5 GB

uno punto cinco gigabytes

{amount}{unit}/{unit}

1500MB/s

mil quinientos megabytes por segundo

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

1400 MB/s

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

Abbreviation

Lexis

mm

milímetro / milímetros

cm

centímetro / centímetros

m

metro / metros

km

kilómetro / kilómetros

Km

kilómetro / kilómetros

m²

metro cuadrado / metros cuadrados

m2

metro cuadrado / metros cuadrados

m³

metro cúbico / metros cubicos

m3

metro cúbico / metros cubicos

"

"

in

pulgada / pulgadas

'

'

ft

pie / pies

yd

patio / yardas

mi

milla / millas

mph

milla por hora / millas por hora

MPH

milla por hora / millas por hora

h

hora / horas

hr

hora / horas

min

minuto / minutos

mins

minuto / minutos

s

segundo / segundos

g

gramo / gramos

gm

gramo / gramos

kg

kilogramo / kilogramos

Kg

kilogramo / kilogramos

oz

onza / onzas

lb

libra / libras

lbs

libra / libras

ml

mililitro / mililitros

mL

mililitro / mililitros

l

litro / litros

L

litro / litros

gal

galón / galones

cup

cup

Hz

hercios

hz

hercios

kHz

kilohercio

MHz

megahercio

GHz

gigahercios

W

dobleú

kW

kilovatio / kilovatios

MW

megavatio / megavatios

GW

gigavatio / gigavatios

V

voltio / voltios

mA

miliamperio / miliamperios

A

amperio / amperios

dB

decibel / decibelios

kb

kilobit / kilobits

mb

megabit / megabits

gb

gigabit / gigabits

tb

terabit / terabits

pb

petabit / petabits

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

terabit por segundo / terabits por segundo

kBps

kilobyte por segundo / kilobytes por segundo

MBps

megabyte por segundo / megabytes por segundo

GBps

gigabyte por segundo / gigabytes por segundo

TBps

terabyte por segundo / terabytes por segundo

PBps

petabyte por segundo / petabytes por segundo

°C

grado celsius / grados celsius

°c

grado celsius / grados celsius

°F

grado farenheit / grados fahrenheit

°f

grado farenheit / grados fahrenheit

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" after a number is "pulgadas" ("5 in the box" is "cinco pulgadas the box").

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]

I&D

i & d

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

A single letter is read by its letter name: V is "ve", W is "doble u".

Common abbreviations

Example input

Lexis

Prof.

profesor

Profa.

profa

Dr.

doctor

Dra.

doctora

Sr.

señor

Sra.

señora

etc.

etcétera

Dashed words

Example input

Lexis

teórico-práctico

teórico-práctico

e-mail

e-mail

Mérida - Cancún

mérida [pause 0.2 s] cancún

Mérida-Cancún

mérida-cancún

URLs and e-mails

URLs

Format

Example input

Lexis

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

www.google.com

doble u doble u doble u, punto google, punto com

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

https://google.com 🆕

hache te te pe ése, dos puntos, doble diagonal google, punto com

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

https://www.google.com 🆕

hache te te pe ése, dos puntos, doble diagonal doble u doble u doble u, punto google, punto com

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

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

hache te te pe ése, dos puntos, doble diagonal doble u doble u doble u, punto google, punto com, diagonal éne e dobleú ése, signo igual uno dos tres

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

www.123.com 🆕

doble u doble u doble u, punto uno dos tres, punto com

E-mails

Format

Example input

Lexis

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

info@omilia.com 🆕

i é n e é f e o, arroba omilia, punto com

Currency

Format

Example input

Lexis

{symbol}{amount}

$25.10 🆕

veinticinco pesos con diez centavos

{symbol}{amount}

US$25.10

us $ veinticinco punto uno

{amount}{symbol}

25.10€ 🆕

veinticinco euros con diez céntimos

{amount} {code}

25 USD 🆕

veinticinco dólares

{amount} {quantity} {code}

1.3 millones USD 🆕

uno punto tres millones de dólares

{symbol}{amount} {quantity}

$1.3 millones 🆕

uno punto tres millones de pesos

Note: after "millón/millones" the noun is introduced by "de" ("uno punto tres millones de pesos"). In es-MX the symbol "$" is the peso; the dollar is written USD, and US$ is not expanded.

Currency codes and symbols

Each reading shows the singular / the plural form. The subdivision is read after "con" when the amount has decimals ("1.01" and "2.50").

Code

Lexis

Subdivision

USD 🆕

dólar / dólares

centavo / centavos

EUR 🆕

euro / euros

céntimo / céntimos

GBP 🆕

libra esterlina / libras esterlinas

penique / peniques

AUD 🆕

dólar australiano / dólares australianos

centavo / centavos

CAD 🆕

dólar canadiense / dólares canadienses

centavo / centavos

JPY

yen japonés / yenes japonéses

none: 1.50 JPY reads uno punto cinco yen japonés

MXN 🆕

peso mexicano / pesos mexicanos

centavo / centavos

Symbol

Lexis

$ 🆕

peso / pesos

€

euro / euros

£

libra / libras

¥ 🆕

yen japonés / yenes japonéses

US$

unsupported: US$1 reads us $ uno

Punctuation and character processing

Supported characters

Char

Description

Used as/in

Lexis

.

period

sentence end / decimal separator

✅

,

comma

sentence break / thousands separator

✅

-

dash

number group / minus sign

✅

@

at sign

email address

✅

%

percent

percentage value, in URLs

✅

&

ampersand

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

✅

$ € £ ¥

currency signs

part of currency

✅

=

equal sign

in URLs

✅

;

semicolon

in URLs

✅

? !

question mark, exclamation mark

sentence end (see intonation)

✅

¿

inverted question mark

sentence start, passed on as a token

✅

¡

inverted exclamation mark

sentence start, dropped

✅

: / ( )

colon, slash, brackets

time, ratio, URLs, fractions, dates, phone numbers

✅

° ² ³ " '

degree, superscripts, quotes

units

✅

º ª

ordinal indicators

ordinal numbers

✅

The slash is read "diagonal". Other symbols are read by name: \ "barra invertida", ^ "circunflejo", _ "guion bajo", + "más", # "numeral", $ "signo de peso", * "asterisco" and ~ "virgulilla". 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