Skip to content

Voices

Forty-seven production voices in three languages, all at 24 kHz and all behind the same API and key:

  • Hinglish — twenty-one voices. Trained on Hinglish: they read Devanagari Hindi, Latin-script English and code-mixed sentences in one breath. Saanvi and Sahil are the defaults and carry three expressions (excited, sad, whisper); the nineteen others (Meera … Mahesh) are new in v2.0 (29 October 2026); all twenty-one are served by v2.1 since 31 October 2026 (the last word of a sentence is always spoken, repeated phrases read once, clearer English — see the changelog). The model reads Hinglish typed in देवनागरी or in roman letters ("aapki EMI kal due hai") and carries everything earlier releases learned: numbers, dates, amounts, OTPs, phone numbers, e-mails and URLs, plus the pronunciation of English words inside Hindi sentences (stress, silent letters, "ch"/"th"/"-tion" sounds, words like record, read and lead).
  • English (US) — eighteen voices (since 2026-10-20), nine female and nine male, Western English with US and UK accents. Kiara is the default; Kevin the male default. See English (US) voices below.
  • English (IN) — eight voices (since 2026-11-05), four female and four male, Indian English. Aditya is the default; Ananya the female default. See English (IN) voices below.

A voice belongs to one language. Send Hinglish text to a Hinglish voice and English text to an English (US) or English (IN) voice: each language has its own normaliser, and GET /v1/voices tells you which is which (language, gender, style, styles).

Hinglish voices

The two defaults, each with its neutral sample and the three expressions:

Saanvi saanviWarm, clear, collections-ready. The default voice. Female. Expressions: excited · sad · whisper. excited sad whisper

Sahil sahilSteady, friendly, confident. The male default. Male. Expressions: excited · sad · whisper. excited sad whisper

The nineteen v2.0 voices, nine female and ten male. The register column is the measured pitch of each voice relative to the set (a deeper or brighter voice, not a personality); every one has a sample in the portal's voice gallery.

Voice id Gender Register
Meera meera female bright
Mahi mahi female mid register
Mitali mitali female the brightest of the set
Manasi manasi female bright
Madhavi madhavi female low female register
Mohini mohini female mid register
Malvika malvika female bright
Mansi mansi female mid register
Mukta mukta female mid-bright
Manav manav male light male register
Mohan mohan male deep
Mihir mihir male deep
Madhav madhav male the deepest of the set
Mayank mayank male light, youthful
Manish manish male light male register
Mukul mukul male mid male register
Mohit mohit male light male register
Milan milan male mid male register
Mahesh mahesh male mid male register

Retired voice ids

bela and barun are no longer served: a request naming either gets 400 unknown voice, as do the two ids v1 shipped. Call GET /v1/voices for the current list, and update any hard-coded voice id and any key whose allow-list names a retired one. saanvi, sahil and every English (US) id are unchanged.

Every sample is unedited engine output: the same service-callback paragraph (codes, a UK number read three times, an app version, an amount, a time) with the agent's own gender in the verb.

Saanvi and the female voices read: नमस्ते, electricity repair के लिए आज सुबह बात हुई थी। Nivedita Xpress Distribution Company के case में मेरे अलावा alternate contact सिद्धार्थ भट्टाचार्य हैं। Callback +44 00000 19024 पर करें। Support app का version v7.07.1 है; processing estimate ₹17.99 है। इसे payment approval न मानें। मैं इन details की confirmation कर रही हूँ। आपने मेरा phone number groups में लिखने को कहा था; अब सही number है: +44 00000 19024। पहले वाला number गलत था; ऊपर लिखे सही number का हर digit जरूरी है। कृपया पुराने number पर call न करें, क्योंकि वह पड़ोसी का है और वे घर पर नहीं होंगे। शाम 6:30 के बाद मैं available रहूँगी। Meter की photo पहले ही भेज दी है, इसलिए काम शुरू करने से पहले दोबारा आने की जरूरत नहीं है। कृपया आने का estimated time message में बता दें। Reply के साथ +44 00000 19024 जोड़ दें। इस हिस्से के बिना confirmation incomplete रहेगी और फिर से check करना होगा।

Sahil and the male voices read: नमस्ते, electricity repair के लिए आज सुबह बात हुई थी। Nivedita Xpress Distribution Company के case में मेरे अलावा alternate contact सिद्धार्थ भट्टाचार्य हैं। Callback +44 00000 19024 पर करें। Support app का version v7.07.1 है; processing estimate ₹17.99 है। इसे payment approval न मानें। मैं इन details की confirmation कर रहा हूँ। आपने मेरा phone number groups में लिखने को कहा था; अब सही number है: +44 00000 19024। पहले वाला number गलत था; ऊपर लिखे सही number का हर digit जरूरी है। कृपया पुराने number पर call न करें, क्योंकि वह पड़ोसी का है और वे घर पर नहीं होंगे। शाम 6:30 के बाद मैं available रहूँगा। Meter की photo पहले ही भेज दी है, इसलिए काम शुरू करने से पहले दोबारा आने की जरूरत नहीं है। कृपया आने का estimated time message में बता दें। Reply के साथ +44 00000 19024 जोड़ दें। इस हिस्से के बिना confirmation incomplete रहेगी और फिर से check करना होगा।

Expressions

Saanvi and Sahil can speak the same text in three expressions besides their neutral voice. Send the optional style field with the request (REST body or WebSocket message): excited, sad or whisper; leave it out, or send neutral, for the voice as is.

tts.sh
curl -sN -X POST https://api.vartalaap.si/v1/tts -H "x-api-key: $VARTALAAP_API_KEY" -H "content-type: application/json" \
  -d '{"text":"बधाई हो! आपका loan approve हो गया है.","voice":"saanvi","style":"excited","format":"wav"}' | ffplay -nodisp -autoexit -i -
  • GET /v1/voices lists the expressions a voice carries in its styles field (["excited","sad","whisper"] for Saanvi and Sahil, [] for every other voice). The expressions are not voices of their own: there is no saanvi-excited id.
  • A style on a voice that does not carry it plays the voice neutral, with no error. An unknown style name is 400 unknown style <x>; styles: excited, sad, whisper.
  • English (US) and English (IN) voices ignore style; for the English (US) voices, their style metadata in GET /v1/voices (reading / conversation) describes the voice and is not a request field.
  • Pace, digits, seed and the output chain apply to an expression exactly as to the neutral voice; the price is the same.

English (US) voices

Western English, 24 kHz, streaming, the same price. The model is case-aware, so write English the way you would type it: numbers, dates, times, money ($, £, €), codes and URLs are read out by the English normaliser; the digits field does not apply (English throughout, Western grouping — two million, not twenty lakh). Spaced digit groups are read digit by digit with a pause between the groups: PIN 751 378 → PIN seven five one, three seven eight; Account number 0012 3456 7890 → Account number zero zero one two, three four five six, seven eight nine zero.

Voice id Gender Style
Kiara kiara female reading the English (US) default · clear, even
Kenna kenna female conversation bright, conversational
Kate kate female conversation warm, British
Kyra kyra female conversation soft, calm
Kelsey kelsey female reading composed narrator
Kristen kristen female reading crisp, confident
Kaia kaia female reading low, steady
Kimberly kimberly female conversation upbeat, approachable
Kira kira female conversation mature, assured
Kevin kevin male reading the male default · steady, clear
Kyle kyle male conversation friendly, conversational
Kieran kieran male conversation warm, British
Kenneth kenneth male conversation deep, unhurried
Kurt kurt male conversation direct, energetic
Kai kai male conversation light, youthful
Keith keith male reading calm narrator
Kelvin kelvin male reading measured, authoritative
Kristof kristof male reading rich, steady

Reading voices hold a steady, narrated pace (IVR, statements, long text); conversation voices phrase like someone talking (assistants, sales, support). Every voice has a sample in the portal's voice gallery; the two defaults read the English version of the collections line above:

Kiara kiaraClear, even. The English (US) default. Female.

Kevin kevinSteady, clear. The male default. Male.

"Hello, we spoke this morning about the electricity repair. For the Nivedita Xpress Distribution Company case, the alternate contact besides me is Siddharth Bhattacharya. Please call back on +44 00000 19024. The support app is version v7.07.1, and the processing estimate is ₹17.99. Please don't treat this as a payment approval. I'm confirming these details. You asked me to write my phone number in groups; the correct number is +44 00000 19024. The earlier number was wrong, and every digit of the number above matters. Please don't call the old number: it belongs to a neighbour, and they won't be home. I'll be available after 6:30 pm. I've already sent the meter photo, so there's no need to visit again before starting the work. Please message me your estimated arrival time. Add +44 00000 19024 to your reply. Without it, the confirmation stays incomplete and will have to be checked again."

tts.sh
curl -sN -X POST https://api.vartalaap.si/v1/tts -H "x-api-key: $VARTALAAP_API_KEY" -H "content-type: application/json" \
  -d '{"text":"Your one time password is 482913. It expires in 10 minutes.","voice":"kiara","format":"wav"}' -o otp.wav

English (IN) voices

Indian English, 24 kHz, streaming, the same price (since 2026-11-05). language is en-IN in GET /v1/voices. Write English the way you would type it; numbers, amounts, times, e-mails and links are read by the English (IN) normaliser with Indian conventions (double and triple for repeated digits, lakh and crore, rupees), and the digits field does not apply. See how English (IN) reads numbers.

Voice id Gender
Ananya ananya female the female default
Aditi aditi female
Anika anika female
Avni avni female
Arjun arjun male
Aarav aarav male
Aditya aditya male the English (IN) default
Ayaan ayaan male

Every voice has a sample in the portal's voice gallery; the two defaults read the same paragraph as the English (US) voices, with an Indian phone number:

Ananya ananyaThe female default. Female.

Arjun arjunMale.

"Hello, we spoke this morning about the electricity repair. For the Nivedita Xpress Distribution Company case, the alternate contact besides me is Siddharth Bhattacharya. Please call back on +91 98200 19024. The support app is version v7.07.1, and the processing estimate is ₹17.99. Please don't treat this as a payment approval. I'm confirming these details. You asked me to write my phone number in groups; the correct number is +91 98200 19024. The earlier number was wrong, and every digit of the number above matters. Please don't call the old number: it belongs to a neighbour, and they won't be home. I'll be available after 6:30 pm. I've already sent the meter photo, so there's no need to visit again before starting the work. Please message me your estimated arrival time. Add +91 98200 19024 to your reply. Without it, the confirmation stays incomplete and will have to be checked again."

tts.sh
curl -sN -X POST https://api.vartalaap.si/v1/tts -H "x-api-key: $VARTALAAP_API_KEY" -H "content-type: application/json" \
  -d '{"text":"Your OTP is 699884. The amount due is Rs 2,50,000.","voice":"ananya","format":"wav"}' -o otp.wav

Listing voices

tts.sh
curl -s https://api.vartalaap.si/v1/voices -H "x-api-key: $VARTALAAP_API_KEY"
js title="tts.mjs"on {"voices":[{"name":"saanvi","language":"hi-IN+en-IN","gender":"female","style":"","styles":["excited","sad","whisper"],"sample_rate":24000,"prompt_frames":102,"model":"pocket-tts-hinglish-v2.0-sft3000"}, {"name":"sahil","language":"hi-IN+en-IN","gender":"male","style":"","styles":["excited","sad","whisper"],"sample_rate":24000,"prompt_frames":102,"model":"pocket-tts-hinglish-v2.0-sft3000"}, {"name":"meera","language":"hi-IN+en-IN","gender":"female","style":"","styles":[],"sample_rate":24000,"prompt_frames":102,"model":"pocket-tts-hinglish-v2.0-sft3000"}, … 18 more Hinglish voices …, {"name":"kiara","language":"en","gender":"female","style":"reading","sample_rate":24000,"prompt_frames":146,"model":"pocket-tts-english-v1"}, {"name":"kenna","language":"en","gender":"female","style":"conversation","sample_rate":24000,"prompt_frames":144,"model":"pocket-tts-english-v1"}, … 16 more English (US) voices …, … 8 English (IN) voices, `"language":"en-IN"` …], "model":"pocket-tts-hinglish-v2.0-sft3000","language":"hi-IN+en-IN"}

The list is filtered by the key's voice allow-list. Voice ids are lowercase and stable; new voices are announced in the changelog. language is hi-IN+en-IN for the Hinglish voices, en for the English (US) ones and en-IN for the English (IN) ones; gender is female or male; style is reading or conversation for the English (US) voices (empty for Hinglish and English (IN)); styles lists the expressions a voice carries (empty for all but Saanvi and Sahil).

Choosing

Saanvi Sahil the 19 v2.0 voices
Collections, reminders, KYC follow-ups ✓ default ✓ ✓ pick a register
Order and delivery updates ✓ ✓ ✓
Sales, onboarding ✓ excited ✓ warmer close, excited ✓ brighter voices (Mitali, Meera, Mayank)
Long-form reading (statements, policies) ✓ ✓ ✓ deeper voices (Madhavi, Mohan, Madhav)
Apologies, bad news ✓ sad ✓ sad neutral only
Quiet, intimate delivery ✓ whisper ✓ whisper neutral only

Pace is fixed per voice (female 1×, male 1.15×, mohit/manish and the English (IN) male voices 1×; GET /v1/voices reports speed); a speed field in a request is ignored. The pace is applied after the model without changing the pitch (Pace). Pitch is not adjustable, and loudness is evened out across voices by the output chain; beyond the three expressions on Saanvi and Sahil, expressiveness comes from the text itself. See Writing text that sounds right. temperature (default 0.3) trades stability for variation; seed makes a request reproducible.

Your own voice

A bespoke voice on the same engine is billed like any other: 10 paise per 1,000 characters. Record about thirty minutes, we train and gate it, and it appears in your project under its own id. Request it under Train your voice in the portal; details in the guide.