computeram/badini-w2v-bert-normalized
037
Badini Kurdish ASR — Normalized (Wav2Vec2-BERT)
An automatic speech recognition (ASR) model for Badini Kurdish (a variety of Kurmanji, written in Arabic script), fine-tuned from `facebook/w2v-bert-2.0` with a CTC head.
This repository includes a companion text-normalization module (badini_normalize.py) alongside the model. Following the usage example below applies punctuation handling, number expansion, and character normalization to the raw model output.
Input requirements
- Audio must be 16 kHz, mono.
- Resample any other sample rate to 16 kHz before inference.
Usage
import torch, soundfile as sf
from transformers import Wav2Vec2BertForCTC, Wav2Vec2BertProcessor
from huggingface_hub import hf_hub_download
import importlib.util
repo_id = "computeram/badini-w2v-bert-normalized"
# download and load the companion normalization module
norm_path = hf_hub_download(repo_id, "badini_normalize.py")
spec = importlib.util.spec_from_file_location("badini_normalize", norm_path)
badini_normalize = importlib.util.module_from_spec(spec)
spec.loader.exec_module(badini_normalize)
processor = Wav2Vec2BertProcessor.from_pretrained(repo_id)
model = Wav2Vec2BertForCTC.from_pretrained(repo_id).eval()
speech, sr = sf.read("audio.wav") # 16 kHz mono
inputs = processor(speech, sampling_rate=16000, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
pred_ids = torch.argmax(logits, dim=-1)
raw_text = processor.batch_decode(pred_ids)[0]
# apply the normalization pipeline (punctuation handling, Badini number
# expansion, character/word-variant unification)
text = badini_normalize.normalize_transcript(raw_text)
print(text)Intended use
Speech transcription for Badini Kurdish, with the recommended normalization already applied by following the usage example above.
