Skip to content

Usage

uv run easyspeak

uv manages the environment for you. If you installed into a plain virtual environment instead, activate it each time you open a new terminal and run the script directly:

source ~/easyspeak-venv/bin/activate
easyspeak

Say "Hey Jarvis" followed by a command. After a command that gives no spoken reply (such as volume changes), EasySpeak keeps listening for a few seconds so you can chain commands — say "louder", "louder", "louder" without repeating the wake word each time.

Command-line options

Flag Default Effect
-v, --verbose Show debug output
-q, --quiet Show only warnings and errors
--configure [ITEM ...] extension service Set up the listed integrations and exit
--preview ITEM Print the file content that would be configured and exit

For --configure/--preview, each ITEM is one of extension, service, autostart, or desktop. Verbosity can also be set with the EASYSPEAK_LOG_LEVEL environment variable (e.g. DEBUG, INFO, WARNING), but the command-line flags take precedence.

See core.cli and core.log for the underlying argument parsing and logging setup.

Configuration

Behavior is tuned through EASYSPEAK_* environment variables, grouped below by the module that reads each (linked to its API reference).

core.config

Variable Default Effect
EASYSPEAK_HOTKEY ctrl+shift Keys held to dictate without the wake word
EASYSPEAK_OFFLINE strict Stay offline; relaxed downloads models
EASYSPEAK_PIPER_BIN piper Piper TTS binary
EASYSPEAK_PIPER_MODEL bundled Amy voice Piper voice .onnx for speech output
EASYSPEAK_SOUNDS_DIR /usr/share/sounds/freedesktop/stereo Directory of the wake chime and error bell
EASYSPEAK_WHISPER_COMPUTE_TYPE int8 CTranslate2 compute type
EASYSPEAK_WHISPER_CPU_THREADS 0 CPU threads for transcription (0 = auto)
EASYSPEAK_WHISPER_MODEL base.en faster-whisper model for transcription

EASYSPEAK_HOTKEY takes the ctrl/shift/alt/super aliases or raw evdev key names joined with + (e.g. ctrl+space); set it to empty, off, or none to turn it off, and an unrecognized key disables it too. See Packaging for the device access it needs.

core.log

Variable Default Effect
EASYSPEAK_LOG_LEVEL INFO Logging level when no -v/-q flag is given

plugins.dictation

Variable Default Effect
EASYSPEAK_ATSPI_PYTHON python3 Interpreter running the dictation AT-SPI helper