Downloads · 30 days
0
yersultan-kv/whisper-kk-children-tiny
whisper-kk-children-tiny is a automatic speech recognition model from yersultan-kv. Use it when you need speech turned into text. The card lists the license as mit.
This model is a fine-tuned version of OpenAI Whisper-tiny, specifically adapted for Kazakh children’s speech (ages 5–12). Training was performed in two stages, using a total of 2172 audio samples:
Downloads · 30 days
0
Access
Public
Updated Dec 11, 2025
Repo size
151 MB
Likes
0
Public
Click a slice to open those files.
.safetensors151 MB · 96%
From the Hugging Face model README
This model is a fine-tuned version of OpenAI Whisper-tiny, specifically adapted for Kazakh children’s speech (ages 5–12). Training was performed in two stages, using a total of 2172 audio samples:
The model significantly improves recognition accuracy for short child-spoken Kazakh words and simple phrases.
| Metric | Base Whisper-tiny | Fine-tuned Model | Improvement |
|---|---|---|---|
| WER | 0.80 | 0.42 | -47.5% |
| Accuracy | 20.43% | 57.95% | +183% |
| Exact Match | ~20% | 61.11% | +199% |
The model performs best for single-word utterances, which reflects typical children's speech in the dataset.
Total dataset used: 2172 audio files
Transcripts were automatically extracted from filenames
Example:
AUDIO-2024-03-22-20-11-05_қарлығаш.wav
Most frequent words are numerals (“бір”, “екі”, “үш”, “он”, “жүз”), which reflects an educational dataset.
Training was conducted on Google Colab (NVIDIA T4 GPU) using PyTorch + Hugging Face Transformers.
Purpose: Teach the model basic acoustic structure of Kazakh child speech.
Purpose: Improve generalization with a more diverse dataset.
import torch
import torchaudio
from transformers import WhisperProcessor, WhisperForConditionalGeneration
model_path = "Yersultan/whisper-kk-children" # replace
processor = WhisperProcessor.from_pretrained(model_path)
model = WhisperForConditionalGeneration.from_pretrained(model_path)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device).eval()
def transcribe(audio_path):
audio, sr = torchaudio.load(audio_path)
if sr != 16000:
audio = torchaudio.transforms.Resample(sr, 16000)(audio)
features = processor.feature_extractor(
audio.squeeze().numpy(),
sampling_rate=16000,
return_tensors="pt"
).input_features.to(device)
forced_ids = processor.get_decoder_prompt_ids(
language="kazakh",
task="transcribe"
)
with torch.no_grad():
pred_ids = model.generate(features, forced_decoder_ids=forced_ids)
return processor.batch_decode(pred_ids, skip_special_tokens=True)[0]
Yersultan Kelesbayev Kazakh National University (KazNU)
Faculty of Information Technology
Email: [email protected]
Special thanks to Duisenbekkyzy Zhansaya for providing the dataset.
MIT License
This project provides one of the first fine-tuned Whisper models specifically for Kazakh children’s speech. It greatly boosts recognition accuracy and can serve as a foundation for: