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 archlinuxcn repo or AUR)
  • Fedora (via COPR)
  • Ubuntu 24.04 (via a PPA)
  • Ubuntu/Debian (manual .deb download)
  • 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