10 Indian languages + 40+ voices
Hindi (Kavya, Anand, Priya and more), plus Bengali, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, Telugu and Indian English. Male and female voices in every language.
Text-to-Speech API
40+ natural voices across 10 Indian languages plus Indian English. Streaming output, $0.30 per 10K characters. Built for voice agents, audiobooks, IVR, and accessibility.
How it works
Sample voices, pick one, ship to production.
40+ Bulbul voices across 10 Indian languages plus Indian English, male and female. Sample them in-dashboard before deploying.
POST your text with a voice and language, or stream chunks. Control speed from 0.25x to 4x.
MP3, WAV, OPUS, AAC, FLAC, or raw PCM. Batch mode for files; streaming for real-time voice.
The OpenAI-compatible audio.speech shape: one call returns the audio bytes, ready to play or store.
Features
Because Google's Hindi voices still sound like a call-center IVR. Ours don't.
Hindi (Kavya, Anand, Priya and more), plus Bengali, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, Telugu and Indian English. Male and female voices in every language.
Sarvam's Bulbul voices are tuned for Indian languages, with intonation and rhythm that sound native, not a translated accent.
Stream audio bytes as they're synthesized, fast enough for live voice agents and interactive IVR, or fetch the whole clip in one batch call.
Set playback speed from 0.25x to 4x per request. Pick the output format your pipeline needs: MP3, WAV, OPUS, AAC, FLAC, or raw PCM.
Call it with the audio.speech.create pattern from the OpenAI SDK: one endpoint, a voice, a language, your text. No new client to learn.
Text and audio are processed in our India region (Azure Central India). DPDP Act-aligned, tenant-isolated per API key.
Use Cases
Voice agents, audiobooks, IVR, accessibility, navigation: same API.

Voice AI agents
Pair our TTS with the Voice Agent API for a full voice pipeline. Streaming output means callers hear the reply as it's synthesized, not after an awkward gap.
Result
Voice agents that customers don't hang up on.

Audiobooks + e-learning
Convert educational content, books, articles into natural-sounding audio across 10 Indian languages. Students consume lessons while commuting; learners without literacy get access via voice.
Result
Turn a whole library into audio at per-character API rates.

IVR + phone menus
Change your IVR greetings, hold messages, or queue announcements in minutes, not weeks waiting for a studio session. Say 'Queue is longer than usual' in Tamil on-demand without re-recording audio files.
Result
Launch campaign greetings in an hour, not a week.

Accessibility
Government portals, banking apps, and health apps add a 'Listen' button that reads content in the user's chosen Indian language. Essential for low-literacy populations and visually impaired users.
Result
WCAG AA compliance + genuine accessibility for Bharat.

Navigation & in-app voice
Mapping apps, delivery driver apps, cab aggregators: give turn-by-turn voice prompts in the driver's local language. Works offline when prompts are pre-generated and cached on device.
Result
Voice navigation across 10 Indian languages.

Marketing + announcements
Send hyper-personalized WhatsApp voice notes ('Hi Rajesh, your order is out for delivery') in the customer's language. Higher open rates than text, warmer than generic SMS.
Result
Warmer than SMS, in the customer's own language.
Compare
On Indian languages we lead; on price we crush; on API ergonomics we're OpenAI-compatible.
| Feature | CallMissed | Google TTS | AWS Polly | ElevenLabs | Azure TTS |
|---|---|---|---|---|---|
| Native Indian-language voices | |||||
| Natural Indic prosody | |||||
| Streaming output | |||||
| Speed control | |||||
| India data residency | |||||
| OpenAI-compatible shape | |||||
| Pricing per 10K chars | $0.30 | $0.16 | $0.16 | $3.00 | $0.16 |
Comparison based on publicly listed features as of 2026. Check each vendor's site for the latest.
Code
from openai import OpenAI
client = OpenAI(
base_url="https://api.callmissed.com/v1",
api_key="cm_your_key",
)
audio = client.audio.speech.create(
model="bulbul:v3", # Sarvam — 37 voices, 11 Indian languages.
# Also: "aura-2-en" (Deepgram English, 40 voices)
# Also: "aura-2-es" (Deepgram Spanish, 10 voices)
# Also: "melotts" (open-source en + fr, cheapest)
voice="ritu", # Hindi female — or shubh, priya, rahul…
input="नमस्ते, आपका ऑर्डर कल पहुँचेगा।",
response_format="mp3",
)
audio.stream_to_file("greeting.mp3")Python: synthesize Hindi voice, save as MP3
import { CallMissed } from "callmissed";
const cm = new CallMissed({ apiKey: process.env.CM_KEY });
const stream = cm.audio.tts.stream({
model: "bulbul:v3", // or "aura-2-en" / "aura-2-es" / "melotts"
voice: "shubh", // 37 Sarvam speakers; pick a Tamil one for ta-IN
text: "உங்கள் ஆர்டர் நாளை வருகிறது",
format: "opus",
sampleRate: 24000,
});
// pipe to telephony / websocket / audio element
stream.on("data", (chunk) => speaker.write(chunk));Node/JS: stream TTS audio for a live voice agent
FAQ
A text-to-speech (TTS) API converts written text into natural-sounding audio. You send a text string, a voice, and a language; it returns audio bytes (MP3/WAV/OPUS and more) you can play in an app, broadcast over the phone, or save as a file. CallMissed's TTS uses Sarvam's Bulbul voices, tuned for Indian languages, so Hindi, Tamil, Marathi etc. sound native, not a translated accent.
Sarvam Bulbul covers 10 Indian languages plus Indian English: Hindi, Bengali, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, and Telugu. Across them are 40+ named voices, male and female, including Kavya, Anand, Priya, Shubh, Aditya, Ritu and more. Sample every voice in the dashboard before committing.
Bulbul voices are tuned specifically for Indian languages, so intonation and rhythm sound native rather than a translated accent. For a live demo, sample any voice in the dashboard and compare it against your current provider on your own script.
Both. Fetch the whole clip in one batch call, or stream audio bytes as they're synthesized for live voice agents where a caller speaks, an LLM replies, and TTS must start speaking quickly. Streaming works over the audio endpoint; batch returns the complete file.
Sarvam Bulbul v3 is $0.30 per 10,000 characters (Bulbul v2 is half that). You pay from your credits (1 credit = ₹1 = $0.01) and only for the characters you synthesize. Free tier includes 1000 API credits to start.
Yes. Set the speed parameter between 0.25x and 4x per request. Pitch, SSML markup, and voice cloning are not offered on this API today: pick a voice and language, send text, get audio.
MP3, WAV, OPUS, AAC, FLAC, and raw PCM. Choose the format via the response_format parameter, MP3 by default. The batch shape matches the OpenAI audio.speech pattern.
Text and generated audio are processed in our India region (Azure Central India), tenant-isolated per API key and DPDP Act-aligned. We don't train on your content.
Use the OpenAI SDK's audio.speech pattern, or plain REST (curl works). Point base_url at https://api.callmissed.com/v1, send text with a voice and language, and get audio bytes back. Full docs and copy-paste examples at docs.callmissed.com.
Grab an API key, sample every voice in the dashboard, and ship natural-sounding audio today.