Speech models
The Whisper models Sotto can download, how to choose one, and how GPU backends affect speed.
Sotto needs a speech model installed before it can do anything. Download one from Settings → Model.
The catalogue
| Model | Size | Languages |
|---|---|---|
| Tiny | 78 MB | Multilingual |
| Tiny (English-only) | 78 MB | English |
| Base | 148 MB | Multilingual |
| Base (English-only) | 148 MB | English |
| Small | 488 MB | Multilingual |
| Small (English-only) | 488 MB | English |
| Medium | 1.5 GB | Multilingual |
| Medium (English-only) | 1.5 GB | English |
| Large v3 Turbo ⭐ | 1.6 GB | Multilingual |
| Large v3 | 3.1 GB | Multilingual |
Which one to pick
You have a discrete GPU
Large v3 Turbo. Near-Large accuracy at a fraction of the decode cost — the recommended default, and the one Sotto marks as such.
You are on integrated graphics or CPU
Small, or Small (English-only) if you only dictate in English. Noticeably lighter without falling off a cliff in accuracy.
You are very short on disk or RAM
Base. Tiny exists, but its accuracy drops far enough that you will spend the time you saved on corrections.
You want the best possible accuracy
Large v3. Twice the disk of Turbo and slower to decode, for a modest accuracy gain. Rarely the right trade for live dictation.
English-only variants
For the same size, an English-only model is somewhat more accurate on English — the capacity that would have gone to other languages goes to English instead. Choose one if you never dictate in anything else.
Downloading
Models come from the official whisper.cpp model repository. Sotto shows progress, and:
- Downloads into a temporary file and only puts the model in place once it is complete, so an interrupted download never leaves a half-model that fails mysteriously.
- Verifies the file is genuinely a model before accepting it.
Installed models are listed with their size and can be removed to reclaim disk. You can install several and switch between them.
Language
Settings → Model → Language is auto by default, which lets the model detect what you are speaking. Set it explicitly if you always dictate in one language — detection occasionally guesses wrong on a short first utterance, and pinning it removes that failure mode.
An English-only model ignores this setting.
Speed and the GPU backend
Model size is one factor; the backend it runs on is the other, and it is the bigger one.
| Backend | Hardware |
|---|---|
| ROCm | AMD |
| Vulkan | Any modern GPU — often within a few percent of ROCm on AMD |
| CUDA | NVIDIA |
| CPU | Anything. Substantially slower |
The backend is fixed when Sotto is compiled, not chosen at runtime, so switching means building
from source. The bottom of the Settings window names the backend actually in use — if it says
cpu, that is your bottleneck, not your model choice.
See Installing.
What to expect
With Large v3 Turbo on a discrete GPU:
- Live transcript updating roughly once a second while you speak
- An utterance settling about 0.7 seconds after you stop
- The whole result formatted and inserted a fraction of a second after you end dictation
On CPU, all of those stretch out — enough that live feedback stops feeling live.
Advanced tuning
A handful of thresholds have no interface — how long a pause ends an utterance, how often the live
transcript re-decodes, the minimum length of speech worth transcribing, and the hard cap on a
single utterance. They are deliberately not exposed, because the defaults are right for almost
everyone, but they can be edited in Sotto’s configuration file at ~/.config/sotto/sotto.conf
under the tuning section.