Skip to content

Writing text that sounds right

The model has no pace, pitch or loudness knobs; everything expressive comes from the text, and the normaliser does most of the heavy lifting. A few habits make the output noticeably better.

Write the numbers the way you have them

Don't pre-spell numbers. ₹12,450, 2.5 lakh, 10.5%, 15/11/2026, 9:30 am, 1800-209-4567, XXXX4821, OTP 482913 are all read correctly and idiomatically (बारह हज़ार चार सौ पचास रुपये · ढाई लाख · साढ़े दस percent · पंद्रह नवंबर दो हज़ार छब्बीस · सुबह साढ़े नौ बजे). Pre-spelling in English words (twelve thousand) forces English number words the training data barely has.

Mix scripts the way people speak

Hindi words in Devanagari, English words in Latin: आपका payment receive नहीं हुआ है. Writing English words in Devanagari (पेमेंट) works but sounds less natural; writing Hindi in Latin (aapka payment) is not supported.

One sentence, one thought

Short sentences with a full stop or question mark each produce the most natural pauses and rhythm, and let the chunker split cleanly. Use commas for the pauses a speaker would take: ठीक है, 10 नवंबर तक का time note कर लिया है.

Acronyms

ALL-CAPS 2–6 letter words are spelled out (EMI, KYC, UPI, OTP, IFSC). If you want an acronym said as a word that isn't in the built-in list (PIN, PAN, SIM, NACH, CIBIL, NEFT, NAV …), write it in lower case: neft is said as a word, NEFT too, UPSC is spelled.

Names and brands

Proper nouns in Latin script are lower-cased and read phonetically in an Indian-English accent. For an unusual spelling, write it the way it sounds (Finserv → fine as is; Xperia → experia). Hindi names are best in Devanagari.

Codes, OTPs and digits

Codes are read digit by digit with human grouping. Prefer "en_digits": true when the listener will type the code into an English UI (four eight two nine), the default Hindi digits otherwise.

Emphasis and tone

Exclamation marks lift the energy (जी, बिल्कुल!); questions get question intonation. Capital letters do not add emphasis (they trigger spelling). There is no SSML; temperature (default 0.3) adds variation, 0.1 is flatter and more stable for IVR.

Length

A request may hold 4 000 characters and splits into up to 64 chunks. For a human on the line, send one sentence at a time over the WebSocket instead; see the streaming guide.