Yo-Voice (Ёхо) is local push-to-talk dictation for Linux. Press the hotkey, speak, pause — the transcript is pasted into whatever text field has focus.
It is not a cloud product. Microphone audio and transcripts stay on the computer that runs it.
- Types what you say into the currently focused text field (browser, editor, chat, terminal).
- Runs on your machine. Speech is recognized locally with
faster-whisper(large-v3-turbo). Nothing is uploaded to a speech API. - Speaks Russian. Punctuation and capitalization are cleaned up after recognition.
- Shows a small cat overlay while listening: Жду (waiting / loading), Можно говорить (about one second after the mic is live), then Слушаю (listening). The waveform moves only while the microphone is actually capturing.
- Lets you pick the microphone by right-clicking the cat.
- Starts this program at login, so the hotkey is ready without opening a window.
Yo-Voice 1.0.0 does not:
- Run on Windows or macOS
- Run on a Wayland-only session (it needs X11 for the global hotkey and paste)
- Send audio or text to the cloud, or offer an account / sync
- Stream words into the cursor while you are still talking (it pastes after a pause, or when you press the hotkey again)
- Keep a history of recordings or WAV files
- Switch languages (recognition is locked to Russian)
- Replace a full accessibility on-screen keyboard or a system-wide IME
Developed and tested on Linux Mint 22.3, Cinnamon, X11. Other X11 desktops may work; they are not the supported target.
- Your speech never leaves this computer. Recognition runs locally.
- Transcripts are not uploaded. They are pasted into the focused app through the clipboard, then the previous clipboard contents are restored.
- Config lives in
~/.config/yo-voice/. Logs live in~/.cache/yo-voice/. - The only expected network use is install time (Python packages) and the first launch, which downloads Whisper model weights (~1.6 GB) into a local cache. That download is model files, not your microphone.
Dictation is bound to the key immediately left of 1:
| Keyboard layout | Key |
|---|---|
| Russian (ЙЦУКЕН) | ё |
| US / UK | ` (grave / tilde key, unshifted) |
X11 keycode 49. Holding Shift+ё still types Ё — only the unshifted key is grabbed.
If another app already owns that key, the overlay says клавиша ё занята.
- Linux with an X11 session (Cinnamon on Linux Mint 22.3 is the reference)
- Python 3.10+
- A working microphone
- NVIDIA GPU strongly recommended (tested on RTX 4070 Ti). CPU fallback exists and is slow.
- Disk: a few hundred MB for the app, plus ~1.6 GB for the Whisper model on first run
sudo apt update
sudo apt install -y \
git curl \
python3 python3-venv python3-pip \
python3-gi python3-gi-cairo python3-cairo python3-xlib \
gir1.2-gtk-3.0 libportaudio2Install your NVIDIA driver from Driver Manager if you want GPU recognition.
git clone https://github.com/iammedved/Yo-Voice.git
cd Yo-Voicechmod +x scripts/install.sh
./scripts/install.shThe installer:
- Creates
.venv(with system GTK / X11 bindings) - Installs Python dependencies, including CUDA libraries when available
- Puts a Ёхо launcher on the Desktop and in the application menu
- Enables autostart of this program (
~/.config/autostart/yo-voice.desktop, 3 second delay) - Symlinks
yo-voiceinto~/.local/bin/
- If the Desktop icon asks for permission, choose Allow Launching.
- Click Ёхо, or run
yo-voice(add~/.local/bintoPATHif needed). - Press ё / `. The cat appears. The first time, it downloads the model and the overlay may show a loading status for a minute.
- Speak Russian. When you pause, text is pasted at the caret. Press the hotkey again to stop.
Right-click the cat to choose the microphone (Авто = automatic).
You do not need to open the app by hand.
- After you log into Cinnamon, this program starts by itself.
- Press ё / ` to start or stop listening.
- The Desktop / menu icon toggles listening the same way.
- First-run model download happens only once; later starts are local and fast on GPU.
Useful commands:
yo-voice # toggle listening (starts this program if needed)
yo-voice status # idle | listening
yo-voice start # start listening
yo-voice stop # stop and paste
yo-voice settings # microphone window
yo-voice quit # quit this program
yo-voice demo # overlay demo without dictationRe-run ./scripts/install.sh after a git pull to refresh the venv and launchers.
- Hotkey (or the launcher) tells this program to listen.
- Overlay appears without stealing keyboard focus, so the caret stays in your app.
- Silero VAD keeps silence out of Whisper; only speech is transcribed.
- On a pause, the utterance is recognized locally and pasted with Ctrl+V (Ctrl+Shift+V in terminals).
- Press the hotkey again to flush the last bit and hide the cat.
| Symptom | What to try |
|---|---|
| Waves do not move | Unmute the headset mic. Right-click the cat and pick the real device, not a monitor/loopback. |
подключите микрофон |
No usable capture device. Plug in a mic and pick it in the menu. |
клавиша ё занята |
Another program grabbed keycode 49. Close it or change that grab. |
| Icon does nothing | Desktop files on Mint often need Allow Launching. Or run yo-voice in a terminal. |
| First start is slow | Model download / GPU load. Later starts should not download again. |
| GPU unused | NVIDIA driver + the nvidia-cublas-cu12 / nvidia-cudnn-cu12 wheels from install.sh. CPU still works, slowly. |
| Nothing pastes | Click the target field first. The overlay never takes focus on purpose. |
This tree is 1.0.0. See CHANGELOG.md. Git tags follow semver (v1.0.0).
MIT. Third-party models (faster-whisper / Whisper weights, Silero VAD) keep their own licenses.
