Real-time voice dictation for your Linux workflow, in any application
Transform your voice into text instantly in any application. Built with Python and Vosk, completely open-source and privacy-respecting — nothing you say ever leaves your machine.
v0.5.4-beta · en / fr / de / es · 100% offline · RTF < 1
vosk-cli-dictation is not a speech recognition engine — it is a command-line dictation layer built on top of Vosk, an open-source offline speech recognition toolkit. Vosk does the listening; this project handles global hotkeys, voice commands, punctuation, per-language typography, and typing the result into whatever application has focus.
Runs on modest hardware
vosk-cli-dictation was measured offline, with no accelerator, on a Raspberry Pi 4, a Raspberry Pi 5, a 2014 AMD A4-6210 laptop and desktop x86 machines. On every one of them transcription keeps pace with speech — the real-time factor stays below 1 even on the slowest, so live dictation never falls behind.
- Around 300 MB of RAM in use, depending on the language model — roughly 210 MB for Spanish, 335–360 MB for French.
- Background listening drops to 0 % CPU while asleep: the audio device is released and nothing runs.
- With the restricted wake-word grammar, background listening on a Raspberry Pi 4 uses a fraction of one CPU core, and the wake word is picked up in well under a second.
| Machine | RAM while dictating | Real-time factor |
|---|---|---|
| Raspberry Pi 4 (8 GB) | 256 MB | 0.28 |
| Raspberry Pi 5 | 261 MB | 0.11 |
| AMD A4-6210 laptop (2014) | 282 MB | 0.33 |
| Recent x86 desktop (Ryzen 9 3950X) | 286 MB | 0.07 |
Measured cold, machines at rest, with the English model (vosk-model-small-en-us-0.15) — the model used throughout this page, from the memory figures above to the table. Every language page reports its own model's numbers, so a gap between two languages is a difference between models, not an inconsistency. The real-time factor is processing time divided by audio length: below 1, transcription runs faster than speech. The per-machine, per-language breakdown is in the PDF manuals.
See it in action
The same text dictated into a terminal, KWrite, LibreOffice, then an online translator — the intro is in English, the rest in French.
Key features
Real-time transcription
Your voice becomes text instantly in any active application on your system.
Multi-language support
English, French, German and Spanish, each with its own Vosk model. Voice commands, messages and typography specific to each language.
Total control
Global hotkeys, voice commands, and manual commands for a tailored experience.
Advanced configuration
Customise everything via config.yaml: theme, hotkeys, recognition aliases, and more.
Complete punctuation
Dictate every punctuation mark with natural voice commands, in each language.
100% offline
No data leaves your machine. Built on Vosk, an open-source recognition engine.
Adaptive interface
Same tool, in your language
------------------------------------------------------------------
- Say 'start dictation' or press [Alt+H] to start/stop.
- Say 'stop dictation', press [Alt+S], or run 'vosk-cli-dictation
--finalize' to stop and copy.
- Hotkeys reach the focused window and miss native-Wayland windows; use
--finalize.
Manual commands:
- '/cancel', '/delete-word', '/nl'
Punctuation commands:
close bracket (]) close parenthesis ())
close quote (") colon (:)
comma (,) dash (–)
ellipsis (…) exclamation mark (!)
new line (\n) new paragraph (\n\n)
open bracket ([) open parenthesis (()
open quote (") period (.)
question mark (?) semicolon (;)
------------------------------------------------------------------
Press Ctrl+C to exit the program.
------------------------------------------------------------------
- Dites « active dictée » ou appuyez sur [Alt+H] pour démarrer/arrêter.
- Dites « stop dictée », appuyez sur [Alt+S], ou lancez «
vosk-cli-dictation --finalize » pour arrêter et copier.
- Les raccourcis atteignent la fenêtre active et manquent les fenêtres
Wayland natives ; utilisez --finalize.
Commandes manuelles :
- '/cancel', '/delete-word', '/nl'
Commandes de ponctuation :
deux points (:) fermez la parenthèse ())
fermez le crochet (]) fermez les guillemets (»)
nouveau paragraphe (\n\n) nouvelle ligne (\n)
ouvrez la parenthèse (() ouvrez le crochet ([)
ouvrez les guillemets (« ) point (.)
point d'exclamation (!) point d'interrogation (?)
point virgule (;) point-virgule (;)
tiret (–) trois petits points (…)
virgule (,) à la ligne (\n)
------------------------------------------------------------------
Appuyez sur Ctrl+C pour quitter le programme.
Everything is configuration
Hotkeys, theme, voice commands, homophone corrections — one readable YAML file
hotkeys:
toggle_recording:
pynput_keys: ["alt_l", "h"]
display_name: "[Alt+H]"
finalize_session:
pynput_keys: ["alt_l", "s"]
display_name: "[Alt+S]"
theme:
ready_message: "GREEN"
info: "BLUE"
warning: "YELLOW"
error: "RED"
Theme and shortcuts
Set the interface colours and define your own global keyboard shortcuts for every action.
- Customisable colour per message type
- Configurable global hotkeys
- Your own start/stop voice commands, per language
language_settings:
fr:
recognition_aliases:
"de points": "deux points"
"tirer": "tiret"
"tirait": "tiret"
custom_vocabulary:
"vosk": "Vosk"
"gemini": "Gemini"
"ia": "IA"
Advanced settings
Correct a mis-heard word with recognition_aliases, or force the capitalisation of a name Vosk recognised correctly but lower-cased with custom_vocabulary — two separate tables for two different problems.
- Alias table to fix frequent misrecognitions
- Per-language voice command customisation
- Extensible punctuation dictionary
Install it
On Debian, Fedora, openSUSE or Arch Linux, one command and one model. The full guide also covers installing from source, language models and desktop shortcuts.
Install the package
Get your distribution's package from the downloads page, then:
# Debian 12+, Ubuntu 24.04+, Mint 22+...
sudo apt install ./vosk-cli-dictation_0.5.4~beta_all.deb
# Fedora
sudo dnf install ./vosk-cli-dictation-0.5.4~beta-1.fc42.noarch.rpm
# openSUSE Leap
sudo zypper install ./vosk-cli-dictation-0.5.4~beta-1.leap156.noarch.rpm
# Arch Linux
sudo pacman -U ./vosk-cli-dictation-0.5.4_beta-1-any.pkg.tar.zstOn first configure, the package builds a private virtual environment and installs the Vosk engine into it (network access needed at that point).
Download a model
Fetch the small model for a language (verified by SHA256):
vosk-cli-dictation --download-model en # also: fr, de, esWith no model present, the tool offers the download on first run.
Dictate
Start a session in the language you want:
vosk-cli-dictation -l enFrom source (for development)
To work on the code, run it from a git clone:
git clone https://github.com/RonanDavalan/vosk-cli-dictation.git
cd vosk-cli-dictation
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python3 src/main.py -l en