Mira TTS
₹1.80 per 1,000 characters.⁴
On pay as you go and on Business, paid from one rupee wallet. No plan to pick first.
Amazon Polly alternative
Newer voices made for phone calls where English words come up all the time, in eight Indian languages.
| Amazon Polly | Voice Infra |
|---|---|
| Published price | |
| ₹1,519per 10 lakh characters, Neural (Kajal) ($16.00) | ₹1,800per 10 lakh characters |
| Hindi voices | |
| Two: Aditi and Kajal | Four, made for phone calls |
| Phone-line audio | |
| 8 kHz μ-law and A-law | 8 kHz μ-law and A-law |
| Streaming | |
| An audio stream per request | HTTP, and a WebSocket for a whole call |
Side by side
| Option | Bar | ₹ per 10 lakh characters |
|---|---|---|
| ₹1,519$16 | ||
| ₹380$4 | ||
| ₹1,800 |
Dollar prices converted at ₹94.96, the ECB reference rate on 16 October 2026. The rate.
10 lakh is 1 million. Polly's Generative and Long-Form voices cost more, but neither has a Hindi voice.
From aws.amazon.com/polly/pricing, checked . Ours from our price list.
| Detail | Amazon Polly | Voice Infra |
|---|---|---|
| Published price | Standard $4.00, Neural $16.00, Generative $30 and Long-Form $100.00 per 1 million characters aws.amazon.com | ₹1.80 per 1,000 characters, on pay as you go and on Business (₹50,000/month commitment), before GST |
Polly lists ₹380 per million characters for Standard voices and ₹1,519 for Neural. Generative and Long-Form cost more, but neither has a Hindi voice. The free tier is long: 5 million Standard characters a month, and 1 million Neural a month for your first year.
Mira TTS is ₹1.80 per 1,000 characters, so 10 lakh cost ₹1,800. That’s more than Polly. You pay from a prepaid rupee wallet. A request that fails costs nothing, and every response says what it cost, in paise.
| Detail | Amazon Polly | Voice Infra |
|---|---|---|
| Hindi voices | hi-IN: Aditi (Standard) and Kajal (Neural) no Generative or Long-Form Hindi voice listed; only Hindi and Indian English among Indian languages docs.aws.amazon.com | Four voices, ashu, neha, shruti and sameer, in Hindi, Gujarati, Marathi, Bengali, Tamil, Telugu, Kannada and Malayalam, plus Hinglish |
| Hinglish | Aditi and Kajal are bilingual Hindi and Indian English voices that can switch within one sentence, in Devanagari or Romanised Hindi docs.aws.amazon.com | English inside the sentence, in one voice Hindi in Devanagari with English words in Latin script |
| Detail | Amazon Polly | Voice Infra |
|---|---|---|
| Where it runs | Neural voices supported in Asia Pacific (Mumbai), ap-south-1, among other regions docs.aws.amazon.com | Speech recognition and the model run on our own GPUs in India |
| Detail | Amazon Polly | Voice Infra |
|---|---|---|
| Try it free | 5M Standard characters a month 1M Neural characters a month for 12 months; new customers get up to $200 in AWS Free Tier credits aws.amazon.com | No sign-up to look around the sandbox ₹200 of credit once you confirm a work email; clips you play in the console are not charged |
| Detail | Amazon Polly | Voice Infra |
|---|---|---|
| Streaming and formats | SynthesizeSpeech returns an audio stream: mp3, ogg_opus, ogg_vorbis, pcm (8 or 16 kHz), mulaw or alaw two-way streaming is generative voices only, and Hindi has none docs.aws.amazon.com | Raw PCM streams as it renders, 48 kHz by default 8 kHz μ-law and A-law for phone lines; WAV files; a WebSocket for whole calls |
Spot something out of date? Tell us. Every platform in one table: voice AI platforms compared.
Why switch
Everything a phone call in India needs, from one team, priced in rupees.
₹1.80 per 1,000 characters.⁴
On pay as you go and on Business, paid from one rupee wallet. No plan to pick first.
Hindi, Gujarati, Marathi, Bengali, Tamil, Telugu, Kannada and Malayalam. And the Hinglish in between, mid-sentence.
The listening and the thinking: Mira STT and Gemma 4 26B. Mira TTS speaks.
Ask for 8 kHz μ-law or A-law and send it straight down the line. Or take 48 kHz PCM for everything else.
When you want the whole call, the same key and wallet run our voice agents.
AI agents: ₹5/min to start · ₹1.50/min all-in at volume.¹
Real lines from Mira TTS, one request each, unedited. Pick a language and press play.
Hear itTwo Hindi voices, or four
If you use Polly for Hindi, your voice is Aditi or Kajal. They're solid bilingual voices, and Polly serves Kajal from Mumbai. Mira TTS gives you four newer voices, made for phone calls where English words come up all the time, in Hindi, Gujarati, Marathi, Bengali, Tamil, Telugu, Kannada and Malayalam, at ₹1.80 per 1,000 characters from a rupee wallet.
Polly is AWS’s speech service, with four voice engines on one price list. Hindi has two voices on it. Aditi uses the older Standard engine and Kajal the Neural one. AWS says both are fully bilingual in Hindi and Indian English, switch inside a sentence, and read Hindi in Devanagari or Latin script. Neural voices run in Mumbai, and Speech Marks give you word timings for captions.
Mira TTS has four voices: ashu, neha, shruti and sameer. We made them for phone calls in India, where “आपका order” and “delivery” share a sentence all day long. They speak Hindi, Gujarati, Marathi, Bengali, Tamil, Telugu, Kannada and Malayalam.
Real lines from Mira TTS. Pick one, press play.
Text149 characters
Hi, मैं नेहा बोल रही हूँ Acme Store से। आपका order dispatch हो गया है और Friday तक deliver हो जाएगा। Address में कोई change करना हो तो अभी बता दीजिए।
48 kHz · MonoReady when you are
0:00 / 0:09
Mira TTS, voice neha, rendered 16 Oct 2026. One request, not edited.
Text119 characters
नमस्ते, मैं श्रुति बोल रही हूँ, दाँतों के क्लिनिक से। कल सुबह डॉक्टर साहब से आपका मिलना तय है। क्या आप समय पर आ पाएँगे?
48 kHz · MonoReady when you are
0:00 / 0:08
Mira TTS, voice shruti, rendered 16 Oct 2026. One request, not edited.
Text117 characters
નમસ્તે, હું આશુ બોલું છું. તમારી લોનનો હપ્તો આવતા અઠવાડિયે ભરવાનો છે. તમે કહો તો હું અત્યારે જ ભરવાની રીત સમજાવી દઉં.
48 kHz · MonoReady when you are
0:00 / 0:08
Mira TTS, voice ashu, rendered 17 Oct 2026. One request, not edited.
Text167 characters
வணக்கம், நான் நேஹா பேசுகிறேன். உங்கள் பார்சல் நாளை மாலைக்குள் வந்து சேரும். அந்த நேரத்தில் நீங்கள் வீட்டில் இல்லையென்றால் சொல்லுங்கள், வேறு நாளுக்கு மாற்றி விடுகிறோம்.
48 kHz · MonoReady when you are
0:00 / 0:10
Mira TTS, voice neha, rendered 17 Oct 2026. One request, not edited.
Text114 characters
నమస్కారం, నేను సమీర్ మాట్లాడుతున్నాను. నిన్న మీరు మా కొత్త ఇళ్ళ గురించి అడిగారు. ఇప్పుడు కొంచెం సేపు మాట్లాడవచ్చా?
48 kHz · MonoReady when you are
0:00 / 0:08
Mira TTS, voice sameer, rendered 17 Oct 2026. One request, not edited.
Which to pick
Sometimes it's them. We'll say so.
Moving
Your code stays. Three values change.
Step 1
Look around with no sign-up. When you are ready, create a key in Developers.
Step 2
The base URL, the model and the voice. The rest of your OpenAI code stays as it is.
Step 3
Four voices, each speaking Hindi, Gujarati, Marathi, Bengali, Tamil, Telugu, Kannada and Malayalam.
You swap a SynthesizeSpeech call for OpenAI’s speech API: POST /v1/audio/speech with model: "mira-tts", a voice, a format, and up to 2,000 characters of text. Polly’s mulaw and alaw become our ulaw_8000 and alaw_8000. Its pcm maps to ours, which is 48 kHz unless you set sample_rate. We have nothing like Speech Marks, so keep Polly for anything that needs them.
On a live call, our WebSocket endpoint keeps one connection open, takes text as your model writes it, and stops a reply when the caller talks over it. On Pipecat, pipecat-mirai handles that for you.
Write a script from your own calls, with names, amounts, dates and an OTP. Add lines that switch language halfway, since both of us say we handle that. Render it with Kajal and with two of our voices. Play the clips blind to people who speak Hindi every day, then play the winner over a phone line. The Hindi TTS comparison lists the other options and their prices.
If your Hindi voice reads out a phone menu today, look at our agents too. They listen and answer, and cost ₹1.50 a minute all-in on the volume plan.
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["MIRA_API_KEY"],
base_url="https://sandbox.voice.miraiminds.co/v1", # 1. our URL
)
with client.audio.speech.with_streaming_response.create(
model="mira-tts", # 2. our model
voice="ashu", # 3. one of our voices
response_format="pcm", # always send it
input="चलिए, आपका order कल deliver होगा।",
) as response:
for chunk in response.iter_bytes():
... # raw 16-bit mono PCM at 48 kHz, playable as it arrives cURL
curl --fail-with-body \
https://sandbox.voice.miraiminds.co/v1/audio/speech \
-H "Authorization: Bearer $MIRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "mira-tts",
"voice": "neha",
"response_format": "wav",
"input": "नमस्ते, आपका ऑर्डर तैयार है।"
}' \
--output speech.wav Questions
On Polly, ₹1,519 ($16) with Kajal and ₹380 ($4) with Aditi, before the free tier. On Mira TTS, ₹1,800. So Polly costs less per character; the reasons to switch are the voices and the call.
We write Hindi in Devanagari, with English words in Latin script, and that's how we test our voices. If your text is Romanised Hindi, try a sample first. Polly documents it for Aditi and Kajal, and our docs don't.
Yes. Ask for ulaw_8000 or alaw_8000 and pass each chunk to Twilio, Plivo or your SIP leg as it arrives. Exotel streams take pcm_8000.
Fifteen minutes with the team that builds it. Bring your script, or your hardest call.
Book 15 minutes