Kavya Manohar, Kush Juvekar, Dia Krishnan, Arghya Bhattacharya, Kumarmanas Nethil
Release
8
min read
Introducing Koyal: open models for document-ready Indic dictation
Today we are releasing Koyal, a family of five open speech recognition models for Hindi, Kannada, Malayalam and Telugu - built with NVIDIA Nemotron open models and libraries.
If you have built with open speech recognition models for Indian languages, you have probably hit this: the models recognize the words, but depending on which model is used, the transcript may still not be usable: Missing punctuation, numbers spelled as words, and formatting that has to be reconstructed downstream. Before the output can become a note, a form or a court order, you end up building and maintaining another layer on top.
That gap matters most where the transcript itself is the deliverable. In dictation workflows, including the court systems we build at Adalat AI, the text goes into a document. Recognition alone is not the product.
Today we are releasing Koyal, a family of five open speech recognition models for Hindi, Kannada, Malayalam and Telugu - built with NVIDIA Nemotron open models and libraries.
Rich orthography, and why it matters
Many ASR datasets and benchmarks use normalized transcripts that remove punctuation and standardize numerals. That makes lexical recognition easier to compare, but it does not measure whether a model produces a document-ready transcript. Koyal is trained and evaluated for richer orthographic output, including punctuation and written numeral forms.
Normalized/verbatim | सुनवाई पंद्रह मार्च को हुई थी अगली तारीख दो अप्रैल है |
Rich-orthography | सुनवाई 15 मार्च को हुई थी। अगली तारीख 2 अप्रैल है। |
Koyal is trained the other way. Training transcripts keep punctuation and written number forms, and the models learn to emit them directly. We call this rich orthography (RO). The point is not cosmetic formatting - it is to move more of the document-production task into the open model itself.
The release
Four monolingual 120M models for offline transcription, and one 600M multilingual model covering all four languages in both offline and streaming modes.
Release overview
Model | Languages | Parameters | Modes |
Hindi | 120M | Offline | |
Kannada | 120M | Offline | |
Malayalam | 120M | Offline | |
Telugu | 120M | Offline | |
Hindi, Kannada, Malayalam, Telugu | 600M | Offline + streaming |
All five models are trained with NVIDIA NeMo libraries and can be deployed across wide range of popular inference runtimes. The 120M checkpoints are about 0.5 GB.
To our knowledge, the monolingual checkpoints are the smallest open models for rich-orthography transcription in these languages. For the multilingual model, we adapted the cache-aware FastConformer encoder from NVIDIA Nemotron 3.5 ASR and introduced a new tokenizer and decoder optimized for Hindi, Kannada, Malayalam and Telugu. This extends the benefits of efficient cache-aware streaming to additional Indic languages and native scripts while supporting document-ready output.Koyal-indic-600m-1.0 is the first open-weights cache-aware streaming ASR to support native-script transcription across Malayalam, Kannada and Telugu in a single checkpoint.
Both properties answer requests we keep seeing from users of open Indic ASR: models that emit punctuation, and models small enough to run on modest hardware.
Four monolingual models
The monolingual models are Conformer hybrid TDT-CTC systems warm-started from MahaDhwani, AI4Bharat's self-supervised encoder pretrained on 279K hours of Indic speech. MahaDhwani is a Conformer encoder rather than a FastConformer, so the cache-aware streaming recipes do not apply to it; these models are offline only. Each is further fine-tuned on 1,350 to 2,400 hours of curated dictation data in its language, drawn from public datasets.
We report WER_SCRIBE, the rich-orthography metric from our scribe-eval framework - not standard WER. It scores word identity, punctuation and numeral rendering together, which is the full document-ready task. Lower is better. The appendix explains how it differs from WER and ER_LEX.
WER_SCRIBE (%) on FLEURS-RO. Lower is better.
System | Hindi | Kannada | Malayalam | Telugu |
Koyal monolingual | 9.03 | 11.30 | 14.74 | 17.81 |
Earlier SCRIBE Whisper-small | 15.29 | 22.62 | 29.39 | — |
For the three languages covered in the SCRIBE paper, the Koyal models are about half the size of those Whisper-small systems and substantially more accurate.
How does Koyal compare with other systems?
WER_SCRIBE cannot be used here: most comparison systems were never trained to emit punctuation or formatted numerals, so scoring them on it would penalize them for a task they do not attempt. Instead we use ER_LEX, the lexical component of scribe-eval, which asks only whether the words were recognized correctly. It is an error rate — lower is better.
Language | Datasets | Saaras v4 | SraVaani 1.0 | Indic Conformer | Koyal mono | Koyal indic |
Hindi | 7 | 7.95 | 9.70 | 9.71 | 9.59 | 12.52 |
Kannada | 5 | 16.67 | 16.66 | 17.96 | 18.20 | 21.15 |
Malayalam | 5 | 12.82 | 14.95 | 16.32 | 14.19 | 19.25 |
Telugu | 6 | 13.71 | 16.55 | 16.56 | 15.81 | 20.45 |
Mean |
| 12.79 | 14.47 | 15.14 | 14.45 | 18.34 |
Benchmarks are IndicVoices, FLEURS, Kathbath, RESPIN, Common Voice, MUCS and IndicTTS, depending on availability per language. Saaras v4 is a commercial system, included to show where these numbers sit relative to production ASR.
This is not a leaderboard. Benchmark coverage differs by language, and the systems differ in size, training objective and output format. The table is here to give a sense of the range across existing systems, not to rank them. A controlled comparison on common datasets is planned for the Vividh 2.0 release. Per-dataset ER_LEX numbers for each Koyal model are on its model card.
One multilingual model, offline and streaming
koyal-indic-600m-1.0 covers all four languages from a single checkpoint. Its encoder is the cache-aware streaming FastConformer model, from NVIDIA Nemotron 3.5 ASR. We paired it with a prompt-conditioned RNN-T decoder and a 6k-token vocabulary built for the four languages, and extended the encoder's trained attention-context set with a full-context offline point.
The monolingual models remain more accurate for single-language offline transcription. The multilingual model is for deployments that need four languages, or live streaming, from one artifact.
The streaming trade-off
The operating point is selected at inference. Lookahead is how much future audio the model waits for before committing; offline decoding has full context.
Language | Offline | 1040 ms | 480 ms | 240 ms | 0 ms |
Hindi | 12.33 | 13.22 | 13.53 | 13.60 | 14.54 |
Kannada | 12.75 | 13.39 | 13.77 | 14.01 | 14.80 |
Malayalam | 18.58 | 19.23 | 19.62 | 19.78 | 20.51 |
Telugu | 20.65 | 21.63 | 21.76 | 22.03 | 22.87 |
At zero lookahead the model stays within 2.22 points of full-context offline decoding in every language. The degradation is gradual rather than abrupt, which is what makes a single checkpoint practical for both workloads.
Training data
Public corpora — IndicVoices, Shrutilipi, Kathbath, SeamlessAlign, SPRING-INX, FLEURS and others — with transcripts curated to rich orthography using the pipeline described in the SCRIBE paper. Per-language totals: Hindi 2,400 hours, Telugu 1,720, Kannada 1,440, Malayalam 1,350. Full source lists, per-category error decompositions and conventional jiwer WER/CER numbers are on the model cards.
Get started with Adalat AI here.
Acknowledgements
The monolingual models build on MahaDhwani, AI4Bharat's self-supervised encoder for Indian languages with NVIDIA NeMo libraries. The multilingual model builds on NVIDIA Nemotron 3.5 ASR, which covers ~40 language-locales out of the box,, and our streaming work draws on the cache-aware FastConformer recipes in NVIDIA NeMo. We thank the creators of the public speech corpora these models are trained on; the full list is on the model cards.
While Koyal models are trained on curated dictation transcripts, they should undergo thorough human review and use-case evaluation before generating official judicial or administrative records.
Koyal models are released by Adalat AI. Questions and feedback: the Community tab on each model repository.
Appendix
Standard WER, ER_LEX and WER_SCRIBE answer different questions and are not interchangeable. The normalization and tokenization choices behind any reported WER matter.
WER — how different are the hypothesis and reference word sequences, after whatever normalization was applied? Widely understood, but depending on preprocessing it may or may not count punctuation, numeral rendering and word-boundary differences.
ER_LEX — did the model recognize the underlying words? scribe-eval isolates the lexical component so RO and non-RO systems can be compared on the task they share. Used above for the external comparison.
WER_SCRIBE — did the model produce the correct document-ready transcript? scribe-eval aligns output and reference, then attributes errors to lexical, numeral and punctuation categories. Used above for Koyal's core objective and the streaming trade-off.
scribe-eval is also sandhi-tolerant: where the same Indic speech can validly be written as one word or two, it scores merges and splits as matches rather than word errors. The difference is large for agglutinative languages — on identical Malayalam output, koyal-ml scores 14.74 WER_SCRIBE against 22.69 plain WER.
We evaluate on FLEURS-RO, our rich-orthography re-annotation of the FLEURS test sets, using scribe-eval. Both are described in "SCRIBE: Diagnostic Evaluation and Rich Transcription Models for Indic ASR", to appear at Interspeech 2026. FLEURS-RO is public on Hugging Face.
