shravya / README.md
Fiste's picture
Shravya: card, runtime and licences
942019d verified
|
Raw History Blame Contribute Delete
9.47 kB
metadata
language:
  - ne
license: cc-by-nc-4.0
library_name: onnx
pipeline_tag: automatic-speech-recognition
tags:
  - automatic-speech-recognition
  - speech-recognition
  - speech-to-text
  - asr
  - nepali
  - devanagari
  - onnx
  - conformer
  - transducer
  - telephony
  - code-switching
  - streaming
  - shravya
  - fiste-ai
datasets:
  - ai4bharat/IndicVoices
  - google/fleurs
  - saileshbro/nepali-cs-asr
  - Bijay13/nepali-podcast-code-switch-asr-dataset
metrics:
  - wer
  - cer
model-index:
  - name: Shravya 0.1
    results:
      - task:
          type: automatic-speech-recognition
          name: Automatic Speech Recognition
        dataset:
          name: FLEURS (Nepali, test)
          type: google/fleurs
          config: ne_np
          split: test
        metrics:
          - type: wer
            value: 23.9
            name: WER
          - type: cer
            value: 8.2
            name: CER
      - task:
          type: automatic-speech-recognition
          name: Automatic Speech Recognition
        dataset:
          name: NepTel 0.2 (telephone calls)
          type: ampixa/neptel
        metrics:
          - type: wer
            value: 38.2
            name: WER
extra_gated_heading: Request access to Shravya
extra_gated_prompt: >-
  Shravya is free for research and other non-commercial use. We read every
  request and approve by hand, usually within a few days. Tell us briefly who
  you are and what you plan to do with the model.
extra_gated_fields:
  Name or organisation: text
  What you will use Shravya for: text
  I will use the model for non-commercial purposes only: checkbox
  I will not use it to monitor or identify people without their consent: checkbox
extra_gated_button_content: Request access

Shravya (श्रव्य)

Nepali speech recognition by Fiste AI. Speech in, Devanagari text out.

Shravya by Fiste AI

  • Accurate. 23.5% word error rate averaged over five test sets, the lowest of the 20 Nepali systems in our benchmark.
  • Made for real speech. Conversations, phone calls, podcasts and Nepali with English mixed in.
  • Light. One Python file, no graphics card, 28 times faster than real time on a desktop processor.
  • Live. Shravya Live writes the text while someone is still speaking, with the fewest errors of the streaming systems we measured. Preview.

Benchmark

Word error rate in percent, lower is better.

Model Size Mean FLEURS IndicVoices IndicVoices (phone) Podcast Code-switch
Shravya 0.1 120M 23.5 23.9 11.8 13.8 34.1 33.7
IndicConformer 600M 600M 27.3 23.7 15.0 17.9 41.7 38.4
Rani-IndicConformer (Ampixa Labs) 129M 27.5 24.9 12.2 15.1 44.9 40.4
IndicConformer Nepali 129M 27.7 24.8 11.3 13.6 48.8 40.1
SraVaani 1.0 430M 29.7 25.9 13.9 19.1 45.0 44.5
Kriti Telephony v1 129M 31.2 31.8 25.1 27.2 28.3 43.5
Rani (Ampixa Labs) 121M 32.1 33.8 24.9 29.3 32.5 39.8
IndicConformer Nepali int8 120M 33.3 29.2 16.3 21.3 54.5 45.1
SraVaani code-mix (AI Lab) 449M 38.2 34.5 34.0 39.6 39.3 43.6
IndicConformer code-mix (AI Lab) 128M 38.6 34.9 34.3 38.4 42.1 43.2

Shravya was trained on speech like these five test sets, and most of the other systems were not. All 20 systems, three more test sets and the method are in the full benchmark.

Use it

Request access with the form at the top of this 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
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

Shravya Live (preview)

Shravya Live writes the text while someone is still speaking. When the speaker pauses it reads the phrase once more as a whole, and that is the text to keep. It is a second model, in the folder live/ of the same download.

model = shravya.load("shravya-model/live")
stream = model.stream()                    # text every 640 ms; chunk_ms=320 answers sooner
for block in microphone:                   # 16 kHz mono float samples, blocks of any length
    print(stream.feed(block))              # the phrase so far
    if stream.pause > 0.8:                 # the speaker has stopped for a moment
        print(stream.cut())                # the phrase read once more: the text to keep
print(stream.finish())                     # the same for the last phrase

To try it on a recording: python shravya-model/shravya.py --model shravya-model/live --stream clip.wav

Word error rate in percent on the five test sets above, lower is better.

Shravya Live Mean FLEURS IndicVoices IndicVoices (phone) Podcast Code-switch
Live text, every 640 ms 28.4 31.4 17.1 21.4 35.3 36.8
Live text, every 320 ms 31.8 35.7 19.6 25.7 38.1 39.5
Final text of a phrase 23.5 24.5 13.6 16.1 30.9 32.5

On one thread of a desktop processor it runs 8 times faster than real time (5.7 times at 320 ms). It is a preview: measured on recordings fed to it in small blocks, not yet on live calls.

Beside the other streaming systems we have measured, the text each one writes live:

Streaming system Size Step or look-ahead Mean FLEURS IndicVoices IndicVoices (phone) Podcast Code-switch
Shravya Live 120M 640 ms 28.4 31.4 17.1 21.4 35.3 36.8
Shravya Live 120M 320 ms 31.8 35.7 19.6 25.7 38.1 39.5
NepaliConformer streaming (Ampixa Labs) 121M 520 ms look-ahead 52.3 54.7 51.4 57.4 38.6 59.3
Ratna (Ampixa Labs) 32M 320 ms 54.2 56.9 48.3 53.9 46.0 65.6

Shravya Live makes the fewest errors of the three, on every test set at 640 ms. It is also the largest: Ratna is about a quarter of its size and takes 2.7 times less processor time. More in the full benchmark.

Details

Version 0.1, 11 November 2026
Model Conformer transducer, 119.6M parameters, 500 MB
Input any sound file; long recordings are cut at quiet points
Output Devanagari without punctuation, in standard or verbatim spelling
Speed 28 times faster than real time on 8 processor threads, 1.2 GB of memory
Training fine-tuned on 174 hours of Nepali speech
Shravya Live 0.1 (preview), 13 November 2026: 512 MB in live/, text every 640 or 320 ms, 1.7 GB of memory
Licence weights CC BY-NC 4.0, code MIT

Limits. No punctuation, and English words come out in Devanagari. Phone calls are still hard (38.2% word error rate on real calls), so check names and numbers. Shravya Live is a preview, and the text it writes while someone is speaking has more errors than its final text.

Using it at work. These weights are non-commercial. For a product or a paid service, a demo on your own recordings, or a pilot in a call centre or a newsroom, write to us: request a demo or fistelabs@gmail.com.

श्रव्य (shravya) means audible. Website · Code

Acknowledgements and licences
  • Shravya is fine-tuned from the Nepali IndicConformer by AI4Bharat (MIT License, see NOTICE.md).
  • Training speech: IndicVoices and FLEURS (CC BY 4.0), saileshbro/nepali-cs-asr (CC BY-NC 4.0), Bijay13/nepali-podcast-code-switch-asr-dataset, and telephone speech that is not distributed. That mix is why the weights are non-commercial and by request.
  • English words in training transcripts were transliterated with the word map of Ampixa/rani-asr (MIT). Some verbatim spellings follow Kriti Telephony (MIT).
  • The benchmark names the systems it measures, among them Ratna (Ampixa Labs) and Rani (Ampixa Labs).
@misc{fisteai2026shravya,
  title  = {Shravya: Nepali speech recognition},
  author = {{Fiste AI}},
  year   = {2026},
  url    = {https://huggingface.co/fiste-ai/shravya}
}