Guides

TTS Verbalization Guide & Specifications for en-GB

Product: en-GB
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 EN language in the GB domain. 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 has separate Lexis and Odi voices output columns. If Odi matches Lexis exactly, the symbol ↔ is used instead of repeating the text. A 🆕 marker next to an example means the reading changed in the current version vs the previous one (3.3.0). Missing support is always written as "unsupported". Numeric ranges in formats are written [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

Odi

[1-9][0-9]

25

twenty five

↔

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

159

one hundred and fifty nine

↔

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

-58

minus fifty eight

↔

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

2824

two thousand eight hundred and twenty four

↔

20[0-9][0-9]

2012

twenty twelve

↔

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

2,824

two thousand eight hundred and twenty four

↔

Allowed thousands delimiter: comma only. A space delimiter reads as two separate number groups ("2 824" is "two eight hundred and twenty four"). Max supported value: 999,999,999,999 (999 billion and below), read as "nine hundred and ninety nine billion nine hundred and ninety nine million nine hundred and ninety nine thousand nine hundred and ninety nine". Beyond that, digits are spelled one by one ("1,000,000,000,000" is "one zero zero zero zero zero zero zero zero zero zero zero zero"). Integers are read with "and" after hundreds and thousands. A four-digit number close to the current year is read as a year.

Ordinal numbers

Format

Example input

Lexis

Odi

[1-9]…[0-9]{st,nd,rd,th}

1st

first

↔

Decimals

Decimal separator: dot. Digits after the dot are spelled individually.

Format

Example input

Lexis

Odi

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

2.4527

two point four five two seven

↔

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

-25.78

minus twenty five point seven eight

↔

Fractions and units

Format

Example input

Lexis

Odi

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

13/16

thirteen sixteenths

↔

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

45/2

forty five halves

↔

A fraction that complies with the date format, thus [1-31]<slash>[1-12], is read as a date of the year if no supported unit is provided. E.g. "5/12" is read as "may the twelfth" while "5/12 km" is read as "five twelfths kilometre". A date-like fraction without a unit (for example 1/2 or 3/4) is therefore read as a date, month first.

Format

Example input

Lexis

Odi

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

5/12 km

five twelfths kilometre

↔

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

1/2

january the second

↔

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

3/4

march the fourth

↔

{vulgar fraction} <unit>

½ cup

½ cup

↔

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

3/4 mile

three fourths mile

↔

A vulgar fraction such as ½ is not converted: the text passes through unchanged in both voices.

Digit-by-digit spelling

The dash notation can be used to spell the digit sequence digit by digit. The behaviour differs for Lexis and Odi voices:

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

  • For Odi, the dashes are used to spell the numbers digit by digit as well, but without pauses: the comma is placed where the space is.

Example input

Lexis

Odi

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

four two one [pause] four, two three [pause] four, seven five [pause] three

four two one four, two three four, seven five three

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 "two to three". For Lexis, [pause] is a 0.025 s pause. Digits are read in groups of three, counted across the whole sequence. A comma stays where the input has a space.

16-digit card numbers

Dash notation can be used to spell out the card numbers:

Example input

Lexis

Odi

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

five eight nine [pause] six, four two [pause] six five, one [pause] two three four, [pause] seven four six [pause] eight

five eight nine six, four two six five, one two three four, seven four six eight

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

five eight nine [pause] six four two [pause] six five, one [pause] two three four [pause] seven four six [pause] eight

five eight nine six four two six five, one two three four seven four six eight

Counter examples

  • The numbers in between the dashes are read as integers and the dash is pronounced as "dash" if the dash is used more than once. Unlike plain integers, these numbers are read with a comma after "thousand".

  • 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

Odi

4532-1234-5678-9012

four thousand, five hundred and thirty two dash one thousand, two hundred and thirty four dash five thousand, six hundred and seventy eight dash nine thousand and twelve

↔

4532 1234 5678 9012

four thousand five hundred and thirty two one thousand two hundred and thirty four five thousand six hundred and seventy eight nine thousand and twelve

↔

4532-1234-5678

four thousand, five hundred and thirty two dash one thousand, two hundred and thirty four dash five thousand, six hundred and seventy eight

↔

4532-1234

four thousand five hundred and thirty two to one thousand two hundred and thirty four

↔

Telephone numbers

Format

Example input

Lexis

Odi

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

020 7946 0958

twenty seven thousand nine hundred and forty six nine hundred and fifty eight

↔

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

07911 123456

seven thousand nine hundred and eleven one hundred and twenty three thousand four hundred and fifty six

↔

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

+44 20 7946 0958

+44 twenty seven thousand nine hundred and forty six nine hundred and fifty eight

↔

Combination of numbers and words

Format

Example input

Lexis

Odi

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

16-digit

sixteen digit

↔

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

COVID-19

covid nineteen

↔

A space around a dash between a number and a word verbalizes the dash as the word "dash" (e.g. "16 - digit" becomes "sixteen dash digit"), applicable to both Lexis and Odi voices. A spaced dash between two words is read as a pause (see Dashed words).

Ratio and intervals

Format

Example input

Lexis

Odi

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

16:9

sixteen to nine

↔

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

16-9

sixteen to nine

↔

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

3-5 days

three to five days

↔

If the ratio values overlap with the time format, the time will be announced. E.g. "24:00" is verbalized as "twenty four hours" while "25:00" is "twenty five to zero".

Percentage

Example input

Lexis

Odi

15%

fifteen percent

↔

Time

Format

Example input

Lexis

Odi

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

12:11:01

twelve hours eleven minutes and one second

↔

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

23:15

twenty three fifteen

↔

[00-24]<colon>00

24:00

twenty four hours

↔

[1-12] {PM,AM}

2 PM

two p m

↔

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

02:20 PM

two twenty p m

↔

00<colon>00

00:00

midnight

↔

Date

Format

Example input

Lexis

Odi

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

14 May 2022

may the fourteenth, twenty twenty two

↔

{month} [1-31], [0-9]{4}

June 6, 2020

june the sixth, twenty twenty

↔

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

31/12/19

december the thirty first, nineteen

↔

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

27.05.2021

may the twenty seventh, twenty twenty one

↔

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

2022-11-02

november the second, twenty twenty two

↔

{month} [1-31]{st,nd,rd,th}

October 21st

october twenty first

↔

[1-31]{st,nd,rd,th} {month}

21st October

twenty first october

↔

[1-31]/[1-12]

23/5

may the twenty third

↔

[1-31]/[1-12]

5/12

may the twelfth

↔

Note: Dates are read month first with "the" before the day. A two-digit year is read as a number ("nineteen"); a four-digit year after a date is read as a year ("twenty nineteen").

Units

Format

Example input

Lexis

Odi

{amount}{unit}

2.5GB

two point five gigabytes

↔

{amount}<space>{unit}

1.5 GB

one point five gigabytes

↔

{amount}<space>{unit}

3 m

three metres

↔

{amount}{unit}/{unit}

1500MB/s

one thousand five hundred megabytes per second

↔

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

1400 MB/s

one thousand four hundred megabytes per second

↔

Supported unit abbreviations

This table is the voice-package unit table. Without it the engine reads only a few units, such as km and l. Units such as mm, ft and mph are not read.

Abbreviation

Lexis

Odi

mm

millimetre / millimetres

↔

cm

centimetre / centimetres

↔

m

metre / metres

↔

km

kilometre / kilometres

↔

Km

kilometre / kilometres

↔

m²

square metre / square metres

↔

m2

square metre / square metres

↔

m³

cubic metre / cubic metres

↔

m3

cubic metre / cubic metres

↔

"

inch / inches

↔

in

inch / inches

↔

'

foot / feet

↔

ft

foot / feet

↔

yd

yard / yards

↔

mi

mile / miles

↔

mph

mile per hour / miles per hour

↔

MPH

mile per hour / miles per hour

↔

h

hour / hours

↔

hr

hour / hours

↔

min

minute / minutes

↔

mins

minute / minutes

↔

s

second / seconds

↔

g

gram / grams

↔

gm

gram / grams

↔

kg

kilogram / kilograms

↔

Kg

kilogram / kilograms

↔

oz

ounce / ounces

↔

lb

pound / pounds

↔

lbs

pound / pounds

↔

ml

millilitre / millilitres

↔

mL

millilitre / millilitres

↔

l

litre / litres

↔

L

litre / litres

↔

gal

gallon / gallons

↔

cup

cup / cups

↔

Hz

hertz

↔

hz

hertz

↔

kHz

kilohertz

↔

MHz

megahertz

↔

GHz

gigahertz

↔

W

watt / watts

↔

kW

kilowatt / kilowatts

↔

MW

megawatt / megawatts

↔

GW

gigawatt / gigawatts

↔

V

volt / volts

↔

mA

milliampere / milliamperes

↔

A

ampere / amperes

↔

dB

decibel / decibels

↔

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 per second / bits per second

↔

Kbps

kilobit per second / kilobits per second

↔

Mbps

megabit per second / megabits per second

↔

Gbps

gigabit per second / gigabits per second

↔

Tbps

terabit per second / terabits per second

↔

kBps

kilobyte per second / kilobytes per second

↔

MBps

megabyte per second / megabytes per second

↔

GBps

gigabyte per second / gigabytes per second

↔

TBps

terabyte per second / terabytes per second

↔

PBps

petabyte per second / petabytes per second

↔

°C

degree celsius / degrees celsius

↔

°c

degree celsius / degrees celsius

↔

°F

degree fahrenheit / degrees fahrenheit

↔

°f

degree fahrenheit / degrees 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: "I live in London" is "i live in london" while "5 in the box" is "five inches the box".

Words

Abbreviations and spelling

Odi spells all the words in capital letters letter by letter.

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

Odi

[A-Z]…[A-Z]

ABC

abc

a b c

[A-Z]…[A-Z]

JOHN

john

j o h n

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

B.C.

b. c

b c

[a-z]<dot>[a-z]<dot>

e.g.

for example

↔

[A-Z]&[A-Z]

R&D

r & d

r-n-d

Between capital letters, "&" is passed through for Lexis and read as "n" by Odi. Between words, "&" is read as "and". For Lexis, these readings are done by the Lexis model, not by the input processor.

Common abbreviations

Example input

Lexis

Odi

Prof.

professor

↔

Dr.

doctor

↔

etc.

and so on

↔

Prof

prof

↔

Dr

dr

↔

Mr

mr

↔

Mrs

mrs

↔

Ms

ms

↔

Ave

avenue

↔

Dashed words

Example input

Lexis

Odi

E-mail

e-mail

↔

Paris - Texas

paris [pause 0.2 s] texas

↔

Paris-Texas

paris-texas

↔

URLs and e-mails

URLs

Format

Example input

Lexis

Odi

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

www.google.com/

w w w, dot google, dot com

↔

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

https://google.com/

h t t p s, colon, double forward slash google, dot com

↔

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

https://www.google.com/

h t t p s, colon, double forward slash w w w, dot google, dot com

↔

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

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

h t t p s, colon, double forward slash w w w, dot google, dot com, forward slash news, equal sign one hundred and twenty three

↔

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

www.123.com

w w w, dot one hundred and twenty three, dot com

↔

E-mails

Format

Example input

Lexis

Odi

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

info@omilia.com

i n f o, at omilia, dot com

↔

{word}!={symbol}!={number}@{word}<dot>{domain}

omilia_19@omilia.com

omilia underscore one nine, at omilia, dot com

↔

{word}!={symbol}!={number}@{word}<dot>{domain}

john.smith42@example.com

john, dot smith four two, at example, dot com

↔

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

SALES@EXAMPLE.COM

sales, at example, dot com.

↔

uppercase{word}!={symbol}!={number}@{word}<dot>{domain}

FFI.SHDFI.GM@MARRIOTT.COM

f f i, dot s h d f i, dot g m, at marriott, dot com

↔

Note: digits are read one by one, _ reads "underscore", and short code-like parts are spelled letter by letter.

Currency

Format

Example input

Lexis

Odi

{symbol}{amount}

£25.10

twenty five pounds and ten pence

↔

{symbol}{amount}

$25.10

twenty five dollars and ten cents

↔

{amount}{symbol}

25.10€

twenty five euros and ten cents

↔

{amount}p

50p

50p

↔

{amount} {code}

25 USD

twenty five u s dollars

↔

{amount} {quantity} {code}

1.3 million USD

one point three million u s dollars

↔

{symbol}{amount} {quantity}

£1.3 million

one point three million pounds

↔

Currency codes and symbols

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

Code

Lexis

Odi

Subdivision

USD

u s dollar / u s dollars

↔

cent / cents

EUR

euro / euros

↔

cent / cents

GBP

pound sterling / pounds sterling

↔

penny / pence

AUD

australian dollar / australian dollars

↔

cent / cents

CAD

canadian dollar / canadian dollars

↔

cent / cents

JPY

japanese yen / japan yen

↔

none: 1.50 JPY reads one point five japanese yen

Symbol

Lexis

Odi

Subdivision

$

dollar / dollars

↔

cent / cents

€

euro / euros

↔

cent / cents

£

pound / pounds

↔

penny / pence

¥ 🆕

japanese yen / japan yen

↔

none

Punctuation and character processing

Supported characters

Char

Description

Used as/in

Lexis

Odi

.

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

"and" (between capital letters it is passed through for Lexis and read as "n" by Odi)

✅

↔

$ € £ ¥

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

✅

↔

The slash is read "slash" in text and "forward slash" in URLs. Other symbols are read by name in both voices: \ "backslash", ^ "caret", _ "underscore", + "plus", # "pound", * "asterisk" and ~ "tilde". 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 is removed and does not affect the voice, in both engines. The trademark (™), service mark (℠), registered (®) and copyright (©) signs are removed earlier, by the engine's request pre-processing, before the text reaches the verbalizer. The verbalizer itself does not process them.

  • Example: Design Hotels™ welcomes you → design hotels welcomes you.

Punctuation intonation

Char

Lexis effect

Odi effect

.

falling intonation

↔

?

rising intonation (en-GB question-type rules: yes/no, wh-, multiple choice)

↔

,

falling intonation

↔

!

a lone exclamation mark is rewritten as a full stop (falling intonation)

increased intensity

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

↔