GNOME Shell extension that reads selected text aloud using OmniVoice for high-quality text-to-speech with voice cloning, voice design, or automatic mode.
- GNOME Shell 49 or 50
- Python 3 with OmniVoice installed in a virtualenv
- NVIDIA GPU with CUDA (or Apple Silicon with MPS, or Intel Arc with XPU)
paplay(included with PulseAudio/PipeWire)
git clone https://github.com/k2-fsa/OmniVoice.git && cd OmniVoice && uv sync && uv pip install -e .git clone https://github.com/wfpaisa/plane-tts.git
cd plane-tts
bun run build
bash install.shLog out and back in (required on Wayland), then:
gnome-extensions enable plane-tts@wfelipe.comgnome-extensions prefs plane-tts@wfelipe.comSet the Python path to your OmniVoice virtualenv in the Model tab (e.g. /home/you/OmniVoice/.venv/bin/python).
- Select text in any application
- Press Super+Shift+T (default shortcut) or click the panel icon → Read Selection
- The panel icon changes color to indicate status:
- Yellow: generating audio
- Green: playing
- Red: error (resets after 3 seconds)
- To stop playback: click the panel icon → Stop
- Voice: choose between clone (from audio sample), design (from text description), or auto mode
- Parameters: inference steps, speed, duration, guidance scale, processing toggles
- Model: Python path, installation commands, documentation link
- Shortcut: customize the keyboard shortcut
See docs/readme-dev.md for build commands, project structure, translations, and debugging instructions.
# Install the extension (symlink + compile schemas)
bun run install:extension
# Enable the extension in GNOME Shell
bun run enable
# Disable the extension
bun run disable
# Open the preferences panel
bun run prefs
# View all GNOME Shell logs in real time
bun run logs
# View only Plane TTS logs
bun run logs:extension
# Open a nested GNOME Shell session for testing
bun run wayland:sessionMIT



