CoolFace
Modelpublic

KSE-RESEARCH-Group/whisper-small-ukr-dialects

sourceHugging Faceapache-2.0updated 7mo agoView on Hugging Face
1likes27downloads
Model Card

whisper-small - Fine-tuned for Ukrainian ASR

This model is a fine-tuned version of openai/whisper-small on the ukr dialects audio dataset for Ukrainian speech recognition.

Model Description

Fine-tune openai/whisper-small on ukr-dialects-audio-dataset

Training Details

Training Data

PropertyValue
DatasetKSE-RESEARCH-Group/ukr-dialects-audio-dataset
Training samples27673
Validation samples3365
Test samples3451
LanguageUkrainian
Max token length448

Training Hyperparameters

ParameterValue
Base modelopenai/whisper-small
Learning rate1e-05
Warmup steps500
Max steps5000
Batch size (per device)16
Gradient accumulation steps2
Effective batch size32
FP16True
Gradient checkpointingFalse
Eval strategysteps
Eval/Save steps500
Metric for best modelcer

Training Results

The model was trained for 5000 steps with evaluation every 500 steps. The best checkpoint was selected based on the lowest CER.

StepTrain LossEval LossEval CER (%)Eval WER (%)
5000.5380.59917.241.97
10000.3740.51819.3942.48
15000.3650.48618.6340.4
20000.230.48215.0134.86
25000.2470.47617.2137.67
30000.1370.49816.1235.5
35000.0990.50914.2333.22
40000.1010.52313.9133.04
45000.0940.5413.5932.36
50000.0810.54413.7332.45

Best Model Checkpoint: Step 4500

Final Evaluation Metrics

Validation Set
MetricValue
CER13.73%
WER32.45%
Eval Loss0.544
Test Set
MetricValue
CER12.09%
WER30.44%

Usage

Using Pipeline (Recommended)

python
from transformers import pipeline
import torch

device = "cuda:0" if torch.cuda.is_available() else "cpu"

pipe = pipeline(
    "automatic-speech-recognition",
    model="KSE-RESEARCH-Group/whisper-small-ukr-dialects",
    device=device,
)

result = pipe(
    "path/to/audio.wav",
    generate_kwargs={
        "task": "transcribe",
        "language": "ukrainian",
    },
    chunk_length_s=30,
)
print(result["text"])

Using Transformers Directly

python
from transformers import WhisperForConditionalGeneration, WhisperProcessor
import torch

model_id = "KSE-RESEARCH-Group/whisper-small-ukr-dialects"

processor = WhisperProcessor.from_pretrained(model_id)
model = WhisperForConditionalGeneration.from_pretrained(model_id)

# Move to GPU if available
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = model.to(device)

# Process audio (audio_array should be a numpy array at 16kHz)
input_features = processor(
    audio_array, 
    sampling_rate=16000, 
    return_tensors="pt"
).input_features.to(device)

# Generate transcription
predicted_ids = model.generate(input_features)
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]
print(transcription)

Infrastructure

Hardware

ComponentSpecification
GPUNVIDIA GeForce RTX 4090
GPU Memory47.4 GB
GPU Count1
CUDA Compute Capability8.9

Environment

PackageVersion
Python3.12.12
PyTorch2.8.0+cu128
CUDA12.8
Transformers4.57.3
Datasets2.21.0
Evaluate0.4.6

Training Time

MetricValue
Total training time4:45:41.352520
Training started2026-03-02 09:51:00
Training completed2026-03-02 14:36:42

Experiment Details

PropertyValue
Experiment IDwhisper-small-001
WandB Projectukr-dialects-stt
WandB Runwhisper-small-001

Citation

If you use this model, please cite:

bibtex
@misc{KSE-RESEARCH-Group-whisper-small-ukr-dialects,
  author = {KSE-RESEARCH-Group},
  title = {whisper-small - Fine-tuned for Ukrainian ASR},
  year = {2026},
  publisher = {Hugging Face},
  url = {https://huggingface.co/KSE-RESEARCH-Group/whisper-small-ukr-dialects}
}

License

This model is released under the Apache 2.0 license.

Acknowledgements