xifan2333/fcitx5-vinput
Voice input for Fcitx5 — local and cloud ASR, LLM rewriting, cross-distro packages
fcitx5-vinput adds voice input to the Fcitx5 input method framework (the software that handles typing in many Linux desktop environments). Instead of typing, you speak, and the plugin converts your speech into text that gets inserted wherever your cursor is — or modifies text you've already selected.
What it does
Speech-to-text with two options
- Local / offline: Uses bundled sherpa-onnx speech-recognition models, so no internet connection needed.
- Cloud: Connects to cloud speech services (Doubao, Aliyun Bailian, ElevenLabs, or any OpenAI-compatible provider).
You can switch between local and cloud at any time via a command palette (Shift_R then /asr).
Smart post-processing with LLMs
After converting speech to text, it can pass the transcript through a large language model to:
- Fix recognition errors
- Reformat the text
- Translate it
These behaviors are configured as scenes (predefined pipelines for different situations, e.g. "write an email" or "translate this").
Command mode — control by voice
Select any text, hold the Command Key (Control_R), speak an instruction (like "make this more formal"), and release — the LLM does what you asked and replaces the selection. This makes it work like a hands-free editing shortcut.
Two ways to trigger recording
- Tap the Trigger Key (
Alt_R) to start/stop recording. - Hold the Trigger Key for push-to-talk (record only while held).
GUI and CLI
vinput-gui— graphical setup wizard (download models, configure providers).vinput— command-line interface for full control over all options.
Key bindings (all customizable in Fcitx5 config)
| Key | Default | Function |
|---|---|---|
| Trigger Key | Alt_R |
Tap = toggle recording; Hold = push-to-talk |
| Command Key | Control_R |
Hold after selecting text to modify with voice |
| Command Palette Key | Shift_R |
Open unified command palette (/model, /asr, /scene, /proc) |
How you get it
Two package variants exist:
- Full — includes the local sherpa-onnx speech engine (can work fully offline)
- Lite — cloud-only, no local speech engine (smaller footprint)
The project ships prebuilt packages for most major Linux distributions and packaging systems:
- Arch Linux (via the
archlinuxcnrepo or AUR) - Fedora (via COPR)
- Ubuntu 24.04 (via a PPA)
- Ubuntu/Debian (manual
.debdownload) - Nix (flake, with Cachix binary cache)
- Flatpak
- openSUSE/Fedora (
.rpm) - Generic Linux (
.tar.gz)
You can also build from source (requires cmake, fcitx5, pipewire, libcurl, CLI11, Qt6).
Quick start
systemctl --user enable --now vinput-daemon.service
fcitx5 -r
Then open Vinput GUI → Resources → Models, download and activate a model. After that, tapping or holding Alt_R starts voice input.
More details
- Full documentation (ASR setup, scenes & LLM configuration, CLI reference, contributing model registries) lives at the documentation site.
- License: GPL-3.0
- The README also lists contributors and a sponsorship page.
Related
- Project
- Project
- Project
- Project
- Project