description. hear one:
the description formula
three parts, in this order, separated by commas:the{style},{accent},{pace}
{...} parts are placeholders you fill in from the vocabulary
below. every part is optional; leave one out and silk fills it in.
cheerful in it changes anything. see
free text.
vocabulary
every description comes down to these values:- style:
professional,happy,sad,excited,angry - accent:
Indian English accent,Hindi accent,Telugu accent,Tamil accent,Kannada accent,Bengali accent,Punjabi accent - pace:
fast pace,steady pace,slow pace
what silk fills in
a part you leave out gets a default:- style:
professional - pace:
fast pace - accent: the one that matches the script of your
text
so
happy, slow pace on tamil text is read as happy, Tamil accent, slow pace,
and marathi text sent with no description at all is read as
professional, Hindi accent, fast pace.
free text
a mulberry 1.5 style sentence works too. silk picks out the style, accent and pace words it contains, plus a few common synonyms, and ignores the rest:
gender, age, pitch, timbre and role are ignored: the voice comes from
speaker.
if a description names more than one style, the first one wins, so
excited but calm is excited.
accents are ranked instead of first-come: an explicit accent (tamil accent,
bengali-accented, indian english accent) beats a bare language name
(hindi, indian english), which beats a plain english. so
an english-speaking voice with a bengali accent is Bengali accent, and
english voice, tamil is Tamil accent.
[happy]
becomes that paragraph’s style.
examples
press play on any one, and copy it to start from it. and a request body per language:Hindi accent for devanagari, Indian English accent for gujarati. the marathi
one names no speaker either, so it gets ira.
send it
put your text intext and the delivery in description. add speaker to pick
a voice other than ira.
writing text
- use the language’s own script. tamil in tamil script, marathi in devanagari, urdu in perso-arabic. don’t romanise indian languages.
- english words can stay in latin inside indian-language text, e.g.
आपका order कल तक पहुँच जाएगा। - there’s no
languagefield. the text decides, and its script picks the accent unless you name one. - three inline tags, no
[tone]markers.<laugh>,<chuckle>and<sigh>are performed where you place them:हमारा नाम लिस्ट में है! <laugh> आज घर में जश्न होगा।. any other<tag>is removed before synthesis. the overall delivery comes fromdescription. - numbers, money, dates and times are normalized before speaking, exactly as on mulberry. they come out as english number words, which read naturally inside any indian-language text. wrap anything that must be read digit by digit, like an otp, in double quotes. see numbers, ids & dates.
keep normalization on.
"normalization": false sends your text through
untouched, and raw digits and ₹ amounts are often misread.length
one request speaks up to about 80 seconds of audio: roughly 1,200 english characters, or about 600 characters of indic-script text at a steady pace. split longer text into sentences and send them one after another, with the samespeaker and description.
a generation that can’t finish doesn’t come back cut off. you get
502 GENERATION_TOO_LONG over http, or an error frame with code
GENERATION_TOO_LONG over a websocket, and you aren’t charged for it. any other
failure, like the engine being unreachable, is GENERATION_ERROR.
using mulberry 1.6 in your own voice agent
mulberry 1.6 reads a complete sentence or utterance at once, and streams the audio out as it’s generated. send each sentence as soon as your llm has finished it, onetext frame per utterance, and play the audio as it arrives.
keep the same speaker and description for the whole conversation.
a new text frame while one is still generating interrupts it (latest-wins),
so never send a sentence in pieces: only the last piece is spoken in full.