peteonrails/voxtype
Voice-to-text with push-to-talk for Wayland compositors
Voxtype – Local, real‑time voice‑to‑text for Linux
What it is – Voxtype is an open‑source, MIT‑licensed application that lets you dictate text anywhere on a Linux desktop. It captures audio when you hold (or toggle) a hotkey, runs the speech‑to‑text model locally, and injects the resulting text at the cursor position. The core goal is fast, private dictation without any cloud service.
Key capabilities
- Fast CPU inference – Uses Cohere Transcribe (quantised to ~1.5 GB) that runs 9‑11× faster than real‑time on a modern Zen 4 CPU. Other engines (Whisper, Parakeet, Moonshine, SenseVoice, Paraformer, Dolphin, Omnilingual, OpenVINO Whisper) are also supported.
- GPU/accelerator support – Optional Vulkan, CUDA, Metal, ROCm, and Intel OpenVINO/NPU back‑ends give orders‑of‑magnitude speed‑ups for large models.
- Nine interchangeable engines – Switch at runtime; only the active model occupies memory.
- Multilingual coverage – Up to 1 600+ languages via the multilingual ONNX engines; Whisper covers 99 languages.
- Meeting mode – Continuous transcription with speaker attribution and export to Markdown, JSON, SRT or VTT. Can also call a local LLM (e.g., Ollama) to summarise the meeting.
- Native desktop integration – Works with Wayland compositors (Hyprland, Sway, River, GNOME, KDE) and X11 via evdev. Provides a floating waveform OSD, auto‑pauses media players via MPRIS, and falls back to clipboard or simulated typing when needed.
- Privacy‑first – No telemetry, no required cloud backend. All processing stays on the machine unless you explicitly enable a remote Whisper server.
- Configurable hotkey – Default is ScrollLock; can be changed, set to toggle mode, or bound through the compositor.
- Built‑in text processing – Spoken punctuation, per‑user replacement tables, and an optional post‑process pipe to any LLM or shell script.
How to get started
- Install a pre‑built package (AUR, .deb, .rpm, Homebrew) or build from source with Rust/Cargo.
- Install the Wayland typing helper
wtype(or the X11 fallbacksdotool/ydotool). - Run
voxtype setup --downloadto fetch the default Whisper model. - Add a keybinding for
voxtype record start/stop(ortoggle) in your compositor config. - Launch
voxtype; hold the hotkey, speak, release – the transcribed text appears where your cursor is.
Typical commands
voxtype record start/voxtype record stop– control recording from a keybinding.voxtype meeting start --title "Team sync"– begin continuous transcription.voxtype meeting export latest --format markdown– save the meeting.voxtype --engine sensevoice --model large-v3– override the engine/model on the fly.voxtype setup gpu --enable– enable Vulkan GPU acceleration.
Configuration – All settings live in ~/.config/voxtype/config.toml. The file lets you:
- Choose the hotkey, mode (hold vs. toggle), and audio device.
- Pick the transcription engine and model, set language/translation options, and limit CPU threads.
- Define output behaviour (type, clipboard, paste) and notification preferences.
- Enable spoken‑punctuation, custom word replacements, or an external post‑process command (e.g.,
ollama run llama3.2 …).
Installation notes
- Dependencies – Rust toolchain, ALSA development headers, clang, cmake, pkg‑config, and the Wayland typing tool
wtype. GPU back‑ends need the appropriate runtime (Vulkan loader, CUDA toolkit, Metal, ROCm, or OpenVINO). - Packages – AUR (
voxtype,voxtype-bin,voxtype-bin-rc), Debian/Ubuntu.deb, RPM, and Homebrew for macOS (via the Metal backend). - Reproducible builds – Release binaries are signed and produced in a Docker pipeline.
Why it matters Voxtype brings the convenience of dictation to Linux users who previously relied on cloud services or heavyweight GUI tools. By offering multiple on‑device models and optional GPU acceleration, it lets you balance speed, accuracy, and resource usage while keeping every utterance private.
License – MIT (source code freely modifiable and redistributable).
Related
- Project
- Project
- Project
- Project