πŸŽ™οΈ Whisper Medium Fine-Tuned for Karakalpak (Qaraqalpaqsha)

This repository contains the fine-tuned checkpoint of OpenAI Whisper Medium trained on the Karakalpak Speech Corpus β€” an open-access speech dataset comprising 106.92 hours of native Karakalpak speech.

Karakalpak is a low-resource Turkic language spoken primarily in the Republic of Karakalpakstan (Uzbekistan). This model establishes a new state-of-the-art benchmark for Karakalpak Automatic Speech Recognition (ASR), reaching a 9.59% Test WER (with a median WER of 3.85%).


🎯 Project Mission: Preserving the Karakalpak Language

In modern artificial intelligence, low-resource languages face a real risk of digital exclusion. Without public datasets and dedicated models, voice assistants, speech-to-text engines, and educational tools remain unavailable to native speakers.

Our project addresses this divide by:

  1. Preserving and revitalizing the Karakalpak language: Establishing the first large-scale open-source ASR baseline.
  2. Promoting AI for Social Good: Showing how youth-led initiatives can solve regional and linguistic technology gaps.

πŸ‘₯ Project Leadership & Team (Muhammad al-Khwarizmi Specialized School, Nukus)

This initiative was founded and spearheaded by Atabek Kadirbergenov, who assembled and led a student research team from the Muhammad al-Khwarizmi Specialized School in Nukus:

  • Atabek Kadirbergenov β€” Founder, Project Lead & AI/ML Engineer
    Responsibilities: Conceived and founded the initiative, assembled the research team, pitched school leadership to secure GPU computing resources, designed the end-to-end data pipeline and phonetic text normalization algorithms, led Whisper-Medium fine-tuning, benchmarked evaluations, and managed the open-source release.
    Telegram: @atik_uwu

  • Sanjar Tleumuratov β€” Telegram Bot, Systems & Data Moderation Lead
    Responsibilities: Crowdsourcing bot architecture, backend server infrastructure, contributor administration, submission quality moderation (filtering invalid/spam recordings), and audio ingestion pipeline.
    Telegram: @Sanjar030609 | LinkedIn

  • Dawitbay Nasiratdinov β€” Media, Outreach & PR Lead
    Responsibilities: Regional public relations, community engagement, promotional video production, editing, and mobilizing 200+ native contributors.
    Telegram: @Dawitbay_Nasiratdinov | LinkedIn


πŸ™ Acknowledgements

We express our deepest gratitude to:

  • Muhammad al-Khwarizmi Specialized School (Nukus): For granting GPU computing infrastructure to train the Whisper Medium model and actively supporting our initiative across the academic community (Official School Announcement).
  • The Karakalpak Community: All 200+ contributors across Karakalpakstan who recorded and donated their voices.

πŸ“Š Model Performance & Benchmarks

Evaluated on an independent, speaker-stratified test split:

Split Hours Samples Mean WER (%) Median WER (%) Mean CER (%)
Validation ~5.3 hrs 1,074 8.37% 3.45% 3.24%
Test ~5.3 hrs 1,074 9.59% 3.85% 4.03%

βš™οΈ Training Details & Hardware

  • Base Architecture: openai/whisper-medium (769M parameters, 24 decoder layers, 16 attention heads)
  • Precision: bfloat16
  • Compute Hardware: NVIDIA GeForce RTX 5060 Ti (16 GB VRAM) (provided by Muhammad al-Khwarizmi Specialized School lab)
  • Training Runtime: ~8 hours (28,725 seconds)
  • Training Epochs: 6.0
  • Total Steps: 2,898 steps
  • Final Training Loss: 0.033
  • Base Language Setting: uz (optimized for Karakalpak phonetics)
  • Optimizer: AdamW with linear learning rate warmup and decay
  • Augmentation: SpecAugment enabled

πŸš€ Quick Start (Inference in 5 Lines)

Using the Hugging Face pipeline API:

import torch
from transformers import pipeline

pipe = pipeline(
    "automatic-speech-recognition",
    model="atikuwu/whisper-medium-karakalpak",
    torch_dtype=torch.bfloat16,
    device="cuda:0" if torch.cuda.is_available() else "cpu",
)

# Transcribe any Karakalpak audio (WAV, MP3, OGG, FLAC)
result = pipe("sample_audio.ogg", generate_kwargs={"task": "transcribe", "language": "uz"})
print("Transcription:", result["text"])

Direct Model & Processor Usage

import torch
from transformers import WhisperForConditionalGeneration, WhisperProcessor
import torchaudio

device = "cuda" if torch.cuda.is_available() else "cpu"
model_id = "atikuwu/whisper-medium-karakalpak"

processor = WhisperProcessor.from_pretrained(model_id)
model = WhisperForConditionalGeneration.from_pretrained(model_id, torch_dtype=torch.bfloat16).to(device)

# Load audio (resample to 16kHz mono)
audio, sr = torchaudio.load("sample_audio.ogg")
if sr != 16000:
    audio = torchaudio.transforms.Resample(sr, 16000)(audio)

inputs = processor(audio.squeeze().numpy(), sampling_rate=16000, return_tensors="pt").input_features.to(device, dtype=torch.bfloat16)

with torch.no_grad():
    predicted_ids = model.generate(inputs)

transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]
print("Transcription:", transcription)

πŸ“œ Citation & Academic Attribution

@misc{kadirbergenov2026karakalpak,
  title={Fine-Tuning Whisper for Low-Resource Karakalpak Speech Recognition},
  author={Kadirbergenov, Atabek and Tleumuratov, Sanjar and Nasiratdinov, Dawitbay},
  organization={Muhammad al-Khwarizmi Specialized School, Nukus},
  year={2026},
  publisher={Hugging Face},
  howpublished={\url{https://huggingface.co/atikuwu/whisper-medium-karakalpak}}
}
Downloads last month
68
Safetensors
Model size
0.8B params
Tensor type
BF16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for atikuwu/whisper-medium-karakalpak

Finetuned
(944)
this model

Evaluation results