(just) warn on bad phrase definitions
trim space of more arguments
Numen is voice control for computing without a keyboard. It works system-wide on Linux and the speech recognition runs locally.
There's a short demonstration on: https://numenvoice.org
go is required. (It's sometimes packaged as
The speech recognition library and an English model (about 40MB) can be installed with:
sudo ./install-vosk.sh && sudo ./install-model.sh
The dotool command which simulates the input, can be installed with:
numen itself can be installed with:
dotool requires permission to
/dev/uinput to create the virtual input
devices, and a udev rule grants this to users in group input.
You could try:
echo type hello | dotool
and if need be, you can run:
sudo groupadd -f input sudo usermod -a -G input $USER
and re-login and trigger the udev rule or just reboot.
Once you've got a microphone, you can run it with:
There shouldn't be any output but you should be able to type hey by saying "hoof each yank". You can also try transcribing a sentence after saying "scribe", and terminate it by pressing Ctrl+c (a.k.a "troy cap").
If nothing happened, check it's using the right audio device with:
timeout 5 numen --verbose --audiolog=me.wav aplay me.wav
and specify a
--list-mics if not.
Now you can have a go in your text editor, the default phrases are in the
I use numen for all my computing and stick to keyboard-based programs like Neovim and qutebrowser, my text editor and browser. I also use a minimal desktop environment I wrote called Tiles that doesn't require a pointer device.
dotool will type gobbledygook if your environment has assigned it a different
keyboard layout than it's simulating keycodes for. You can match them up by
setting the environment variables
For example, if you use the French
You can send questions, thoughts or patches by composing an email to ~email@example.com.
You're also welcome to join our Matrix chat at #numen:matrix.org.
AGPLv3 only, see LICENSE.
Copyright (c) 2022-2023 John Gebbie