Skip to main content
A Marathi voice agent on Bolna is a regular agent whose transcriber (speech-to-text) and voice (text-to-speech) are both set to Marathi, with a prompt written in Devanagari. This page lists the providers whose Bolna docs confirm Marathi support, the language code to send, and a minimal API example. Bolna’s language code for Marathi is mr. Marathi is one of the languages Bolna detects automatically mid-call. If you want one agent that handles both English and Marathi on the same call, start here for the Marathi side, then follow Set up multilingual voice AI agents. For every language, see the languages overview.

Choose a Marathi transcriber

The transcriber turns the caller’s Marathi speech into text. Send the plain code mr as transcriber.language, not a locale such as mr-IN (Create Agent). For callers in India, the Sarvam page calls Sarvam usually the strongest transcriber choice. Compare all transcribers in Choosing a speech-to-text provider.

Choose a Marathi voice

The voice (synthesizer) speaks the agent’s replies. Most providers require language inside provider_config, so set it to mr (Create Agent). Voice catalogs change over time. Confirm a valid model and voice_id pair with List voices, or preview voices in the Languages tab. See Choosing a text-to-speech provider for a wider comparison.
On Sarvam bulbul:v4-flash, the spoken language follows the script of the text, not language. Keep the prompt in Devanagari and the voice a Marathi voice. A v4 Flash voice id names its language, as <persona>_mr_<use case>.

Write the prompt for Marathi

  • Write in Devanagari, not romanized Marathi. नमस्कार! तुम्ही कसे आहात? rather than Namaskar! Tumhi kase aahat?. Native script gives more accurate pronunciation and stops the text being treated as English.
  • Keep common English loanwords in Latin script. Callers say “order”, “OTP” and “support ticket” in English, so keep those words as they are inside Devanagari text instead of forcing a pure Marathi translation.
  • Set gender and politeness explicitly. These are often carried by verb forms, so name the forms you want for the agent’s persona rather than writing “be polite”.
  • Read alphanumerics character by character, in English. For OTPs, registration numbers and order IDs, this avoids misheard and mispronounced digits.
  • Leave language switching out of the prompt. Bolna switches languages itself.
The full guidance, with examples, is in Writing prompts in non-English languages.

Create a Marathi agent over the API

This uses the same body shape as the API quickstart, with Sarvam for both transcription and voice.
1

Write the agent config

Save this as agent.json:
The voice is priya, one of the 16 bulbul:v3 voices that work in every Bulbul language. To use one of the 9 Marathi bulbul:v4-flash voices instead, set model to bulbul:v4-flash and take the voice and voice_id pair from List voices. sampling_rate and encoding are left out because Bolna sets them for Sarvam to match the telephony provider.
2

Create the agent

The response contains the new agent_id.
3

Place a test call

Call the agent with POST /call, as in the API quickstart, and check the transcript with GET /executions/{id}.
To use another provider, swap the transcriber or synthesizer block for one from the provider’s page. Every combination is validated when you create the agent: an unsupported transcriber model and language pair returns 400 Provided language: <language> is not available for the model: <model>.

Improve recognition with keywords and context

Brand names, product names and place names are where Marathi transcription most often goes wrong. Bolna has two transcriber fields for this:
  • keywords: a comma-separated list of terms callers say.
  • context: a sentence or two describing the call.
Support for Marathi transcribers:
  • Sarvam: keywords on Sarvam needs saaras:v4, and takes up to 50 terms of up to 64 characters each. context works on every Saaras model.
  • Soniox: reads both. context can run to about 10,000 characters.
  • AssemblyAI: reads both. Up to 100 terms, and context up to 1,750 characters.
  • Gemini is not in the provider support table for these fields.
Sarvam transcribes English words in the native script of the call’s language. On a Marathi agent, a boosted term such as PhonePe can come back in Devanagari rather than Latin script.
See Keywords and context for the full provider support table and how to write good terms.

Fix pronunciation of numbers and names

A pronunciation list tells the voice how to say a word: an acronym, a brand name, a place name, or a number. Pronunciation lists work on ElevenLabs and on Cartesia sonic-3 and newer; of these, only ElevenLabs is confirmed for Marathi. On other providers the list is ignored. Write how a word should sound in Devanagari, and keep in mind that each language has its own list. See Control how your agent pronounces words for the dashboard steps, the pronunciation_rules API field and limits.

Serve Marathi and English on one agent

Many callers move between Marathi and English. Bolna handles this in two ways:
  • Code-mixing within a sentence. Sarvam and Soniox transcribe callers who mix English into Marathi; on Soniox, pick the multilingual option. A sentence with a few English words is still treated as Marathi.
  • A full language switch. Add both English and Marathi to one agent with multilingual_config, each with its own transcriber, voice and prompt. Marathi is one of the languages Bolna detects automatically, so with the default “requested or auto detected” trigger the agent follows a caller who moves into Marathi. The multilingual quickstart shows the API shape.
On a multilingual agent, you can also:
  • Start a call in Marathi with "agent_data": { "language": "mr" } on POST /call, or an agent_language column set to mr in a batch CSV. Inbound calls can return agent_language from your caller data source.
  • Let system messages such as the hangup and “are you still there?” checks follow the active language.
  • Read How language switching works for what does and doesn’t trigger a switch.
Hindi, Marathi and Urdu are look-alike languages, so Bolna decides a switch between them from the grammar of the whole sentence. Configure every language your callers use, each with its own voice and transcriber.

Notes

  • Marathi and Hindi are both written in Devanagari. On a Hindi and Marathi agent, give each language its own prompt and its own voice, so a Marathi turn is never spoken by a Hindi voice.
  • On AssemblyAI, Marathi needs universal-3-6-pro. universal-3-5-pro does not cover it.

Phone numbers for Marathi agents in India


Next steps

Languages overview

Every language with a guide, and its providers

Multilingual setup

Indian language support by provider, and per-language voices and prompts

Sarvam speech-to-text

Saaras models, language codes and biasing limits

Sarvam text-to-speech

Bulbul models and voice catalogs per language

Start a call in a language

Pick the opening language per call, batch row or inbound caller

How language switching works

What does and doesn’t trigger a mid-call switch