text you send before it synthesizes, so numbers, money, dates,
and IDs come out right. Rs 2,45,600 is read as “two lakh forty five thousand six
hundred rupees”, and 09/03/2025 as “ninth March two thousand twenty five”. you write
text the normal way.
there is one thing you decide: which digits should be read one at a time. wrap those in
double quotes. write everything else plainly.
normalization runs by default. set "normalization": false on a request to send your
text through untouched.
the one rule
a run of digits can be read two ways, and only you know which you mean.
currency symbols,
%, dates, and times are picked up on their own. write them the
natural way.
why quotes? a bare
8123456789 could be a phone number or a very large count.
rather than guess, silk spells out what you put in quotes and reads everything else
as a number. quoting is how you tell it which one you meant.quick reference
numbers & money
write quantities plainly. silk handles indian grouping (lakh/crore), decimals, and currency symbols on its own. no quotes.
currency symbols:
₹, Rs, Rs., INR, $, €, £, ¥, with or without a space
before the amount.
do
- write
Rs 2,45,600. the indian comma grouping is read as lakh/crore. - put the symbol before the amount (
$45, not45$).
- don’t quote an amount.
"3400"reads as “three four zero zero”, not the price.
percentages, decimals & time
time is read 24-hour to 12-hour with AM/PM. use a period for decimals (
3.2), never a
comma.
dates
writeDD/MM/YYYY or DD-MM-YY (india, day first). silk reads an ordinal day, then
the month name, then the year.
use 4-digit years for anything historical or ambiguous.
24/7 and 3-2-1 are not read
as dates; they come out as their numbers.
IDs, always quote
put any identifier in double quotes. digits turn into words, letters stay as letters, separators (spaces,-, /) are dropped, and leading zeros are kept.
phone numbers with a country code
write the+ as the word plus, and quote the digits:
"+918123456789" won’t work; the + inside the quotes isn’t spelled cleanly.
per-model notes
the rules above are the same for both models. these are the only differences. muga. your[tone] tag stays at the very start. normalization leaves tags and
<events> alone, so tagging and normalizing never interfere with each other.
description.
normalization only ever touches text, so your description reaches the model exactly
as you wrote it.
edge cases & gotchas
- digits stuck to letters are left alone.
B2B,COVID19,12kgare never split. - a quoted sentence isn’t spelled out.
"see you at 400"reads “see you at four hundred”, not letter by letter. only clean identifiers (every token has a digit) get spelled. - leading zeros survive only inside quotes.
"0083"reads “zero zero eight three”; an unquoted0083becomes “eighty three”. - ranges:
4-6reads “four-six”. write4 to 6if you want the word “to”. - running the same text through twice is safe; normalized text stays as it is.
turning normalization off
set"normalization": false and silk reads your text as-is. nothing is spelled out or
converted.
here is the same input both ways: