Skip to content

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 vocabularyyazses vocab add teaches it words it keeps mis-hearing.
  • File transcriptionyazses 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.

  1. Install.

    pipx install yazses     # or: sudo snap install yazses
    
  2. Check the three things that actually break. Microphone capture, keyboard access, and text injection:

    yazses doctor
    

    Two Linux-specific gotchas it will catch: libportaudio2 is required for microphone capture and is not pulled in by pipx, and reading the keyboard needs membership of the input group — after sudo usermod -aG input $USER you must log out and back in.

  3. Calibrate to your voice and room — roughly thirty seconds. This replaces nothing in nerd-dictation; there is no equivalent step:

    yazses enroll
    
  4. 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:

    yazses vocab add Kubernetes
    
  5. Pick your key. nerd-dictation users are used to binding two shortcuts; here you bind one and hold it:

    yazses hotkey set <key>
    
  6. Start it.

    yazses start
    

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.