YazSes vs nerd-dictation¶
Short answer: nerd-dictation is the better choice if you want maximum minimalism, the smallest possible resource footprint, and you enjoy configuring behaviour by writing Python. YazSes is the better choice if you want a hold-to-talk key instead of explicit begin/end commands, Whisper-class accuracy instead of VOSK, and the same install to work on macOS and Windows as well as Linux.
Both are free, open source, and run entirely offline. Neither sends your voice anywhere. This page is for people who already run nerd-dictation and are deciding whether switching buys them anything.
At a glance¶
| nerd-dictation | YazSes | |
|---|---|---|
| Licence | GPLv3 | Apache-2.0 |
| Recognition engine | VOSK | faster-whisper (CPU int8) |
| Activation | Explicit begin / end commands | Hold a key, speak, release |
| Background process | None by design | A daemon (yazses start) |
| Platforms | Linux only | Linux, macOS, Windows |
| Customisation | Python string operations | TOML config + personal vocabulary |
| Footprint | Very small VOSK models | Larger Whisper models |
The difference that actually changes how it feels¶
nerd-dictation is started and stopped by running commands. You bind nerd-dictation begin to one shortcut and nerd-dictation end to another, or wrap both in a script. It is explicit, scriptable, and completely predictable.
YazSes is hold-to-talk: you hold one key for as long as you are speaking and release it when you are done. Nothing is listening when the key is up.
The practical consequence is what happens when you pause mid-sentence. With a begin/end model, a pause is just silence inside an open recording session. With hold-to-talk, the key is still held, so a pause is still your turn — silence is thinking time rather than a signal to stop. Which of these you prefer is genuinely a matter of taste, and it is the main thing to try before switching.
Accuracy: VOSK versus Whisper¶
This is the clearest technical difference. nerd-dictation uses the VOSK API with famously small models — that is what makes it start instantly and use very little memory. YazSes uses faster-whisper, which is more accurate on natural speech, punctuation, and unusual vocabulary, at the cost of a larger model download and more CPU per utterance.
If VOSK's accuracy is already good enough for what you dictate, that is a real argument for staying — you are paying nothing for it. The accuracy gap is most visible on proper nouns, technical terms, and long unbroken sentences.
YazSes targets CPU int8 deliberately so it runs on modest hardware. If you have a strong GPU and want to use it, neither of these is the right tool — a whisper.cpp-based project will transcribe faster.
Wayland¶
Both projects have to solve the same problem: Wayland deliberately prevents one application from synthesising input into another, which breaks the xdotool approach that worked on X11.
YazSes probes the session at runtime and selects a working injection backend — ydotool, wtype, xdotool, or clipboard paste — rather than assuming one. yazses doctor reports which backend it selected and whether its tools are installed; yazses verify goes further and runs the real chain end to end, naming the first link that is actually broken. See voice dictation on Wayland for the details.
What YazSes adds beyond dictation¶
These are the things that are simply not in nerd-dictation's scope, and they are the honest reason to switch if any of them matter to you:
- Voice commands — spoken phrases mapped to real key sequences by a regex grammar.
- Personal vocabulary —
yazses vocab addteaches it words it keeps mis-hearing. - File transcription —
yazses transcribe <file>turns an existing recording into text. - Meeting capture — hands-free whole-meeting recording with speaker labels. Off by default, and the speaker labels need an optional extra plus a one-time ~45 MB model download:
yazses features enable meeting. - Accessibility work — VAD calibration, dysfluency-friendly filtering, alternative activation hardware.
- macOS and Windows — the same configuration, on all three systems.
If you want none of these, that is a legitimate reason to stay on nerd-dictation. A smaller tool that does one thing is not a worse tool.
Migrating from nerd-dictation¶
Nothing here removes nerd-dictation — the two can be installed side by side while you decide, as long as you do not bind them to the same key.
-
Install.
-
Check the three things that actually break. Microphone capture, keyboard access, and text injection:
Two Linux-specific gotchas it will catch:
libportaudio2is required for microphone capture and is not pulled in by pipx, and reading the keyboard needs membership of theinputgroup — aftersudo usermod -aG input $USERyou must log out and back in. -
Calibrate to your voice and room — roughly thirty seconds. This replaces nothing in nerd-dictation; there is no equivalent step:
-
Bring your vocabulary across. If you customised nerd-dictation's output with Python string replacements for names or jargon, the equivalent is the personal dictionary:
-
Pick your key. nerd-dictation users are used to binding two shortcuts; here you bind one and hold it:
-
Start it.
If dictation produces nothing, the usual cause is that your speech is falling below the silence gate. yazses mic-level --set measures your actual microphone level and writes a matching threshold.
When to stay with nerd-dictation¶
- You want no background process at all. YazSes runs a daemon; that is a real architectural difference, not a detail.
- Your machine is old or memory-constrained enough that VOSK's small models are the point.
- You genuinely prefer configuring behaviour in Python to editing TOML.
- You only ever use Linux, and none of the extras above interest you.