You need to agree to share your Hugging Face information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Rani is released with approval. If you distill it, use it or its outputs to train or evaluate another model, or distribute a derivative, name it properly as Rani (Ampixa Labs) in your model card or documentation. See LICENSE.md.

Log in or Sign Up to review the conditions and access this model content.

Rani

Rani (रानी)

Nepali speech-to-text from Ampixa Labs. Rani was previously called NepaliConformer. Every flavour is in this repository.

folder model what it is for
rani/ Rani customer calls and read speech
rani-indicconformer/ Rani-IndicConformer a full IndicConformer fine-tune for clean speech
nepali-conformer/ NepaliConformer offline our older offline model
nepali-conformer-streaming/ NepaliConformer streaming our older streaming model

Code, results and scorer: https://github.com/Ampixa/rani-asr. Page: https://ampixa.com/rani/. Demo: https://huggingface.co/spaces/voidash/rani-asr.

Results

NepTel 0.2 is real Nepali phone audio at 8 kHz: 78 segments, 2,647 words, 31.5 minutes. A human listened to and corrected every reference, starting from a draft by our LONG1C model. Mistakes per 100 words, no language model:

system mistakes per 100 words gap to Rani (95% CI)
Rani 33.5
IndicConformer Finetune + NepaliConformer Distilled (KritiTelephony) 37.9 +4.4 (+1.9, +6.9)
NepaliConformer offline 39.7 +6.2 (+3.2, +9.0)
AI4Bharat IndicConformer 47.6 +14.1 (+10.4, +18.0)

Read speech, mistakes per 100 letters.

test Rani (language model) IndicConformer Finetune + NepaliConformer Distilled (KritiTelephony) IndicConformer
PVSpeech, 93 sentences (also used to select the checkpoint) 3.6 3.8 9.8
FLEURS Nepali, 726 sentences 10.4 9.9 7.4

The language model is not part of this release. Rani-IndicConformer scores 3.9 on PVSpeech.

Usage

import nemo.collections.asr as nemo_asr
from omegaconf import OmegaConf, open_dict

model = nemo_asr.models.EncDecHybridRNNTCTCBPEModel.restore_from("rani/rani.nemo", map_location="cpu", strict=False).eval()
with open_dict(model.cfg):
    model.cfg.validation_ds = OmegaConf.create({"use_start_end_token": False})
model.change_decoding_strategy(model.cfg.decoding, decoder_type="rnnt")
print(model.transcribe(["audio_16k.wav"])[0].text)

For Rani-IndicConformer use nemo_asr.models.ASRModel.restore_from and pass language_id="ne" to transcribe. It loads on the NeMo 1.23.0rc0 build used for IndicConformer and does not load on NeMo 3.0.0.

Licence

Rani and Rani-IndicConformer are under LICENSE.md. If you distill them, use them or their outputs to train or evaluate another model, or distribute a derivative, name it properly as Rani (Ampixa Labs) in that model's card or documentation, and keep that credit when you pass it on. The NepaliConformer files keep the terms of their original repositories, offline and streaming.

Downloads last month
1
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using ampixa/rani-asr 1