> ## Documentation Index
> Fetch the complete documentation index at: https://www.bolna.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a Hindi voice agent on Bolna

> Build a voice agent that speaks Hindi and Hinglish on Bolna: pick a Hindi transcriber and voice, bias recognition, fix pronunciation, and create it via API.

A Hindi voice agent on Bolna is a regular agent whose transcriber (speech-to-text) and voice (text-to-speech) are both set to Hindi, with a prompt written in Devanagari. This page lists the providers whose Bolna docs confirm Hindi support, the settings that matter most for Hindi and Hinglish calls, and a minimal API example.

If you want one agent that handles both English and Hindi on the same call, start here for the Hindi side, then follow [Set up multilingual voice AI agents](https://www.bolna.ai/docs/customizations/multilingual-languages-support). For other Indian languages, see the [languages overview](https://www.bolna.ai/docs/customizations/languages/overview). For a summary of every Hindi voice and transcriber on Bolna, see [Hindi text to speech](https://www.bolna.ai/hindi-text-to-speech).

***

## Choose a Hindi transcriber

The transcriber turns the caller's Hindi speech into text. Send the plain code `hi` as `transcriber.language`; `hi-IN` is rejected ([Create Agent](https://www.bolna.ai/docs/api-reference/agent/v2/create.md#transcriber)).

| Provider | `provider` / `model` | Hindi notes |
| - | - | - |
| [Sarvam](https://www.bolna.ai/docs/sarvam-transcriber.md) | `sarvam` / `saaras:v4` | Built for Indian languages and code-mixed speech. `saaras:v4` is Sarvam's recommended model and the only Sarvam model that reads `keywords`. |
| [Soniox](https://www.bolna.ai/docs/soniox.md) | `soniox` / `stt-rt-v6` or `stt-rt-v5` | Hindi as a single language, or the multilingual option for callers who mix English and Hindi in one sentence. |
| [AssemblyAI](https://www.bolna.ai/docs/assemblyai.md) | `assembly` / `universal-3-6-pro` | Hindi is one of 32 languages it code-switches across. |
| [Gemini](https://www.bolna.ai/docs/gemini-transcriber.md) | `gemini` / `gemini-3.5-transcribe-live` | Hindi is in its supported language list. |
| [Deepgram](https://www.bolna.ai/docs/deepgram-transcriber.md) | `deepgram` / `nova-2` | Use `nova-2` for Hindi; `nova-3` is English only. |
| [Smallest AI](https://www.bolna.ai/docs/smallest-transcriber.md) | `smallest` / `pulse` | Hindi is listed among its streaming languages. |
| [OpenAI](https://www.bolna.ai/docs/openai-transcriber.md) | `openai` / `gpt-realtime-whisper` | `hi` is listed among its common languages. |
| [Gladia](https://www.bolna.ai/docs/gladia.md) | `gladia` / `solaria-1` | Handles English and Hindi code-switching (Hinglish). |

For callers in India, the Sarvam page calls Sarvam usually the strongest transcriber choice, and the Deepgram page points to Sarvam for better accuracy on Indian languages. Compare all transcribers in [Choosing a speech-to-text provider](https://www.bolna.ai/docs/concepts/choosing-speech-to-text.md).

***

## Choose a Hindi voice

The voice (synthesizer) speaks the agent's replies. Most providers require `language` inside `provider_config`, so set it to `hi` ([Create Agent](https://www.bolna.ai/docs/api-reference/agent/v2/create.md#synthesizer)).

| Provider | `provider` / `model` | Hindi notes |
| - | - | - |
| [Sarvam](https://www.bolna.ai/docs/sarvam-voice.md) | `sarvam` / `bulbul:v4-flash` or `bulbul:v3` | `bulbul:v4-flash` has 129 Hindi voices, including 13 Hindi-English code-mixed voices with `_enhi_` in the id. `bulbul:v3` has 16 voices that work in every Bulbul language. `language` is required. |
| [Maya](https://www.bolna.ai/docs/maya.md) | `maya` / `Maya 2 Native` | Two voices, `Ananya` and `Arjun`, both speak Hindi. `language` is optional and defaults to `en`, so set `hi`. |
| [Kalpa Labs](https://www.bolna.ai/docs/kalpa.md) | `kalpa` / `kalpa-tts-1` | Speaks Hindi, English and code-switched Hinglish from one model, with no `language` parameter. |
| [Soniox](https://www.bolna.ai/docs/soniox-voice.md) | `soniox` / `tts-rt-v2` | Hindi is one of its ten Indian languages. `language` is required. |
| [Navana](https://www.bolna.ai/docs/navana.md) | `navana` / `navana-tts` or `navana-tts-fast` | Every Navana voice speaks Hindi. `language` is required, so set `hi`. |
| [Cartesia](https://www.bolna.ai/docs/cartesia.md) | `cartesia` / `sonic-3.6` | Sonic 3.6 covers 44 languages, including Hindi. Also supports [pronunciation lists](https://www.bolna.ai/docs/customizations/pronunciation.md). |
| [ElevenLabs](https://www.bolna.ai/docs/elevenlabs-voice.md) | `elevenlabs` / `eleven_v4_turbo` or `eleven_v3_conversational` | Both models support 74 languages, including Hindi ([September 2026](https://www.bolna.ai/docs/changelog/september-2026.md) and [August 2026](https://www.bolna.ai/docs/changelog/august-2026.md) changelogs). Also supports [pronunciation lists](https://www.bolna.ai/docs/customizations/pronunciation.md). |

Voice catalogs change over time. Confirm a valid `model` and `voice_id` pair with [List voices](https://www.bolna.ai/docs/api-reference/voice/get_all.md), or preview voices in the [Languages tab](https://www.bolna.ai/docs/agent-setup/audio-tab.md). See [Choosing a text-to-speech provider](https://www.bolna.ai/docs/concepts/choosing-text-to-speech.md) for a wider comparison.

> [!NOTE]
>
> 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 Hindi voice.

***

## Write the prompt for Hindi and Hinglish

* **Write in Devanagari, not romanized Hindi.** `नमस्ते! आप कैसे हैं?` rather than `Namaste! Aap kaise ho?`. 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 write `आपका order status check करने के लिए मुझे थोड़ा समय दीजिए।` instead of forcing a pure Hindi translation.
* **Set gender and politeness explicitly.** For a female persona, ask for consistent feminine verb forms in Hindi.
* **Read alphanumerics character by character, in English.** For OTPs, registration numbers and order IDs, this avoids misheard and mispronounced digits.

The full guidance, with examples, is in [Writing prompts in non-English languages](https://www.bolna.ai/docs/writing-prompts-in-non-english-languages.md).

***

## Create a Hindi agent over the API

This uses the same body shape as the [API quickstart](https://www.bolna.ai/docs/quickstarts/api.md), with Sarvam for both transcription and voice.

**1. Write the agent config**

Save this as `agent.json`:

```json theme={"system"}
{
  "agent_config": {
    "agent_name": "Hindi Support Agent",
    "agent_welcome_message": "नमस्ते! मैं आपकी क्या मदद कर सकती हूँ?",
    "tasks": [{
      "task_type": "conversation",
      "toolchain": { "execution": "sequential", "pipelines": [["transcriber", "llm", "synthesizer"]] },
      "tools_config": {
        "llm_agent": {
          "agent_type": "simple_llm_agent",
          "agent_flow_type": "streaming",
          "llm_config": { "provider": "openai", "model": "gpt-4.1-mini", "max_tokens": 150, "temperature": 0.2 }
        },
        "transcriber": {
          "provider": "sarvam",
          "model": "saaras:v4",
          "language": "hi",
          "stream": true,
          "endpointing": 500,
          "keywords": "Bolna, PhonePe, Flipkart, New Delhi",
          "context": "Inbound support line for an electronics retailer in India. Callers ask about order status and returns, and often read out order numbers."
        },
        "synthesizer": {
          "provider": "sarvam",
          "provider_config": {
            "voice": "Aparna (Customer)",
            "voice_id": "aparna_hi_customer",
            "model": "bulbul:v4-flash",
            "language": "hi",
            "speed": 1.0
          },
          "stream": true,
          "buffer_size": 150
        },
        "input": { "provider": "plivo", "format": "wav" },
        "output": { "provider": "plivo", "format": "wav" }
      },
      "task_config": { "call_terminate": 90, "hangup_after_silence": 10 }
    }]
  },
  "agent_prompts": {
    "task_1": {
      "system_prompt": "आप एक सहायक सपोर्ट एजेंट हैं। संक्षेप में उत्तर दें।"
    }
  }
}
```

`sampling_rate` and `encoding` are left out because Bolna sets them for Sarvam to match the telephony provider.

**2. Create the agent**

```bash curl theme={"system"}
curl https://api.bolna.ai/v2/agent \
  -H "Authorization: Bearer $BOLNA_API_KEY" \
  -H "Content-Type: application/json" \
  -d @agent.json
```

```python Python theme={"system"}
import os, urllib.request, json

with open("agent.json") as f:
    body = json.load(f)

req = urllib.request.Request(
    "https://api.bolna.ai/v2/agent",
    data=json.dumps(body).encode(),
    headers={"Authorization": f"Bearer {os.environ['BOLNA_API_KEY']}",
             "Content-Type": "application/json"},
)
print(json.load(urllib.request.urlopen(req)))
```

The response contains the new `agent_id`.

**3. Place a test call**

Call the agent with [`POST /call`](https://www.bolna.ai/docs/api-reference/calls/make), as in the [API quickstart](https://www.bolna.ai/docs/quickstarts/api.md), and check the transcript with [`GET /executions/{id}`](https://www.bolna.ai/docs/api-reference/executions/get_execution).

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 Hindi transcription most often goes wrong. Bolna has two transcriber fields for this:

* `keywords`: a comma-separated list of terms callers say. On Sarvam this needs `saaras:v4`, and takes up to 50 terms of up to 64 characters each.
* `context`: a sentence or two describing the call. Sarvam reads it on every Saaras model.

> [!NOTE]
>
> Sarvam transcribes English words in the native script of the call's language. On a Hindi agent, a boosted term such as `PhonePe` can come back in Devanagari rather than Latin script.

Not every transcriber reads both fields. See [Keywords and context](https://www.bolna.ai/docs/customizations/asr-keywords-and-context.md) 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 such as `56`. Pronunciation lists work on [ElevenLabs](https://www.bolna.ai/docs/elevenlabs-voice.md) and on [Cartesia](https://www.bolna.ai/docs/cartesia.md) `sonic-3` and newer. On other providers the list is ignored.

* Write how a word should sound in the script the voice speaks. For a Hindi voice, write `नो योर कस्टमर` rather than `know your customer`.
* Each language has its own list, so `56` can be "five six" in English and `पाँच छह` in Hindi.
* A rule only matches text the agent actually says. If the LLM writes a number out in words, a rule for the digits won't apply, so ask the prompt to keep numbers exactly as written.

See [Control how your agent pronounces words](https://www.bolna.ai/docs/customizations/pronunciation.md) for the dashboard steps, the `pronunciation_rules` API field and limits.

***

## Serve Hindi and English on one agent

Many Indian callers move between Hindi and English. Bolna handles this in two ways:

* **Code-mixing within a sentence.** Sarvam, Soniox, AssemblyAI and Gladia transcribe code-mixed speech, and Kalpa Labs speaks Hinglish from one model. A sentence with a few English words is still treated as Hindi.
* **A full language switch.** Add both English and Hindi to one agent with [`multilingual_config`](https://www.bolna.ai/docs/customizations/multilingual-config-reference), each with its own transcriber, voice and prompt. Hindi is one of the languages Bolna [detects automatically](https://www.bolna.ai/docs/customizations/supported-languages#languages-with-automatic-detection) mid-call. The [multilingual quickstart](https://www.bolna.ai/docs/quickstarts/multilingual.md) builds an English and Hindi agent over the API.

On a multilingual agent, you can also:

* [Start a call in Hindi](https://www.bolna.ai/docs/customizations/start-call-in-language.md) with `"agent_data": { "language": "hi" }` on `POST /call`, or an `agent_language` variable in a batch CSV.
* Let system messages such as the hangup and "are you still there?" checks [follow the active language](https://www.bolna.ai/docs/customizations/auto-switch-multilingual-messages.md).
* Read [How language switching works](https://www.bolna.ai/docs/customizations/language-switching-behavior.md) for what does and doesn't trigger a switch.

***

## Phone numbers for Hindi agents in India

* [Buy an Indian number](https://www.bolna.ai/docs/buying-phone-numbers) in the dashboard through Plivo or Vobiz.
* For commercial or telemarketing calls in India, read [How to get 140 & 160-series phone numbers in India](https://www.bolna.ai/docs/obtaining-regulated-phone-numbers.md) for the TRAI and DLT requirements.
* To use numbers from your own carrier, connect it with a [SIP trunk](https://www.bolna.ai/docs/sip-trunking/overview#using-sip-trunks-in-india).

***

## Next steps

> [card] [Multilingual setup](https://www.bolna.ai/docs/customizations/multilingual-languages-support)
>
> Indian language support by provider, and per-language voices and prompts

> [card] [Sarvam speech-to-text](https://www.bolna.ai/docs/sarvam-transcriber.md)
>
> Saaras models, language codes and biasing limits

> [card] [Sarvam text-to-speech](https://www.bolna.ai/docs/sarvam-voice.md)
>
> Bulbul models and the Hindi voice catalog

> [card] [SIP trunks](https://www.bolna.ai/docs/sip-trunking/overview)
>
> Bring your own carrier, including Indian carriers

> [card] [Speech-to-text providers](https://www.bolna.ai/docs/speech-to-text)
>
> Every transcriber Bolna supports

> [card] [Text-to-speech providers](https://www.bolna.ai/docs/text-to-speech)
>
> Every voice provider Bolna supports


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.