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
transformersmodel. Load it with theomnilingual_asrlibrary (below), NOTAutoModel.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