Read selected text from your screen out loud with one keyboard shortcut.
Designed for people who want reading support (for example dyslexia, eye strain, fatigue, ADHD, or just listening instead of reading).
- Highlight text and trigger a shortcut to hear it.
- Works on Linux, macOS, and Windows.
- Tray/menu controls on Linux/macOS (pause, stop, settings).
- Settings window for speed, volume, and voice.
- Auto-downloads a default voice if none is installed (
en_US-lessac-medium).
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install -y python3 python3-venv python3-pip mpv wl-clipboard xsel xclipmacOS:
brew install python mpvWindows (PowerShell):
winget install Python.Python.3.12
winget install mpv.mpvLinux/macOS:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install piper-tts onnxruntime langdetect pystray pillowWindows:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install piper-tts onnxruntime langdetectLinux:
./scripts/run-linux.shmacOS:
./scripts/run-macos.shWindows:
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\run-windows.ps1Quick test:
./scripts/run-linux.sh --test
./scripts/run-macos.sh --test.\scripts\run-windows.cmd --test- Open
Settings -> Keyboard -> Keyboard Shortcuts -> Custom Shortcuts. - Add a shortcut:
- Name:
Speak Selection - Command: full path to
scripts/run-linux.sh
- Name:
- Set your key combo (example:
Ctrl+Alt+S).
- Open
Automator-> create aQuick Action. - Set:
- Workflow receives:
no input - In:
any application
- Workflow receives:
- Add
Run Shell Scriptwith:
"/absolute/path/to/speak-selection/scripts/run-macos.sh"- Save as
Speak Selection. - Set the shortcut in
System Settings -> Keyboard -> Keyboard Shortcuts -> Services.
- Create a shortcut to
scripts\run-windows.cmd. - Open shortcut
Properties. - Set
Shortcut key(example:Ctrl+Alt+S).
- Select text anywhere.
- Press your shortcut to read it.
- On Linux/macOS, use tray icon ->
Open Settingsto change voice/speed/volume. - Settings save automatically.
Revert Defaultsreturns tospeed=1.00,volume=100%.
- Voice samples: https://rhasspy.github.io/piper-samples/
- Voice downloads: https://huggingface.co/rhasspy/piper-voices
- The app auto-downloads
en_US-lessac-mediumif no voice is installed. - Install additional voices for better multi-language support.
python speak-selection.py --settings-ui
python speak-selection.py --pause
python speak-selection.py --stop
python speak-selection.py --read-page "https://example.com/article"
python speak-selection.py --list-voices- Tray click does nothing on Linux: open tray menu and choose
Open Settings. - Need a clean restart:
pkill -f "speak-selection.py --settings-ui" || true
pkill -f "speak-selection.py --tray" || true
./scripts/run-linux.sh