Skip to main content
Every agent speaks in one voice, set by voice.voice_id. Every tier uses the same Mira voices, so the catalogue does not change with your plan.

The catalogue

ashu, neha, shruti and sameer are Hindi voices that code-switch into English the way real Indian speech does. munshi and tanvi speak Hindi, English, Gujarati, Tamil and Telugu. All six speak Kannada and Malayalam in beta (see the language roadmap). The Mira TTS page has samples and more about the model behind them. Need a voice the catalogue doesn’t have, such as your brand’s own voice or an Australian English accent? You can make an instant voice from a short clip in about a minute, or request a professional voice clone. voice is required when you create an agent. A voice that is neither in the catalogue nor one of your workspace’s custom voices is rejected when you create the agent, with an error that names the allowed set:
400 Bad Request
Because the catalogue is the same on every tier, an agent’s voice never depends on your plan. Moving to a different plan changes what your calls cost and leaves the way they sound unchanged.

Hearing them first

GET /v2/voices, with your API key, returns the live catalogue: each voice’s voice_id, its name and its language. It has no audio samples, so open Agent Studio in the console to hear each voice before you commit to one. The name in the picker is the voice_id. The catalogue grows monthly, so if this page and the API disagree, trust the API.
GET /v2/voices
If your workspace has custom voices, the same list shows them after the built-in voices. Their voice_id starts with cv_, and they also carry kind, accent and gender:
A custom voice in GET /v2/voices
To hear one of your instant voices, use its preview.
Listen before you pick. Voice choice affects answer-through rates more than prompt wording does.

Setting a voice on an agent

Change it later with PATCH /v2/agents/{id}:
See the Agents reference for the full agent shape.

A different voice for one call

To use another voice on one call without changing the agent, send call_settings.voice_id on POST /v2/calls, on a campaign contact, or from a pre-call tool. It takes the same voice_id values as an agent.

The language caveat

voice.language is recorded, not yet appliedWe validate it, store it, echo it back and carry it with the call payload, but the voice renders in the agent’s top-level language. If the two match, you get what you expect. If they differ, the top-level one wins.
Keep voice.language and the agent’s language identical. If our standby voice serves a call, it pronounces in the call’s language: the agent’s language, or the call’s own call_settings.language when it has one. A language it doesn’t carry, Hinglish and automatic detection are pronounced as Hindi. An instant voice always speaks the language it was made with.