# Indian Languages

> Configure voice agents for Indian languages including Hindi, Tamil, Telugu, Bengali, and more with optimal provider combinations.

Source: https://edesy.in/docs/voice-agent/languages/indian-languages

Comprehensive guide to configuring voice agents for Indian languages with the best provider combinations for each language.

## Supported Languages

| Language | Code | STT | TTS | LLM |
|----------|------|-----|-----|-----|
| Hindi | hi-IN | Deepgram, Google | Azure, Google | Gemini |
| Tamil | ta-IN | Deepgram, Google | Azure, Google | Gemini |
| Telugu | te-IN | Google, ElevenLabs | Azure | Gemini |
| Bengali | bn-IN | Deepgram, Google | Azure, Google | Gemini |
| Marathi | mr-IN | Google | Azure | Gemini |
| Gujarati | gu-IN | Google | Azure, Google | Gemini |
| Kannada | kn-IN | Google | Azure, Google | Gemini |
| Malayalam | ml-IN | Google | Azure, Google | Gemini |
| Punjabi | pa-IN | Google | Azure | Gemini |
| Assamese | as-IN | ElevenLabs, Google | Azure | Gemini |
| Odia | or-IN | ElevenLabs | Azure | Gemini |

## Provider Recommendations

### Hindi (hi-IN)

```json
{
  "agent": {
    "language": "hi-IN",
    "sttProvider": "deepgram",
    "sttModel": "nova-3",
    "sttConfig": {
      "language": "hi",
      "model": "nova-3"
    },
    "ttsProvider": "azure",
    "ttsVoice": "hi-IN-SwaraNeural",
    "llmProvider": "gemini-2.5",
    "llmModel": "gemini-2.5-flash-lite"
  }
}
```

**Azure Hindi Voices:**
| Voice | Gender | Style |
|-------|--------|-------|
| hi-IN-SwaraNeural | Female | Professional |
| hi-IN-MadhurNeural | Male | Professional |
| hi-IN-AnanyaNeural | Female | Conversational |

### Tamil (ta-IN)

```json
{
  "agent": {
    "language": "ta-IN",
    "sttProvider": "deepgram",
    "sttModel": "nova-3",
    "sttConfig": {
      "language": "ta"
    },
    "ttsProvider": "azure",
    "ttsVoice": "ta-IN-PallaviNeural",
    "llmProvider": "gemini",
    "llmModel": "gemini-2.0-flash"
  }
}
```

**Azure Tamil Voices:**
| Voice | Gender | Style |
|-------|--------|-------|
| ta-IN-PallaviNeural | Female | Professional |
| ta-IN-ValluvarNeural | Male | Professional |

### Telugu (te-IN)

```json
{
  "agent": {
    "language": "te-IN",
    "sttProvider": "google",
    "sttModel": "chirp_2",
    "sttConfig": {
      "languageCode": "te-IN"
    },
    "ttsProvider": "azure",
    "ttsVoice": "te-IN-ShrutiNeural",
    "llmProvider": "gemini",
    "llmModel": "gemini-2.0-flash"
  }
}
```

### Bengali (bn-IN)

```json
{
  "agent": {
    "language": "bn-IN",
    "sttProvider": "deepgram",
    "sttModel": "nova-3",
    "sttConfig": {
      "language": "bn"
    },
    "ttsProvider": "azure",
    "ttsVoice": "bn-IN-TanishaaNeural",
    "llmProvider": "gemini",
    "llmModel": "gemini-2.0-flash"
  }
}
```

### Assamese (as-IN)

```json
{
  "agent": {
    "language": "as-IN",
    "sttProvider": "elevenlabs",
    "sttModel": "scribe",
    "sttConfig": {
      "language": "as"
    },
    "ttsProvider": "azure",
    "ttsVoice": "as-IN-YashicaNeural",
    "llmProvider": "gemini",
    "llmModel": "gemini-2.0-flash"
  }
}
```

**Azure Assamese Voices:**
| Voice | Gender |
|-------|--------|
| as-IN-YashicaNeural | Female |
| as-IN-PriyomNeural | Male |

## Provider Details

### STT Providers for Indian Languages

#### Deepgram Nova-3

Best for: Hindi, Tamil, Bengali, Marathi

```go
sttConfig := DeepgramConfig{
    Model:    "nova-3",
    Language: "hi", // or ta, bn, mr
    Features: DeepgramFeatures{
        Punctuate:   true,
        Endpointing: 300,
    },
}
```

**Accuracy by Language:**
| Language | WER (Word Error Rate) |
|----------|----------------------|
| Hindi | 8-12% |
| Tamil | 10-15% |
| Bengali | 10-15% |

#### Google Chirp 2

Best for: All Indian languages, especially regional

```go
sttConfig := GoogleConfig{
    Model:        "chirp_2",
    LanguageCode: "hi-IN",
    SpeechAdaptation: &SpeechAdaptation{
        PhraseSets: []PhraseSet{
            {Phrases: []string{"namaste", "dhanyavaad"}},
        },
    },
}
```

#### ElevenLabs Scribe

Best for: Assamese, Odia, and low-resource languages

```go
sttConfig := ElevenLabsConfig{
    Model:    "scribe",
    Language: "as", // Assamese
}
```

### TTS Providers for Indian Languages

#### Azure Neural TTS

Best quality for most Indian languages:

```go
var AzureIndicVoices = map[string][]string{
    "hi-IN": {"hi-IN-SwaraNeural", "hi-IN-MadhurNeural"},
    "ta-IN": {"ta-IN-PallaviNeural", "ta-IN-ValluvarNeural"},
    "te-IN": {"te-IN-ShrutiNeural", "te-IN-MohanNeural"},
    "bn-IN": {"bn-IN-TanishaaNeural", "bn-IN-BashkarNeural"},
    "mr-IN": {"mr-IN-AarohiNeural", "mr-IN-ManoharNeural"},
    "gu-IN": {"gu-IN-DhwaniNeural", "gu-IN-NiranjanNeural"},
    "kn-IN": {"kn-IN-SapnaNeural", "kn-IN-GaganNeural"},
    "ml-IN": {"ml-IN-SobhanaNeural", "ml-IN-MidhunNeural"},
    "as-IN": {"as-IN-YashicaNeural", "as-IN-PriyomNeural"},
}
```

#### Google Cloud TTS

Good for neural voices:

```go
var GoogleIndicVoices = map[string]string{
    "hi-IN": "hi-IN-Neural2-A",
    "ta-IN": "ta-IN-Neural2-A",
    "bn-IN": "bn-IN-Neural2-A",
    "gu-IN": "gu-IN-Neural2-A",
    "kn-IN": "kn-IN-Neural2-A",
    "ml-IN": "ml-IN-Neural2-A",
}
```

### LLM Providers

#### Gemini 2.0 Flash

Best for Indian languages with excellent Hindi understanding:

```go
llmConfig := GeminiConfig{
    Model:       "gemini-2.0-flash",
    Temperature: 0.7,
    SystemPrompt: `You are a helpful assistant that speaks Hindi.
आप एक सहायक हैं जो हिंदी में बात करते हैं।
Keep responses natural and conversational.`,
}
```

## Multilingual Agents

### Hindi-English Code-Switching

```json
{
  "agent": {
    "name": "Hinglish Support",
    "language": "hi-IN",
    "prompt": "You are a customer support agent. Respond in Hinglish (mix of Hindi and English) as commonly spoken. Example: 'Aapka order ship ho gaya hai, delivery by Friday expected hai.'",
    "sttConfig": {
      "language": "hi",
      "model": "nova-3"
    },
    "ttsProvider": "azure",
    "ttsVoice": "hi-IN-SwaraNeural"
  }
}
```

The STT and TTS providers stay the same for the whole call; bilingual and Hinglish modes are handled by the prompt and a multilingual STT model.

## Script Support

### Devanagari (Hindi, Marathi, Sanskrit)

```go
func IsDevanagari(text string) bool {
    for _, r := range text {
        if r >= 0x0900 && r <= 0x097F {
            return true
        }
    }
    return false
}
```

### Tamil Script

```go
func IsTamil(text string) bool {
    for _, r := range text {
        if r >= 0x0B80 && r <= 0x0BFF {
            return true
        }
    }
    return false
}
```

## Cost Optimization

### Provider Cost Comparison (per minute)

| Provider | Hindi | Tamil | Assamese |
|----------|-------|-------|----------|
| Deepgram | ₹0.35 | ₹0.35 | N/A |
| Google Chirp | ₹1.34 | ₹1.34 | ₹1.34 |
| ElevenLabs Scribe | ₹0.56 | ₹0.56 | ₹0.56 |
| Azure TTS | ₹1.01 | ₹1.01 | ₹1.01 |

### Recommended Configuration by Budget

**Budget-Optimized:**
```json
{
  "sttProvider": "deepgram",
  "ttsProvider": "google",
  "llmProvider": "gemini-2.5"
}
```

**Quality-Optimized:**
```json
{
  "sttProvider": "google",
  "sttModel": "chirp_2",
  "ttsProvider": "azure",
  "llmProvider": "gemini"
}
```

## Best Practices

### 1. Use Regional Dialects

```go
// Configure for regional variations
dialects := map[string]string{
    "hindi_standard": "hi-IN",
    "hindi_western":  "hi-IN", // Same code, different prompting
    "tamil_formal":   "ta-IN",
}
```

### 2. Handle Transliteration

```go
// Users may type in Roman script
prompt := `Users may write Hindi in Roman script (e.g., "mujhe order status chahiye").
Understand both Devanagari and Roman transliterations.
Always respond in Devanagari script.`
```

### 3. Respect Cultural Context

```go
prompt := `Cultural guidelines:
- Use appropriate honorifics (aap vs tum)
- Be aware of regional festivals and holidays
- Use formal language for business contexts
- Add greetings like Namaste appropriately`
```

## Next Steps

- [Hindi](https://edesy.in/docs/voice-agent/languages/hindi) - Detailed Hindi setup
- [Tamil](https://edesy.in/docs/voice-agent/languages/tamil) - Detailed Tamil setup
- [Assamese](https://edesy.in/docs/voice-agent/languages/assamese) - Detailed Assamese setup
