The LIPI family
Four models are served. One of them — LIPI-Fast — decodes incrementally while the caller is still speaking; the other three decode a finished recording in one pass.LIPI-Live is a batch model today. Its checkpoint is a streaming ASR and the
name reflects that lineage, but PeachDesk drives it one recording at a time, so
a request waits for the whole utterance to be decoded.
lipi-fast is the only
model in this family that returns partial transcripts as audio arrives. If a
future release wires LIPI-Live to a streaming route, its streaming flag in
GET /models/status is what will say so.Choosing one
- Recordings, uploads, dictation, the API — pass
lipi,lipi-bharatorlipi-liveon any transcription request.lipiis the default when you omit the field. - Live agent calls — nothing to choose. The engine transcribes live turns with LIPI-Fast when its weights are present and falls back to LIPI otherwise;
lipi-fastis what readiness and model-status responses call that runtime, not a value you send. - Indian languages — prefer
lipi-bharatwhen the audio is in one of the languages on its list; it is the only model here that covers Maithili, Bhojpuri, Magahi, Chhattisgarhi, Angika, Bajjika, Bundeli, Kumaoni, Shekhawati, Garo and Mizo.
The LIPI-Bharat language list is measured, not administrative. It used to be
“India’s 22 scheduled languages plus English”, which promised languages the
model transcribes badly or not at all and withheld regional languages it
transcribes better than most of what it offered. A language is now listed only
where its measured streaming word-error rate is under 45% and it has a standard
ISO language code. That removed Urdu, Kashmiri, Santali, Konkani, Sanskrit,
Manipuri, Bodo, Dogri and Sindhi, and added ten regional languages — Bhojpuri,
Magahi, Chhattisgarhi, Angika, Bajjika, Bundeli, Kumaoni, Shekhawati, Garo and
Mizo. The model auto-detects the spoken language, so a shorter list narrows what
the pickers offer and what a saved configuration may name — it does not change
how any audio is decoded.
GET /models/status, with its languages, streaming flag and latency_band — that response, not this page, is the machine-readable source of truth.
The capture and settings routes still accept the legacy size keys (
base, small, medium, large) so configurations saved before the catalog was consolidated keep loading. Those weights are no longer served; a request naming one is transcribed with LIPI.Capabilities
- Multilingual transcription — automatic language detection, or pin a language so short utterances are never mis-detected. LIPI and LIPI-Fast accept 100 language codes; LIPI-Bharat and LIPI-Live claim narrower, verified sets.
- Live-call turns — LIPI-Fast delivers the low-latency transcription that makes real-time voice agents responsive, with automatic fallback to LIPI.
- Quality/speed control — Fast / Balanced / Accurate presets map to decoder beam sizes on the capture routes.
- Bias vocabulary — nudge the decoder toward domain terms, product names, and acronyms.
- Translation — a
task=translatemode is plumbed end to end, but the currently served checkpoint was distilled without translation data, so X→English output is unreliable and often just transcribes in the source language. Transcribe first and translate downstream if you need it. - Self-hosted — served from your organization’s own GPU plane, metered per organization, with no external transcription provider in the path.
Using LIPI
Transcription runs through the Captures & Transcription API and the OpenAI-compatiblePOST /v1/audio/transcriptions route; live calls use it automatically. Omit the model field to get lipi, or name the model you want.
Model identifiers used before the catalog was consolidated are still accepted
and resolve to LIPI, so existing saved agent configurations and capture
settings keep working unchanged. Use
lipi for new integrations — it is the
value the API returns.
