Product: en-US
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 US 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 |
|---|---|---|---|
|
|
|
twenty five |
↔ |
|
|
|
one hundred fifty nine |
↔ |
|
|
|
minus fifty eight |
↔ |
|
|
|
two thousand eight hundred twenty four |
↔ |
|
|
|
two thousand eight hundred twenty four |
↔ |
Allowed thousands delimiter: comma only. A space delimiter reads as two separate number groups ("2 824" is "two eight hundred twenty four"). Max supported value: 999,999,999,999 (999 billion and below), read as "nine hundred ninety nine billion nine hundred ninety nine million nine hundred ninety nine thousand nine hundred 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 without "and"; numbers joined by dashes are the exception (see the counter examples).
Ordinal numbers
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
first |
↔ |
Decimals
Decimal separator: dot. Digits after the dot are spelled individually.
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
two point four five two seven |
↔ |
|
|
|
minus twenty five point seven eight |
↔ |
Fractions and units
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
thirteen sixteenths |
↔ |
|
|
|
forty five halves |
↔ |
A fraction that complies with the date format, thus [1-31]<slash>[1-12] and [1-12]<slash>[1-31], is read as a date of the year if no supported unit is provided. E.g. "5/12" is read as "may twelfth" while "5/12 km" is read as "five twelfths kilometer". 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 |
|---|---|---|---|
|
|
|
five twelfths kilometer |
↔ |
|
|
|
january second |
↔ |
|
|
|
march fourth |
↔ |
|
|
|
½ cup |
↔ |
|
|
|
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 |
|---|---|---|
|
|
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".
16-digit card numbers
Dash notation can be used to spell out the card numbers:
|
Example input |
Lexis |
Odi |
|---|---|---|
|
|
five eight nine [pause] six, four two [pause] six five, one [pause] two three four, [pause] seven four six [pause] eight, nine seven [pause] two six |
five eight nine six, four two six five, one two three four, seven four six eight, nine seven two six |
|
|
five eight nine [pause] six four two [pause] six five, one [pause] two three four [pause] seven four six [pause] eight, nine seven [pause] two six |
five eight nine six four two six five, one two three four seven four six eight, nine seven two six |
For Lexis, [pause] is a 0.025 s pause. Digits are read in groups of three, counted across the whole sequence, and a comma stays where the input has a space.
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" and with "and".
-
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 |
|---|---|---|
|
|
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 twelve |
↔ |
|
|
four thousand five hundred thirty two one thousand two hundred thirty four five thousand six hundred seventy eight nine thousand twelve |
↔ |
|
|
four thousand, five hundred and thirty two dash one thousand, two hundred and thirty four dash five thousand, six hundred and seventy eight |
↔ |
|
|
four thousand five hundred thirty two to one thousand two hundred thirty four |
↔ |
Telephone numbers
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
two one two, five five five, one two three four |
↔ |
|
|
|
two one two, five five five, one two three four |
↔ |
Combination of numbers and words
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
sixteen digit |
↔ |
|
|
|
covid nineteen |
↔ |
Space around a dash verbalizes the dash as the word "dash" (e.g. "16 - digit" → "sixteen dash digit"), applicable both for Lexis and Odi voices.
Ratio and intervals
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
sixteen to nine |
↔ |
|
|
|
sixteen to nine |
↔ |
|
|
|
three to five days |
↔ |
If the ratio values overlap with 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 |
|---|---|---|
|
|
fifteen percent |
↔ |
Time
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
twelve hours eleven minutes and one second |
↔ |
|
|
|
twenty three fifteen |
↔ |
|
|
|
twenty four hours |
↔ |
|
|
|
two p m |
↔ |
|
|
|
two twenty p m |
↔ |
|
|
|
midnight |
↔ |
Date
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
may fourteenth, twenty twenty two |
↔ |
|
|
|
june sixth, twenty twenty |
↔ |
|
|
|
december thirty first, nineteen |
↔ |
|
|
|
may twenty seventh, twenty twenty one |
↔ |
|
|
|
november second, twenty twenty two |
↔ |
|
|
|
october twenty first |
↔ |
|
|
|
october twenty first, nineteen fifty five |
↔ |
|
|
|
may twenty third |
↔ |
|
|
|
may twelfth |
↔ |
Units
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
two point five gigabytes |
↔ |
|
|
|
one point five gigabytes |
↔ |
|
|
|
three meters |
↔ |
|
|
|
one thousand five hundred megabytes per second |
↔ |
|
|
|
one thousand four hundred megabytes per second |
↔ |
Supported unit abbreviations
This table is the voice-package unit table. Without it the engine knows only a few units, such as km and l; mm, ft and mph are not read. Each reading shows the singular / the plural form: the unit is read after "1" and after "2".
|
Abbreviation |
Lexis |
Odi |
|---|---|---|
|
|
millimeter / millimeters |
↔ |
|
|
centimeter / centimeters |
↔ |
|
|
meter / meters |
↔ |
|
|
kilometer / kilometers |
↔ |
|
|
kilometer / kilometers |
↔ |
|
|
square meter / square meters |
↔ |
|
|
square meter / square meters |
↔ |
|
|
cubic meter / cubic meters |
↔ |
|
|
cubic meter / cubic meters |
↔ |
|
|
inch / inches |
↔ |
|
|
inch / inches |
↔ |
|
|
foot / feet |
↔ |
|
|
foot / feet |
↔ |
|
|
yard / yards |
↔ |
|
|
mile / miles |
↔ |
|
|
mile per hour / miles per hour |
↔ |
|
|
mile per hour / miles per hour |
↔ |
|
|
hour / hours |
↔ |
|
|
hour / hours |
↔ |
|
|
minute / minutes |
↔ |
|
|
minute / minutes |
↔ |
|
|
second / seconds |
↔ |
|
|
gram / grams |
↔ |
|
|
gram / grams |
↔ |
|
|
kilogram / kilograms |
↔ |
|
|
kilogram / kilograms |
↔ |
|
|
ounce / ounces |
↔ |
|
|
pound / pounds |
↔ |
|
|
pound / pounds |
↔ |
|
|
milliliter / milliliters |
↔ |
|
|
milliliter / milliliters |
↔ |
|
|
liter / liters |
↔ |
|
|
liter / liters |
↔ |
|
|
gallon / gallons |
↔ |
|
|
hertz |
↔ |
|
|
hertz |
↔ |
|
|
kilohertz |
↔ |
|
|
megahertz |
↔ |
|
|
gigahertz |
↔ |
|
|
watt / watts |
↔ |
|
|
kilowatt / kilowatts |
↔ |
|
|
megawatt / megawatts |
↔ |
|
|
gigawatt / gigawatts |
↔ |
|
|
volt / volts |
↔ |
|
|
milliampere / milliamperes |
↔ |
|
|
ampere / amperes |
↔ |
|
|
decibel / decibels |
↔ |
|
|
kilobit / kilobits |
↔ |
|
|
megabit / megabits |
↔ |
|
|
gigabit / gigabits |
↔ |
|
|
terabit / terabits |
↔ |
|
|
petabit / petabits |
↔ |
|
|
kilobyte / kilobytes |
↔ |
|
|
megabyte / megabytes |
↔ |
|
|
gigabyte / gigabytes |
↔ |
|
|
terabyte / terabytes |
↔ |
|
|
petabyte / petabytes |
↔ |
|
|
bit per second / bits per second |
↔ |
|
|
kilobit per second / kilobits per second |
↔ |
|
|
megabit per second / megabits per second |
↔ |
|
|
gigabit per second / gigabits per second |
↔ |
|
|
terabit per second / terabits per second |
↔ |
|
|
kilobyte per second / kilobytes per second |
↔ |
|
|
megabyte per second / megabytes per second |
↔ |
|
|
gigabyte per second / gigabytes per second |
↔ |
|
|
terabyte per second / terabytes per second |
↔ |
|
|
petabyte per second / petabytes per second |
↔ |
|
|
degree celsius / degrees celsius |
↔ |
|
|
degree celsius / degrees celsius |
↔ |
|
|
degree fahrenheit / degrees fahrenheit |
↔ |
|
|
degree fahrenheit / degrees fahrenheit |
↔ |
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.). For Lexis, these readings are done by the Lexis model, not by the input processor.
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
abc |
a b c |
|
|
|
john |
j o h n |
|
|
|
b. c |
b c |
|
|
|
for example |
↔ |
|
|
|
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" ("salt & pepper" is "salt and pepper").
Common abbreviations
|
Example input |
Lexis |
Odi |
|---|---|---|
|
|
professor |
↔ |
|
|
doctor |
↔ |
|
|
and so on |
↔ |
|
|
Avenue |
↔ |
Dashed words
|
Example input |
Lexis |
Odi |
|---|---|---|
|
|
|
↔ |
|
|
paris [pause 0.2 s] texas |
↔ |
|
|
paris - texas |
↔ |
URLs and e-mails
URLs
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
w w w, dot google, dot com |
↔ |
|
|
|
h t t p s, colon, double slash google, dot com |
↔ |
|
|
|
h t t p s, colon, double slash w w w, dot google, dot com |
↔ |
|
|
|
h t t p s, colon, double slash w w w, dot google, dot com, slash news, equal sign one hundred twenty three |
↔ |
|
|
|
w w w, dot one hundred twenty three, dot com |
↔ |
E-mails
|
Format |
Example input |
Lexis |
Odi |
|---|---|---|---|
|
|
|
|
↔ |
|
|
|
|
↔ |
|
|
|
|
↔ |
|
|
|
|
↔ |
|
|
|
|
↔ |
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 |
|---|---|---|---|
|
|
|
twenty five dollars and ten cents |
↔ |
|
|
|
twenty five euros and ten cents |
↔ |
|
|
|
twenty five u s dollars |
↔ |
|
|
|
one point three million u s dollars |
↔ |
|
|
|
one point three million dollars |
↔ |
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 |
|---|---|---|---|
|
|
u s dollar / u s dollars |
↔ |
cent / cents |
|
|
euro / euros |
↔ |
cent / cents |
|
|
pound sterling / pounds sterling |
↔ |
penny / pence |
|
|
australian dollar / australian dollars |
↔ |
cent / cents |
|
|
canadian dollar / canadian dollars |
↔ |
cent / cents |
|
|
japanese yen / japan yen |
↔ |
none: |
|
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 |
✅ |
↔ |
|
|
underscore |
email address |
|
|
|
|
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 |
✅ |
↔ |
|
|
colon |
in URLs |
✅ |
↔ |
Other symbols are read by name in both voices: / "slash", \ "backslash", ^ "caret", _ "underscore", + "plus", # "pound", * "asterisk" and ~ "tilde". Outside URLs a colon or semicolon is replaced by a full stop.
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-US 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 is present |
the punctuation will be added automatically according to the sentence structure |
a period is added automatically |