Maya 2 Native model streams speech over a persistent WebSocket, with two voices — Ananya and Arjun — each covering all eleven supported languages.
Quick config
Supported voices
Maya has two voices. Both speak every supported language — voice and language are chosen independently.
Voice matching is case-sensitive on Maya’s side —
ananya is rejected. Bolna normalizes casing for you, so voice: "ananya" still resolves to Ananya.
Supported languages
Region-qualified ASR codes like
hi-IN are trimmed down to the primary subtag (hi) automatically. This is also how Bolna switches Maya’s language mid-call — a fresh config frame goes out over the same WebSocket, so the call never reconnects.
Key settings
How streaming works
A call runs on a single persistent WebSocket connection. Sentence segmentation happens on Maya’s side, so LLM output is forwarded to Maya as it arrives — Bolna does no client-side chunking of the text. Maya only closes out a turn on aflush, so every text fragment is sent as non-final. If the LLM’s final piece of text for a turn is empty, Bolna sends a single whitespace character before the flush — otherwise Maya never emits an end-of-turn event and the turn does not close.
On interruption, Bolna sends a clear frame and drops any audio frames that keep arriving until Maya confirms with cancelled.
Audio output
Maya streams audio at 24 kHz throughout. Bolna handles the conversion depending on where the audio is going:- Telephony — downsampled to 8 kHz and mu-law encoded
- Web — left at Maya’s native 24 kHz, no resampling
FAQ
Which voice should I use — Ananya or Arjun?
Which voice should I use — Ananya or Arjun?
Both voices cover all eleven supported languages, so the choice is purely about which voice fits your agent’s persona —
Ananya (female) or Arjun (male).Can I switch languages mid-call?
Can I switch languages mid-call?
Yes. Set
language to the code you need, or use auto to let Maya detect it per utterance. Bolna sends language switches as a config update over the existing WebSocket, so the call never reconnects.Do I need to pass a region-qualified language code?
Do I need to pass a region-qualified language code?
No. Codes like
hi-IN are automatically reduced to the primary subtag (hi) that Maya expects.Is Maya available for both telephony and web agents?
Is Maya available for both telephony and web agents?
Yes. Bolna downsamples and mu-law encodes Maya’s audio for telephony, and leaves it at native 24 kHz for web.
Related
- Audio Tab — configure synthesizer in the dashboard
- Sarvam — alternative Indian-language synthesizer
- ElevenLabs — Bolna’s default English synthesizer
- Multilingual support — configuring language switching
- Latency — how synthesis affects response time

