Downloads · 30 days
27
25% of all-time downloads
yuriyvnv/whisper-large-v3-estonian
whisper-large-v3-estonian is a automatic speech recognition model from yuriyvnv. Use it when you need speech turned into text. It is set up for transformers. The card lists the license as apache-2.0.
Fine-tuned OpenAI Whisper-large-v3 for Estonian automatic speech recognition, augmented with TTS-generated synthetic data.
Downloads · 30 days
27
25% of all-time downloads
All-time downloads
106
Public
Parameters
1.5B
6.2 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors6.2 GB · 100%
From the Hugging Face model README
Fine-tuned OpenAI Whisper-large-v3 for Estonian automatic speech recognition, augmented with TTS-generated synthetic data.
This model is part of the paper Synthetic speech augmentation for low-resource Estonian and Slovenian ASR: Comparing Parakeet-TDT and Whisper, published in Machine Learning with Applications 26 (2026) 101043.
openai/whisper-large-v3| Test Set | WER | CER |
|---|---|---|
| CommonVoice 17 Test | 26.46 | 6.24 |
| CommonVoice 17 Val | 25.25 | 5.63 |
| FLEURS Test | 36.56 | 7.07 |
| Test Set | WER | CER |
|---|---|---|
| CommonVoice 17 Test | 24.00 | 5.69 |
| CommonVoice 17 Val | 23.11 | 5.15 |
| FLEURS Test | 13.89 | 3.20 |
| Comparison | CV17 Test (WER) | FLEURS Test (WER) |
|---|---|---|
| vs. Zero-shot | -7.94 pp | -4.16 pp |
| vs. CV-only fine-tuning | -2.92 pp | -1.95 pp |
All improvements are statistically significant (paired bootstrap, p < 0.001, n = 100,000).
from transformers import WhisperForConditionalGeneration, WhisperProcessor
import torch
# Load model and processor
model = WhisperForConditionalGeneration.from_pretrained("yuriyvnv/whisper-large-v3-estonian")
processor = WhisperProcessor.from_pretrained("yuriyvnv/whisper-large-v3-estonian")
# Load audio (16kHz mono)
import librosa
audio, sr = librosa.load("audio.wav", sr=16000)
# Transcribe
input_features = processor(audio, sampling_rate=16000, return_tensors="pt").input_features
with torch.no_grad():
predicted_ids = model.generate(input_features, language="et", task="transcribe")
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]
print(transcription)
The synthetic training data was generated using a three-stage pipeline:
Dataset: yuriyvnv/synthetic_asr_et_sl
@article{PEREZHOHIN2026101043,
title = {Synthetic speech augmentation for low-resource Estonian and Slovenian ASR: Comparing Parakeet-TDT and Whisper},
journal = {Machine Learning with Applications},
volume = {26},
pages = {101043},
year = {2026},
issn = {2666-8270},
doi = {10.1016/j.mlwa.2026.101043},
url = {https://www.sciencedirect.com/science/article/pii/S2666827026002082},
author = {Yuriy Perezhohin and Mauro Castelli and Aleš Popovič},
}