Fiste AI

Released  /  Nepali speech recognition

श्रव्यShravya, Nepali speech to text.

Play it a Nepali conversation, a phone call or a lecture with English mixed in, and it writes down what was said.

The fiste logo: a small bird's head over the Himalaya, above the word fiste

Version 0.1, 11 November 2026

The weights are on Hugging Face, free for research and other non-commercial use, by request. The runtime and the full benchmark are on GitHub.

23.5%
mean word error rate over five test sets, the lowest of 16 systems measured
28×
faster than real time on a desktop processor, no graphics card
2
writing styles: standard spelling, or verbatim, the way it was said
1
Python file to run it, with onnxruntime and numpy

What it does

Most Nepali speech recognition is tested on someone reading a sentence aloud. People do not talk like that.

They talk over a bad phone line, drop English words into a Nepali sentence, start again halfway, and spell nothing the way a newspaper would. Shravya was trained and tested on that kind of speech as well as on read sentences.

It writes Devanagari in two styles. Standard gives you the spelling of written Nepali. Verbatim keeps the words as they were said, which is what you want for a call or an interview.

श्रव्य फिस्टे एआईले बनाएको नेपाली बोली चिन्ने मोडेल हो। यसले नेपाली कुराकानी, फोन कल, पोडकास्ट र अङ्ग्रेजी मिसिएको नेपालीलाई देवनागरीमा लेख्छ।

यो साधारण कम्प्युटरको प्रोसेसरमै चल्छ। ग्राफिक्स कार्ड वा इन्टरनेट चाहिँदैन।

Results

Word error rate in percent on five test sets, lower is better. Each cell is WER / nWER. Measured 11 November 2026, every system on the same audio with the same scorer.

ModelSizeMeanFLEURSIndicVoicesIndicVoices (phone)PodcastCode-switch
Shravya 0.1120M23.5 / 20.423.9 / 18.411.8 / 11.113.8 / 13.134.1 / 31.833.7 / 27.6
IndicConformer 600M multilingual600M27.3 / 23.823.7 / 18.715.0 / 14.017.9 / 17.041.7 / 35.938.4 / 33.3
IndicConformer Nepali129M27.7 / 24.424.8 / 19.411.3 / 10.613.6 / 12.948.8 / 43.540.1 / 35.4
SraVaani 1.0430M29.7 / 26.225.9 / 20.913.9 / 13.019.1 / 18.145.0 / 39.344.5 / 39.5
Kriti Telephony129M31.2 / 23.831.8 / 19.825.1 / 17.227.2 / 19.928.3 / 26.443.5 / 35.6
IndicConformer Nepali, int8 ONNX120M33.3 / 30.229.2 / 24.616.3 / 15.321.3 / 20.354.5 / 50.245.1 / 40.4
SraVaani Nepali-English code-mix449M38.2 / 30.334.5 / 25.234.0 / 27.539.6 / 32.739.3 / 32.043.6 / 34.0
IndicConformer Nepali-English code-mix128M38.6 / 31.434.9 / 26.234.3 / 28.138.4 / 32.042.1 / 36.043.2 / 34.7
Whisper large-v3-turbo Nepali-English code-mix809M42.0 / 34.539.2 / 29.639.3 / 34.046.9 / 40.939.8 / 32.644.9 / 35.6
Ratna (Ampixa Labs)32M54.2 / 51.556.9 / 52.448.3 / 46.353.9 / 51.846.0 / 45.365.6 / 61.7
Sagarmatha v4809M55.4 / 52.138.5 / 31.952.3 / 50.559.6 / 58.362.7 / 59.764.1 / 60.2
Nepali ASR aud8325M57.7 / 54.143.6 / 38.854.1 / 51.162.8 / 60.363.5 / 61.164.3 / 59.4
Rani (Ampixa Labs)121Mn/a33.8 / 26.8n/an/an/an/a
  • WER is the plain word error rate. nWER is the same after writing numbers as words and folding spelling variants of one word together, so that systems trained on different spelling conventions are compared on content. Mean is the unweighted mean of the five sets.
  • Where the comparison favours us. Shravya was trained on the training portions of all five kinds of speech. Most of the other systems were not trained on podcast or code-switched lecture speech, so read those two columns as trained for it against not trained for it.
  • The three AI Lab systems write English words in Latin letters, which counts against them here. Rani (Ampixa Labs) was measured on FLEURS through its public demo and has no mean.
  • All 16 systems, the test sets and the scorer are in the benchmark file on GitHub. We add systems as we measure them.

Calls and other speech from sources it was not trained on

Three more test sets, for reporting only. NepTel 0.2 is real telephone calls.

ModelSizeNepTel 0.2 (calls)PVSpeech (read)New read speech
Rani (Ampixa Labs)121M33.5 / 31.218.4 / 14.6n/a
Kriti Telephony129M37.9 / 34.516.8 / 11.2n/a
Shravya 0.1120M38.2 / 34.616.2 / 12.818.4 / 11.0
SraVaani 1.0430M42.9 / 40.624.7 / 20.520.0 / 13.9
IndicConformer 600M multilingual600M47.5 / 45.412.5 / 9.616.5 / 11.7
IndicConformer Nepali129M47.6 / 45.622.1 / 19.418.0 / 12.2
IndicConformer Nepali-English code-mix128M48.7 / 44.621.3 / 17.826.3 / 19.3
SraVaani Nepali-English code-mix449M49.0 / 44.118.1 / 13.824.7 / 17.3
Whisper large-v3-turbo Nepali-English code-mix809M54.3 / 50.122.9 / 19.430.4 / 22.3
Ratna (Ampixa Labs)32M67.5 / 66.243.1 / 39.945.3 / 40.6
Nepali ASR aud8325M79.2 / 78.525.3 / 23.9n/a
MMS 1B965M81.6 / 79.832.7 / 29.0n/a
Sagarmatha v4809M91.5 / 90.433.5 / 30.9n/a
Nepali ASR Whisper turbo809M94.8 / 94.724.2 / 20.528.3 / 18.9

On calls, Rani (Ampixa Labs) is ahead of Shravya: 33.5 against 38.2. NepTel 0.2 has 78 segments, so differences below about 3 points are not resolved. Rani was scored from the transcripts Ampixa Labs published and from its public demo. "n/a" means not measured.

Is the difference real?

The other system's error rate minus Shravya's on the five-set mean, in points, with 95% intervals. Positive means the other system makes more errors.

Compared withMean WER, pointsMean nWER, pointsShravya has fewer errors onNo clear difference onShravya has more errors on
IndicConformer 600M multilingual+3.9 [+3.2, +4.7]+3.4 [+2.7, +4.3]IndicVoices, IndicVoices (phone), Podcast, Code-switchFLEURSnone
IndicConformer Nepali+4.2 [+3.8, +4.8]+4.0 [+3.5, +4.7]FLEURS, Podcast, Code-switchIndicVoices (phone)IndicVoices
Kriti Telephony+7.7 [+7.3, +8.1]+3.4 [+3.0, +4.0]FLEURS, IndicVoices, IndicVoices (phone), Code-switchnonePodcast
SraVaani 1.0+6.2 [+5.6, +7.2]+5.8 [+5.2, +6.8]FLEURS, IndicVoices, IndicVoices (phone), Podcast, Code-switchnonenone
SeamlessM4T v2 large+45.9 [+42.5, +50.1]+45.0 [+41.6, +49.4]IndicVoices, IndicVoices (phone), Podcast, Code-switchFLEURSnone
SraVaani Nepali-English code-mix+14.7 [+13.3, +16.5]+9.9 [+8.6, +11.7]FLEURS, IndicVoices, IndicVoices (phone), Podcast, Code-switchnonenone
IndicConformer Nepali-English code-mix+15.1 [+14.0, +16.5]+11.0 [+9.9, +12.5]FLEURS, IndicVoices, IndicVoices (phone), Podcast, Code-switchnonenone
Ratna (Ampixa Labs)+30.7 [+29.6, +31.9]+31.1 [+30.0, +32.4]FLEURS, IndicVoices, IndicVoices (phone), Podcast, Code-switchnonenone

Paired bootstrap that resamples whole groups of clips (speakers, recordings or sentences) rather than single clips.

Try it

Request access on the model page. We approve by hand. Then:

pip install onnxruntime numpy soundfile soxr huggingface_hub
hf auth login
hf download fiste-ai/shravya --local-dir shravya-model
python shravya-model/shravya.py clip.wav

In Python:

import sys
sys.path.insert(0, "shravya-model")
import shravya

model = shravya.load()
print(model.transcribe("clip.wav"))                      # standard spelling
print(model.transcribe("call.wav", style="verbatim"))    # the way it was said

It reads wav, flac, ogg and mp3 at any sample rate. Recordings longer than 40 seconds are cut at quiet points and transcribed piece by piece. A hosted demo will follow.

What it is

TaskNepali speech to Devanagari text
TypeConformer transducer, 119.6M parameters, fine-tuned on 174 hours of Nepali speech
OutputDevanagari without punctuation, in standard or verbatim spelling. English words are written in Devanagari
Speed28 times faster than real time on 8 threads of an Intel Core i7-10700K; about 1.2 GB of memory
NeedsPython with onnxruntime and numpy. No deep learning framework, no graphics card, no internet
ModeOffline, a whole utterance at a time. Not streaming yet
LicenceWeights CC BY-NC 4.0, by request. Runtime MIT

Training data, the checks we ran on the published files and the acknowledgements are on the model card.

Where it falls short

  • Calls are still hard. 38.2% word error rate on real calls is not good enough without a person checking.
  • No punctuation and no Latin letters. Numbers come out sometimes as digits and sometimes as words.
  • Names, numbers and addresses are the words it gets wrong most. Check a phone number or an amount before you use it.
  • Offline only. It needs the whole utterance. Streaming is next.
  • Not tested on children, strong regional accents, far-away microphones, music or loud noise.

Questions

What is Shravya?
Shravya is a speech recognition model for the Nepali language made by Fiste AI. You give it Nepali speech and it writes the words in Devanagari. It handles conversations, phone calls, podcasts and lectures with English words mixed in, as well as read speech.
How accurate is Shravya?
Over five test sets its mean word error rate is 23.5%, or 20.4% after spelling normalisation, the lowest of the 16 publicly available Nepali systems we have measured. On read sentences from FLEURS it is 23.9%. Shravya was trained on the same kinds of speech as the five test sets, which most other systems were not.
Does Shravya work on phone calls?
It was trained with a simulated telephone channel and some telephone speech, and it scores 38.2% word error rate on NepTel 0.2, a set of real calls. Rani by Ampixa Labs is ahead on that set at 33.5%. Neither number is good enough to transcribe calls without a person checking.
Does Shravya need a graphics card or the internet?
No. It runs offline on an ordinary processor, about 28 times faster than real time on a desktop machine, and needs only the onnxruntime and numpy Python packages.
Is Shravya free, and can I use it commercially?
The weights are free for research and other non-commercial use under CC BY-NC 4.0, by request on Hugging Face. The runtime code is MIT. For commercial use, open an issue on GitHub and tell us what you need.
What does the name Shravya mean?
श्रव्य (shravya) is the Nepali and Sanskrit word for audible, that which can be heard, as in श्रव्य-दृश्य, audio-visual.

The family

श्रव्यshravya

Shravya listens. Suseli (सुसेली), our text-to-speech model, speaks, and is still in training. Both come from Fiste AI, named after the small warblers you hear in the hills before you see them.