# STT Providers Overview

> Choose the right Speech-to-Text provider for your voice agent based on language, latency, and cost requirements.

Source: https://edesy.in/docs/voice-agent/providers/stt-overview

Speech-to-Text (STT) is a critical component of your voice agent. The right choice depends on your language requirements, latency needs, and budget.

## Supported Providers

| Provider | Best For |
|----------|----------|
| [Deepgram](https://edesy.in/docs/voice-agent/providers/deepgram) | Low latency, English |
| Google Chirp | Multi-language |
| Azure Speech | Enterprise, Indic |
| ElevenLabs Scribe | Indic languages |
| AssemblyAI | Accuracy |
| OpenAI Whisper | Quality over speed |

Per-minute add-on prices are on the [billing pages](https://edesy.in/docs/voice-agent/billing); Deepgram is included.

## Choosing a Provider

### For Lowest Latency

**Recommended: Deepgram Nova-3**
- Very low streaming latency
- Excellent English accuracy
- Interim results for faster response

### For Indian Languages

**Recommended: ElevenLabs Scribe or Google Chirp**
- Hindi, Tamil, Telugu, Assamese support
- Reasonable accuracy (10-25% WER)
- Good cost-performance ratio

### For Enterprise

**Recommended: Azure Speech**
- Enterprise compliance programme (Microsoft)
- Excellent Indic language support
- Custom model training available

## Configuration

### Agent-Level Configuration

Each agent can have its own STT provider:

```json
{
  "name": "Hindi Support Agent",
  "language": "hi",
  "sttProvider": "elevenlabs",
  "sttModel": "scribe",
  "sttConfig": {
    "endpointing": 300,
    "utterance_end_ms": 1500
  }
}
```

### Provider-Specific Settings

#### Deepgram

```json
{
  "sttProvider": "deepgram",
  "sttConfig": {
    "model": "nova-3",
    "endpointing": 200,
    "utterance_end_ms": 1000,
    "interim_results": true,
    "smart_format": true
  }
}
```

#### Google Chirp

```json
{
  "sttProvider": "google",
  "sttConfig": {
    "model": "chirp",
    "enable_automatic_punctuation": true,
    "enable_spoken_punctuation": false
  }
}
```

## Latency Comparison

```
User finishes speaking
        │
        ▼
Fastest to slowest, as a rough guide:
  Deepgram Nova-3 → Azure Speech → Google Chirp
  → AssemblyAI → ElevenLabs Scribe → OpenAI Whisper
```

## Streaming vs Batch

### Streaming STT (Recommended)

- Real-time transcription as user speaks
- Interim results enable faster LLM response
- Lower perceived latency

```
User: "What is my order—"
STT:  [interim] "What is my"
STT:  [interim] "What is my order"
STT:  [final] "What is my order status?"
```

### Batch STT

- Full audio processed at once
- Higher accuracy potential
- Higher latency

## Endpointing Configuration

Endpointing determines when the user has finished speaking:

| Setting | Description | Recommended |
|---------|-------------|-------------|
| `endpointing` | Silence before end-of-turn (ms) | 200-400ms |
| `utterance_end_ms` | Max silence within utterance | 1000-1500ms |
| `vad_threshold` | Voice activity threshold | 0.7-0.9 |

**Aggressive (faster response):**
```json
{
  "endpointing": 200,
  "utterance_end_ms": 800
}
```

**Conservative (more complete sentences):**
```json
{
  "endpointing": 400,
  "utterance_end_ms": 1500
}
```

## Cost Optimization

1. **Use appropriate model**: Nova-2 is cheaper than Nova-3
2. **Optimize audio**: Compress silence, use VAD
3. **Cache common phrases**: Skip STT for known patterns
4. **Batch non-real-time**: Use batch API for recordings

## Next Steps

- [Deepgram Configuration](https://edesy.in/docs/voice-agent/providers/deepgram) - Detailed Deepgram setup
- [TTS Providers](https://edesy.in/docs/voice-agent/tts) - Text-to-Speech options
- [Latency Optimization](https://edesy.in/docs/voice-agent/advanced/latency) - Further reduce response time
