Text-to-speech (TTS) engines can read the same string in several valid ways. Numbers, dates, symbols, acronyms, and verse notation are especially tricky because context matters and languages differ.
It is a current limitation of TTS. The same string can be pronounced differently depending on context and language. The most reliable way to control pronunciation is to write things the way you want them spoken.
TL;DR
Write it out in words for anything ambiguous: numbers, dates, ranges, currency, acronyms, verse notation, units.
Add commas where you want a pause.
Use “through” for ranges instead of hyphens.
Match the voice language to the script language.
Best practices
Write numbers in words
100
→ one hundred10.5
→ ten point five21st
→ twenty-firstWith units:
70 mph
→ seventy miles per hour,3 kg
→ three kilograms
Write currency in words
$100
→ one hundred dollars$10.50
→ ten dollars and fifty cents€29.99
→ twenty-nine euros and ninety-nine cents₹1,200
→ one thousand two hundred rupees
Control ranges and punctuation
1–5
→ one through fiveAdd pauses with commas: Second Timothy, chapter three, verses one through five.
Disambiguate dates and times
10/12/2025
can be read two ways. Prefer October 12, 2025 or 12 October 2025.9:30 PM
can vary by voice. For full control, write nine thirty p.m.
Spell out acronyms and lettered terms
NIV
→ N I V or N.I.V.FBI
→ F B I2D
/3D
→ two D / three DAI
→ A I if you want the letters; Aye-eye can happen in some voices
Bible books, chapters, and verses
2 Timothy 3:1–5
→ Second Timothy, chapter three, verses one through five1 John 4:18
→ First John, chapter four, verse eighteenInclude version if needed: First Corinthians, chapter thirteen, verses four through seven, N I V
Web, hashtags, and handles
hypernatural.ai
→ hypernatural dot A I#CreatorTips
→ hashtag creator tips@Hypernatural
→ at Hypernatural
Language matters
Make sure the voice language matches your script language. The numeral
11
could be eleven in English, once in Spanish, elf in German.
Quick troubleshooting checklist
Did I write ambiguous items in words?
Did I add commas for pauses?
Did I replace hyphens in ranges with “through”?
Does the voice language match my script language?
For acronyms, did I use spaces or dots between letters if needed?