ta-IN, Archana in hi-IN).| Code | Language |
en-IN | Indian English |
hi-IN | Hindi |
ta-IN | Tamil |
te-IN | Telugu |
kn-IN | Kannada |
mr-IN | Marathi |
gu-IN | Gujarati |
bn-IN | Bengali |
model_id. There is a single model:| Model | Description |
raaga-v1 | Production text-to-speech model. |
language code. Pass the voice's name (or a vc_ custom voice ID) as
the voice parameter, with a matching language, in synthesis requests.vc_ voices come from voice cloning, which is included on the
Growth plan only.| Voice | Gender | Languages |
| Aakash | Male | All eight |
| Amit | Male | All eight |
| Anand | Male | All eight |
| Archana | Female | All eight |
| Bhamini | Female | All eight |
| Jay | Male | All eight |
| Kavya | Female | All eight |
| Kiran | Male | All eight |
| Meena | Female | All eight |
| Mohan | Male | All eight |
| Neha | Female | All eight |
| Nisha | Female | All eight |
| Priya | Female | All eight |
| Vidya | Female | All eight |
| Vikram | Male | All eight |
| Yash | Male | All eight |
GET /v1/voices is always the source of truth for the current roster.GET /v1/voices to discover available voices. Each entry's voice_name
value is what you pass as the voice parameter in synthesis requests.
Results are grouped by language by default.12client.voices.list(group_by="language") client.voices.list(group_by="voice")
1234567891011121314{ "ta-IN": [ { "voice_name": "Archana", "gender": "female" }, { "voice_name": "Kavya", "gender": "female" }, { "voice_name": "Kiran", "gender": "male" }, { "voice_name": "Aakash", "gender": "male" } ], "hi-IN": [ { "voice_name": "Priya", "gender": "female" }, { "voice_name": "Vidya", "gender": "female" }, { "voice_name": "Mohan", "gender": "male" }, { "voice_name": "Vikram", "gender": "male" } ] }
12345678910{ "Archana": { "gender": "female", "languages": ["bn-IN", "en-IN", "gu-IN", "hi-IN", "kn-IN", "mr-IN", "ta-IN", "te-IN"] }, "Priya": { "gender": "female", "languages": ["bn-IN", "en-IN", "gu-IN", "hi-IN", "kn-IN", "mr-IN", "ta-IN", "te-IN"] } }
model_id, voice, and language together. The
server validates the voice + language pair against the active voice
catalog.voice. The older voice_name parameter is deprecated
and will be removed after a migration window — it still works for preset voices
during the transition. See POST /v1/tts/generate for
details.voice + language combination does not exist, the request fails
with 422 and the code voice_language_not_found. Always source valid pairs
from GET /v1/voices.config message rather
than on each text message. See the
realtime guide.