Downloads · 30 days
27
33% of all-time downloads
TBOGamer22/Brahvi-Whisper-Small
Brahvi-Whisper-Small is a automatic speech recognition model from TBOGamer22. Use it when you need speech turned into text. It is set up for transformers.
Brahvi Whisper Small is a full-parameter fine-tune of openai/whisper-small for automatic speech recognition in Pakistani Brahvi (also known as Brahui). It produces Perso-Arabic Brahvi transcriptions from real-world sp…
Downloads · 30 days
27
33% of all-time downloads
All-time downloads
81
Public
Parameters
242M
967 MB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors967 MB · 100%
From the Hugging Face model README
Brahvi Whisper Small is a full-parameter fine-tune of
openai/whisper-small for automatic
speech recognition in Pakistani Brahvi (also known as Brahui). It produces
Perso-Arabic Brahvi transcriptions from real-world speech.
To the best of the author's knowledge as of September 16, 2026, this is the world's first publicly released automatic speech recognition model dedicated to the Brahvi language. This claim concerns dedicated, publicly documented model releases and does not exclude unpublished systems or broad multilingual models that may provide incidental Brahvi coverage.
The model was trained with
TBOGamer22/BrahuiSpeech-70H-V2.
Whisper does not provide a dedicated brh language prompt token. This model was
therefore trained with Whisper's Urdu token while the target text remained Brahvi.
Use language="ur" and task="transcribe". The model was not trained for speech
translation.
import math
import numpy as np
import soundfile as sf
import torch
from scipy.signal import resample_poly
from transformers import WhisperForConditionalGeneration, WhisperProcessor
model_id = "TBOGamer22/Brahvi-Whisper-Small"
use_cuda = torch.cuda.is_available()
dtype = torch.float16 if use_cuda else torch.float32
processor = WhisperProcessor.from_pretrained(model_id)
model = WhisperForConditionalGeneration.from_pretrained(
model_id,
dtype=dtype,
low_cpu_mem_usage=True,
use_safetensors=True,
).to("cuda" if use_cuda else "cpu")
audio, sample_rate = sf.read("brahvi_audio.wav", dtype="float32", always_2d=True)
audio = audio.mean(axis=1)
if sample_rate != 16000:
divisor = math.gcd(sample_rate, 16000)
audio = resample_poly(
audio,
16000 // divisor,
sample_rate // divisor,
).astype(np.float32, copy=False)
inputs = processor(
audio,
sampling_rate=16000,
return_tensors="pt",
)
input_features = inputs.input_features.to(model.device, dtype=dtype)
with torch.inference_mode():
predicted_ids = model.generate(
input_features,
language="ur",
task="transcribe",
)
text = processor.batch_decode(
predicted_ids,
skip_special_tokens=True,
clean_up_tokenization_spaces=False,
)[0]
print(text)
openai/whisper-smallTBOGamer22/BrahuiSpeech-70H-V21e-5ur) with task transcribeResults were measured on the fixed 648-clip held-out subset. WER and CER are case- and punctuation-sensitive after whitespace normalization. This is an in-domain held-out evaluation, not an independent external benchmark.
| Metric | Final result |
|---|---|
| Evaluation loss | 0.633087 |
| WER | 55.7108% |
| CER | 22.8336% |
| BLEU | 24.8540 |
| chrF++ | 54.7677 |
The complete per-epoch results and the released weight hash are provided in
training_results.json.
This model is intended for Brahvi ASR research, transcription experiments, low-resource speech technology, and continued fine-tuning. Predictions should be reviewed by a fluent Brahvi speaker before publication or use in consequential workflows.
The released weights are the epoch-5 final export and are byte-identical to
checkpoint-9365/model.safetensors from training.