# Assamese Voice Agents

> Build voice agents for Assamese (অসমীয়া) with specialized provider configurations for Northeast India.

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

Assamese (as-IN) is a low-resource language with limited but growing support. This guide covers the best configurations for Assamese voice agents.

## Quick Start

```json
{
  "agent": {
    "name": "Assamese Support Agent",
    "language": "as-IN",

    "llmProvider": "gemini",
    "llmModel": "gemini-2.0-flash",

    "sttProvider": "elevenlabs",
    "sttModel": "scribe",

    "ttsProvider": "azure",
    "ttsVoice": "as-IN-YashicaNeural",

    "greetingMessage": "নমস্কাৰ! মই আপোনাক কেনেকৈ সহায় কৰিব পাৰোঁ?",

    "prompt": "আপুনি এজন সহায়কাৰী। অসমীয়াত উত্তৰ দিয়ক।"
  }
}
```

## Provider Landscape

Assamese has limited provider support compared to major languages:

### STT (Speech-to-Text)

| Provider | Model | WER | Status |
|----------|-------|-----|--------|
| **ElevenLabs** | scribe | 15-25% | Best option |
| Google | chirp | 25-35% | Usable |
| OpenAI | whisper | 20-30% | Alternative |

**Recommendation**: ElevenLabs Scribe offers best Assamese accuracy.

### TTS (Text-to-Speech)

| Provider | Voices | Quality |
|----------|--------|---------|
| **Azure** | 2 Neural | Good |
| Google | Limited | Fair |

**Recommendation**: Azure is the only reliable option for Assamese TTS.

### LLM

| Provider | Model | Assamese Understanding |
|----------|-------|------------------------|
| **Gemini 2.0** | flash | Best for Indic |
| GPT-4 | full | Good |

**Recommendation**: Gemini 2.0 Flash for best Assamese comprehension.

## Azure Assamese Voices

| Voice | Gender | Style |
|-------|--------|-------|
| `as-IN-YashicaNeural` | Female | Professional |
| `as-IN-PriyomNeural` | Male | Professional |

### Voice Configuration

```json
{
  "ttsProvider": "azure",
  "ttsVoice": "as-IN-YashicaNeural",
  "ttsConfig": {
    "speakingRate": 0.95,
    "pitch": "0%"
  }
}
```

## ElevenLabs Scribe for Assamese

ElevenLabs Scribe provides the best STT accuracy for Assamese:

```json
{
  "sttProvider": "elevenlabs",
  "sttModel": "scribe",
  "sttConfig": {
    "language_code": "as"
  }
}
```

### Why Scribe Works

- Trained on diverse Indic languages
- Better handling of tonal variations
- Supports code-switching with English

## Assamese Script Handling

### Prompt in Assamese

```json
{
  "prompt": "আপুনি এজন গ্ৰাহক সেৱা সহায়ক।\n\n## নিয়ম\n- বিনয়ী হওক\n- স্পষ্ট উত্তৰ দিয়ক\n- সমস্যা সমাধান কৰক"
}
```

### Transliteration Support

```json
{
  "prompt": "Users may type Assamese in Roman script (e.g., 'muk order status lage'). Understand both Assamese script (অসমীয়া) and Roman transliterations. Respond in Assamese script."
}
```

## Script Comparison

Assamese uses a script similar to Bengali with some differences:

| Assamese | Bengali | Sound |
|----------|---------|-------|
| ৰ | র | ro |
| ৱ | - | wo |
| ক্ষ | ক্ষ | khyo |

### Script Detection

```go
func IsAssamese(text string) bool {
    // Check for Assamese-specific characters
    for _, r := range text {
        // ৰ (U+09F0) and ৱ (U+09F1) are unique to Assamese
        if r == 0x09F0 || r == 0x09F1 {
            return true
        }
        // General Bengali/Assamese range
        if r >= 0x0980 && r <= 0x09FF {
            return true
        }
    }
    return false
}
```

## Formality in Assamese

```json
{
  "prompt": "## Formality Guidelines\n- Use 'আপুনি' (respectful you) not 'তুমি'\n- Use honorific 'দেউ' or 'বাই' when appropriate\n- Add respectful particles: 'দেই', 'নহয় জানো'\n- Use formal greetings: 'নমস্কাৰ'"
}
```

### Formal vs Informal

| Formal | Informal |
|--------|----------|
| আপুনি কেনে আছে? | তুমি কেনে আছা? |
| কওক | কোৱা |
| আহক | আহা |
| ধন্যবাদ | থেংকিউ |

## Regional Considerations

### Assamese Dialects

| Dialect | Region | Notes |
|---------|--------|-------|
| Standard | Guwahati | Media standard |
| Eastern | Upper Assam | Slightly different vocabulary |
| Western | Lower Assam | Bengali influence |
| Kamrupi | Kamrup | Historical dialect |

### Cultural Context

```json
{
  "prompt": "## Cultural Notes\n- Be aware of Bihu festivals (April, October, January)\n- Use regional greetings during festivals\n- Understand references to local places and customs\n- Respect for elders is important - use appropriate honorifics"
}
```

## Complete Example

### Customer Support Agent

```json
{
  "agent": {
    "name": "Assamese Customer Support",
    "language": "as-IN",

    "llmProvider": "gemini",
    "llmModel": "gemini-2.0-flash",
    "llmTemperature": 0.7,

    "sttProvider": "elevenlabs",
    "sttModel": "scribe",
    "sttConfig": {
      "language_code": "as"
    },

    "ttsProvider": "azure",
    "ttsVoice": "as-IN-YashicaNeural",

    "greetingMessage": "নমস্কাৰ! মই আপোনাৰ সেৱাত আছোঁ। আপোনাৰ অৰ্ডাৰৰ বিষয়ে বা আন কিবা সহায় লাগিলে কওক।",

    "prompt": "আপুনি এজন গ্ৰাহক সেৱা সহায়ক।\n\n## আপোনাৰ কাম\n- গ্ৰাহকৰ সমস্যা সমাধান কৰক\n- বিনয়ী আৰু সহায়কাৰী হওক\n- স্পষ্ট উত্তৰ দিয়ক\n\n## ভাষা\n- শুদ্ধ অসমীয়া ব্যৱহাৰ কৰক\n- 'আপুনি' ব্যৱহাৰ কৰক, 'তুমি' নহয়",

    "allowInterruptions": true
  }
}
```

## Testing Assamese Agents

### Test Phrases

```
# Greetings
"নমস্কাৰ"
"হেল্ল'"

# Queries
"মোৰ অৰ্ডাৰ ক'ত?"
"মোক অৰ্ডাৰ ষ্টেটাচ লাগে"

# Romanized
"Muk order status lage"
"Order koila ahibo?"

# Edge cases
"হয়" (yes)
"নহয়" (no)
```

### Accuracy Challenges

Assamese STT faces unique challenges:

| Challenge | Impact | Mitigation |
|-----------|--------|------------|
| Limited training data | Higher WER | Use ElevenLabs Scribe |
| Similar to Bengali | Misdetection | Explicit language setting |
| Regional accents | Variable accuracy | Prompt for clarification |

## Fallback Strategy

Given limited support, implement fallbacks:

```go
func processAssameseAudio(audio []byte) (string, error) {
    // Try ElevenLabs first
    transcript, err := elevenlabsSTT.Transcribe(audio, "as")
    if err != nil {
        // Fallback to Google
        transcript, err = googleSTT.Transcribe(audio, "as-IN")
    }

    // Check confidence
    if transcript.Confidence < 0.6 {
        return "", errors.New("low confidence, ask user to repeat")
    }

    return transcript.Text, err
}
```

### Ask for Clarification

```json
{
  "prompt": "If you're unsure what the user said, politely ask them to repeat: 'মাফ কৰিব, অলপ স্পষ্টকৈ ক'ব পাৰিবনে?'"
}
```

## Cost Analysis

### Provider Costs

| Provider | Type | Cost/min |
|----------|------|----------|
| ElevenLabs Scribe | STT | ₹0.56 |
| Azure Neural | TTS | ₹1.01 |
| Gemini 2.0 | LLM | ₹0.05 |

**Total estimated cost**: ₹1.62/minute

### Comparison

| Configuration | Cost/min | Quality |
|---------------|----------|---------|
| ElevenLabs + Azure + Gemini | ₹1.62 | Best |
| Google + Azure + Gemini | ₹2.40 | Good |

## Limitations

- **STT accuracy**: 15-25% WER (higher than major languages)
- **TTS options**: Only Azure available
- **LLM understanding**: Good but not native-level
- **Training data**: Limited compared to Hindi/Bengali

## Best Practices

### 1. Set Clear Expectations

```json
{
  "greetingMessage": "নমস্কাৰ! মই অসমীয়াত কথা পাতিব পাৰোঁ। যদি মই বুজি নাপাওঁ, অলপ স্পষ্টকৈ কওক।"
}
```

### 2. Support English Fallback

```json
{
  "prompt": "If the user switches to English or you can't understand Assamese input, respond in English while offering to continue in Assamese."
}
```

### 3. Use Confirmation

```json
{
  "prompt": "Always confirm important details: 'আপোনাৰ অৰ্ডাৰ নম্বৰ 12345, ঠিক নে?'"
}
```

## Next Steps

- [Hindi](https://edesy.in/docs/voice-agent/languages/hindi) - Hindi configuration
- [Tamil](https://edesy.in/docs/voice-agent/languages/tamil) - Tamil configuration
- [Indian Languages](https://edesy.in/docs/voice-agent/languages/indian-languages) - All Indian languages
