Skip to main content

Overview

The TTS engine is sensitive to how structured data is written in the text field. Passing raw strings like 9876543210 or Rs. 1,00,000 causes mispronunciations or garbled output. Core principle:
  • Read digit-by-digit (IDs, PINs, account numbers, phone numbers) → separate every character with a single space: 9 8 7 6 5 4 3 2 1 0
  • Read as a quantity (prices, floor numbers, years) → pass as-is: Rs 1,00,000

1. Phone Numbers

Separate every digit with a single space. Never pass a raw digit string — the engine reads it as a large cardinal number.
ScenarioRaw InputCorrect TTS InputExpected Speech
Mobile (India, 10-digit)98765432109 8 7 6 5 4 3 2 1 0nine eight seven six five four three two one zero
Landline with STD code011223344550 1 1 2 2 3 3 4 4 5 5zero one one two two three three four four five five
International (+91)+919876543210+ 9 1 9 8 7 6 5 4 3 2 1 0plus nine one nine eight seven six…
Toll-free180012345671 8 0 0 1 2 3 4 5 6 7one eight zero zero one two three four five six seven
Do not pass 9876543210, 987-654-3210, or (987) 654-3210 — all cause the engine to misread.

2. Account Numbers

Every character — digit or letter — must be separated by a single space. Account numbers may be alphanumeric; each character is read individually.
ScenarioRaw InputCorrect TTS InputExpected Speech
Bank account (numeric)0123456789010 1 2 3 4 5 6 7 8 9 0 1zero one two three four five…
Alphanumeric accountAB123456789A B 1 2 3 4 5 6 7 8 9A B one two three four five six seven eight nine
Loan accountLN2024001234L N 2 0 2 4 0 0 1 2 3 4L N two zero two four zero zero one two three four
Masked (partial visible)XXXX1234X X X X 1 2 3 4X X X X one two three four

3. PIN Numbers

Each digit must be separated by a single space. The digit 0 is always spoken as “zero”, never “oh”. Leading zeros must never be dropped.
ScenarioRaw InputCorrect TTS InputExpected Speech
4-digit ATM PIN48214 8 2 1four eight two one
6-digit OTP/PIN7392017 3 9 2 0 1seven three nine two zero one
PIN starting with 004920 4 9 2zero four nine two (not: four nine two)
6-digit postal PIN5600015 6 0 0 0 1five six zero zero zero one

4. Addresses

Street and house numbers are read as quantities (not digit-by-digit). Postal PIN codes inside addresses must be digit-by-digit. Road abbreviations (MG, NH) must be letter-spaced. Replace / with the word slash.
ComponentRaw InputCorrect TTS InputExpected Speech
Flat + floorFlat 4B, 2nd FloorFlat 4 B, 2nd FloorFlat four B, second floor
House/door numberNo. 12/3, MG RoadNumber 12 slash 3, M G RoadNumber twelve slash three, M G Road
Postal PIN in addressBengaluru - 560001Bengaluru, 5 6 0 0 0 1Bengaluru, five six zero zero zero one
Full address42, MG Road, Bengaluru - 56000142, M G Road, Bengaluru, 5 6 0 0 0 1forty two, M G Road, Bengaluru, five six zero zero zero one
Apartment unitB-204, Prestige AptsB 204, Prestige AptsB two zero four, Prestige Apartments

5. Aadhaar Card Numbers

Aadhaar is a 12-digit unique ID. Every digit must be separated by a single space. Strip any existing grouping spaces (4-4-4 format) before re-spacing individually.
ScenarioRaw InputCorrect TTS InputExpected Speech
Full Aadhaar2345678912342 3 4 5 6 7 8 9 1 2 3 4two three four five six seven eight nine one two three four
Grouped format2345 6789 12342 3 4 5 6 7 8 9 1 2 3 4(strip groups first, same result)
Masked AadhaarXXXX XXXX 1234X X X X X X X X 1 2 3 4X X X X X X X X one two three four

6. Vehicle Registration Numbers

Indian vehicle registration numbers follow the format: State Code (2 letters) + District Code (2 digits) + Series (1–3 letters) + Number (4 digits). Each character is separated by a single space. Always strip hyphens before formatting. Letters must be uppercase. Format: [State Code] [District No.] [Series] [Reg. Number]
Example: KA | 09 | MF | 1234K A 0 9 M F 1 2 3 4
ScenarioRaw InputCorrect TTS InputExpected Speech
StandardKA09MF1234K A 0 9 M F 1 2 3 4K A zero nine M F one two three four
With hyphensKA-09-MF-1234K A 0 9 M F 1 2 3 4K A zero nine M F one two three four
Delhi vehicleDL4CAF0001D L 4 C A F 0 0 0 1D L four C A F zero zero zero one
MaharashtraMH12DE1433M H 1 2 D E 1 4 3 3M H one two D E one four three three
Tamil NaduTN22BC5678T N 2 2 B C 5 6 7 8T N two two B C five six seven eight
Bharat seriesBH01AB1234B H 0 1 A B 1 2 3 4B H zero one A B one two three four
2-wheeler (short)KA05V1234K A 0 5 V 1 2 3 4K A zero five V one two three four
Do not pass KA-09-MF-1234 with dashes and no spaces — the engine may misread the state code.

7. GST Numbers (GSTIN)

GSTIN is a 15-character alphanumeric code. Every character must be separated by a single space. Lowercase letters must be converted to uppercase. The letter Z at position 14 is always read as the letter “Z”, not “zero”. Structure: [State Code 2 digits] + [PAN 10 chars] + [Entity No.] + [Z] + [Check digit]
ScenarioRaw InputCorrect TTS InputExpected Speech
Karnataka29ABCDE1234F1Z52 9 A B C D E 1 2 3 4 F 1 Z 5two nine A B C D E one two three four F one Z five
Maharashtra27AABCU9603R1Z62 7 A A B C U 9 6 0 3 R 1 Z 6two seven A A B C U nine six zero three R one Z six
Delhi07AAACR5055K1ZR0 7 A A A C R 5 0 5 5 K 1 Z Rzero seven A A A C R five zero five five K one Z R
Tamil Nadu33AAACP1234C1Z13 3 A A A C P 1 2 3 4 C 1 Z 1three three A A A C P one two three four C one Z one
Do not pass raw (29ABCDE1234F1Z5) or hyphenated (29-ABCDE-1234-F1Z5) formats — always space each character individually.

8. Dates

Accepted formats: DD/MM/YY, DD-MM-YY, DD/MM/YYYY, DD-MM-YYYY, DD Month YYYY, DDth Month YYYY. Do not mix separators. Use 4-digit years for historical dates.
FormatCorrect TTS InputExpected SpeechNotes
DD/MM/YY15/08/47fifteenth August forty-sevenYY defaults to 2000s unless context implies otherwise
DD-MM-YY01-01-24first January twenty-four
DD/MM/YYYY15/08/2024fifteenth August two thousand twenty-fourPreferred for unambiguous reading
DD-MM-YYYY01-01-2025first January two thousand twenty-five
Natural language15th August 2024fifteenth August two thousand twenty-fourUse ordinal suffix always
Short month15 Aug 2024fifteenth August two thousand twenty-four
Do not mix separators — 15/08-2024 causes a parsing error and engine failure.

9. Currency and Prices

Indian Rupee must always be written as Rs — exact case, no period, no lowercase, no INR. Place the symbol before the amount with a single space. Use Indian comma grouping (1,00,000) for Rupee amounts — the engine reads lakh and crore natively from this format.
CurrencyDo NOT UseCorrect TTS InputExpected Speech
Indian Rupeers 500 / RS. 500 / Rs. 500 / INR 500Rs 500five hundred rupees
Rupee + paiseRs.49.50 / rs 49.50Rs 49.50forty-nine rupees fifty paise
Large amount (lakh)Rs 100000Rs 1,00,000one lakh rupees
Large amount (crore)Rs 10000000Rs 1,00,00,000one crore rupees
US Dollardollar 20 / USD20$ 20twenty dollars
Euroeuro 15 / EUR15€ 15fifteen euros
British Poundpound 30 / GBP 30£ 30thirty pounds
Japanese Yenyen 1000 / JPY1000¥ 1000one thousand yen

10. Abbreviations and Acronyms

Acronyms and abbreviations must always be UPPERCASE. Lowercase or mixed-case versions risk being misread as words. Each uppercase letter is read individually.
TypeDo NOT UseCorrect TTS InputExpected Speech
Organisationrnr / RnrRNRR N R
Paramilitarycrpf / CrpfCRPFC R P F
Space agencyisro / IsroISROI S R O
Finance termemi / EmiEMIE M I
National IDpanPANP A N
Identity checkkyc / KycKYCK Y C
OTP/securityotpOTPO T P
Vehicle typesuvSUVS U V
TaxgstGSTG S T
Some acronyms pronounced as words (NASA, NEFT, SWIFT) may be read as words rather than letter-by-letter. Verify pronunciation during QA for each acronym used in your content.

11. Ordinal Numbers

Always include the ordinal suffix (st, nd, rd, th). Without it, the engine reads bare numbers as cardinals (“one”, “two”) instead of ordinals (“first”, “second”).
ContextDo NOT UseCorrect TTS InputExpected Speech
Floor3 floor3rd floorthird floor
Rank1 rank1st rankfirst rank
Date in sentenceThe 15 of AugustThe 15th of Augustthe fifteenth of August
Anniversary25 anniversary25th anniversarytwenty-fifth anniversary
Queue positionYou are 2 in queueYou are 2nd in queueyou are second in queue

12. Decimals and Percentages

Use a period (.) as the decimal separator — never a comma. Percentages use the % symbol directly after the number with no space. Avoid trailing zeros in Rupee amounts unless paise must be communicated.
TypeDo NOT UseCorrect TTS InputExpected Speech
Interest rate8,5%8.5%eight point five percent
Discount20 percent off20% offtwenty percent off
Rupee (no trailing zeros)Rs 1,234.00Rs 1,234one thousand two hundred thirty-four rupees
Weight/measure1,5 kg1.5 kgone point five kilograms
Score/ratio7,8 out of 107.8 out of 10seven point eight out of ten

Quick Reference

Data TypeRuleExample
Phone NumberEach digit separated by single space9 8 7 6 5 4 3 2 1 0
Account NumberEach character (alpha + digit) separated by single spaceA B 1 2 3 4 5 6 7 8 9
PIN NumberEach digit by single space; 0 = “zero” never “oh”4 8 2 1
Aadhaar NumberEach of 12 digits separated by single space2 3 4 5 6 7 8 9 1 2 3 4
Vehicle Reg. NumberEach character separated by single space; strip hyphensK A 0 9 M F 1 2 3 4
GST / GSTINAll 15 characters separated by single space; uppercase only2 9 A B C D E 1 2 3 4 F 1 Z 5
Address (postal PIN)PIN digits only → digit-by-digit; house numbers read naturallyBengaluru, 5 6 0 0 0 1
Currency (Rupee)Use Rs — not rs / RS / Rs. / INR; Indian comma groupingRs 1,00,000
Currency (others)Use symbol $ £ ¥ before amount with one space$ 20 / € 15
DatesDD/MM/YYYY or DD-MM-YYYY; ordinal suffix in natural language15/08/2024 or 15th August 2024
AcronymsAlways UPPERCASE — never lowercase or mixed caseCRPF KYC OTP
OrdinalsAlways include suffix: 1st, 2nd, 3rd, 15th3rd floor / 15th August
DecimalsPeriod (.) not comma; % directly after number8.5% / 1.5 kg