Professor/yecs-asr-ctc-300m

Finetune of omniASR_CTC_300M (Meta Omnilingual ASR) on the Yoruba-English Code-Switching (YECS) Corpus.

This is a fairseq2 checkpoint, not a transformers model. Load it with the omnilingual_asr library (below), NOT AutoModel.from_pretrained.

Files

  • model.pt โ€” finetuned weights (state dict)
  • omniASR_tokenizer_v1.model โ€” char tokenizer (also auto-downloadable by name)
  • model.yaml, config.yaml โ€” architecture + training config

Inference

git clone https://github.com/facebookresearch/omnilingual-asr && cd omnilingual-asr
pip install -e . && pip install huggingface_hub
import re, torch
from huggingface_hub import hf_hub_download
from fairseq2.models.hub import load_model
from fairseq2.data.tokenizers.hub import load_tokenizer
from omnilingual_asr.models.inference.pipeline import ASRInferencePipeline

model = load_model("omniASR_CTC_300M", dtype=torch.bfloat16)
sd = torch.load(hf_hub_download("Professor/yecs-asr-ctc-300m", "model.pt"), map_location="cpu")
model.load_state_dict(sd, strict=False)        # if this errors, try sd["model"]
tok = load_tokenizer("omniASR_tokenizer_v1")
pipe = ASRInferencePipeline(None, model=model, tokenizer=tok)

def clean_pred(t):                             # the ASR tokenizer has no punctuation, so it
    return re.sub(r"\s+", " ", t.replace("\u2047", "")).strip()  # emits an unknown token (U+2047)

preds = pipe.transcribe(["sample.wav"])        # 16kHz mono; CTC ignores lang
print([clean_pred(p) for p in preds])

Output is lowercase and unpunctuated โ€” that is normal for ASR (the tokenizer models only spoken characters + tone marks, not casing or punctuation).

License

Training data is NOODL-1.0 (YECS / LyngualLabs) โ€” review its terms before redistribution. Base model omniASR_CTC_300M is Apache-2.0.

Downloads last month
12
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support