Models · Aisar-small
light

Aisar-small

The easiest way to try Chuvash speech recognition: 244M parameters and a checkpoint under half a gigabyte — it runs on practically anything.

WER (orthographic)
20.3%
CER (orthographic)
5.35%
WER (normalized)
15.4%
Checkpoint
≈0.49 GB

The model downloads in a minute, fits on almost any GPU, and runs even on a CPU. If you just want to see Chuvash speech turn into text, start here.

On the test set it scores 20.3% WER and 5.35% CER (15.4% after normalization). That is usually enough for rough transcription, subtitles, and prototypes — and when you need more accuracy, switch to turbo: the code stays the same, only the model name changes.

Training

The base model is openai/whisper-small with 244M 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 20.3% rather than 15.4%? Same model, same test set, same decoding (beam-5). 20.3% is the orthographic WER — text compared as-is, with casing and punctuation. 15.4% 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-small",
    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-small

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.