utter

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 बजे स्टार्ट होती है।
As spoken, what utter returnsHindi in Latin script, English left as English. Names and numbers come back the way you already store them.

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

  • Hinglishhi-IN+en-IN
  • Hindihi-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.

Pythonpip install utter
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)
JavaScriptnpm i @utter/sdk
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.

utter

Voice infrastructure for India. Hinglish first.