Voice infrastructure for India
Built for how India actually speaks.
Hinglish, Hindi and English (India) over one API. Plus a cloud that serves any open voice model behind the same call.
Transcribing
hi-IN + en-IN
Invoice share kar diya hai, meeting 5 baje start hoti hai, deck abhi finalise kar raha hoon
Final
Partial
Hinglish by default
Transcripts your search and your agents can actually use.
Most APIs pick one language and lose the rest. Same audio, three ways.
- Translated to EnglishMeaning survives. The code switch does not.
- I have shared the invoice. The meeting starts at 5.
- All of it in DevanagariFaithful to the sound, but English spelled in Hindi script breaks search.
- इनवॉइस शेयर कर दिया है, मीटिंग 5 बजे स्टार्ट होती है।
Invoice share kar diya hai, meeting 5 baje start hoti hai.
English, kept as English
Coverage
Three live today, the rest in training.
Twenty two official languages, and nearly all get spoken with English mixed in. The queue below is public.
Available
- Hinglish
hi-IN+en-IN - Hindi
hi-IN - English (India)
en-IN
In training
Tamil, Telugu, Marathi, Bengali, Kannada, Malayalam, Gujarati, Punjabi
Code switch pairs too: Tanglish and Benglish.
Open voice cloud · second product
Run any open voice model. Own none of the GPUs.
Open weights are free. Serving them is not. Point utter at a model and get the same endpoint, SDKs and transcript shape.
Any open speech model
Transcription, diarisation, voice activity, text to speech. If the weights are open, they run here.
Switch models without a rewrite
Swap the model behind the call and your code does not move. Same events, same fields, same timestamps.
Or take it in house
The serving stack is open source. Move it to your own GPUs the day procurement asks, with no client changes.
Integration
First transcript in about ten lines.
Python and JavaScript on one websocket, our models or an open one. The raw endpoints are documented too.
from utter import Utter
client = Utter(api_key=os.environ["UTTER_KEY"])
with client.stream(language="hi-IN+en-IN") as session:
for frame in mic():
session.send(frame)
for result in session.results():
print(result.text, result.is_final)
import { Utter } from "@utter/sdk";
const utter = new Utter({ apiKey: process.env.UTTER_KEY });
const stream = utter.stream({ language: "hi-IN+en-IN" });
stream.on("text", ({ text, isFinal }) => {
render(text, isFinal);
});
mic().pipeTo(stream);
Voice infrastructure for India
Say it however you say it.
Invoice share kar diya hai, please check kar lijiye.
Take a key, paste ten lines, hear your users as they actually talk.
Voice infrastructure for India. Hinglish first.