Models · Aisar-medium
mid-size

Aisar-medium

The mid-size model of the family: 769M parameters. A clear step up in accuracy from small.

WER (orthographic)
17.28%
CER (orthographic)
3.83%
WER (normalized)
12.36%
Checkpoint
≈1.5 GB

Compared to small, the character error rate drops by almost a third (CER 3.83% vs 5.35%): the model handles Chuvash diacritics — ӑ, ӗ, ҫ, ӳ — with visibly more care and stumbles less on long words.

The bottom line on the test set is 17.28% WER (12.36% after normalization) with a checkpoint of about 1.5 GB — a classic middle ground in hardware requirements.

Training

The base model is openai/whisper-medium with 769M parameters. The generation language token is russian — Chuvash is absent from the Whisper vocabulary. Input is 16 kHz mono audio. Accuracy was measured on the Common Voice test set: 1,288 utterances, beam-5.

Why 17.28% rather than 12.36%? Same model, same test set, same decoding (beam-5). 17.28% is the orthographic WER — text compared as-is, with casing and punctuation. 12.36% is the very same run scored after Whisper-style normalization (lowercase, ё→е, punctuation stripped). The entire gap comes from text normalization, not from the data.

Quick start

The model runs in a couple of lines with 🤗 transformers. 30-second chunking lets it transcribe recordings of any length, and beam-5 is the setting behind the numbers above. For long spontaneous audio, uncomment the temperature fallback — it protects against repetition loops on hard segments.

Python · transformers
import torch
from transformers import pipeline

asr = pipeline(
    "automatic-speech-recognition",
    model="SpeechCollector/whisper-chuvash-medium",
    torch_dtype=torch.float16,   # use torch.float32 on CPU
    device="cuda:0",             # or "cpu"
    chunk_length_s=30,           # handles audio longer than 30 s
    stride_length_s=(5, 5),
)

out = asr(
    "speech.wav",  # any sample rate — the pipeline resamples to 16 kHz
    generate_kwargs={
        "language": "russian",   # no Chuvash token in Whisper vocab
        "task": "transcribe",
        "num_beams": 5,          # quality mode; num_beams=1 is ~1.7x faster
        # For long spontaneous audio, add temperature fallback —
        # it tames repetition loops on hard segments:
        # "temperature": (0.0, 0.2, 0.4, 0.6, 0.8, 1.0),
        # "compression_ratio_threshold": 2.4,
        # "logprob_threshold": -1.0,
        # "no_speech_threshold": 0.6,
    },
)
print(out["text"])

Recognition examples

Listen to test-set recordings and compare the outputs of all three models on the Examples page.

HuggingFace · whisper-chuvash-medium

The repository is private for now — it opens together with the weights release; watch the banner at the top.

License: CC BY-NC 4.0 — free for research and other non-commercial use. Commercial use is possible under a separate agreement with the SpeechCollector community — reach out on Telegram. Please do not use the model for surveillance or covert monitoring of individuals.