text-to-speech
Text-to-Speech — Bulbul
Live in-chat TTS → sarvam-mcp (
sarvam_tools_tts_*). This skill = SDK code.
[!IMPORTANT] Auth:
api-subscription-keyheader — NOTAuthorization: Bearer. Base URL:https://api.sarvam.ai(NOT/v1— that prefix is only for the OpenAI-compatible chat endpoint) SDK floor for the code below: Pythonsarvamai>=0.1.29, JSsarvamai@>=1.1.8. On older versions the TTS param istarget_language_code— see Gotchas.
Model
bulbul:v4-flash — latest, use this for new integrations. Same REST / HTTP stream / WebSocket contract as v3. 200+ persona voices (222 IDs).
bulbul:v3 — what the API uses when model is omitted. Short names (shubh, priya). Still the right model for Malayalam and Odia, which have no v4 personas yet.
Speakers (v4 Flash)
IDs are lowercase voice_language_style: aparna_hi_customer, simran_en_customer, shubh_enhi_ads. Omit speaker and the default is shubh_enhi_ads. v2/v3 short names (shubh, priya, ishita, anushka) return 400.
The middle token is a language tag (hi, en, bn, gu, kn, mr, pa, ta, te) or enhi for English–Hindi code-mix. Use an _enhi_ persona when one utterance is genuinely mixed; a few English loanwords in Hindi script do not need it.