fcitx5-vinput  by xifan2333

Voice input for Fcitx5

Created 4 months ago
306 stars

Top 87.4% on SourcePulse

GitHubView on GitHub
Project Summary

Voice input for Fcitx5 — local and cloud ASR, LLM rewriting, cross-distro packages. This project addresses the need for integrated voice input within the Fcitx5 input method framework on Linux. It targets users seeking to enhance productivity through speech-to-text capabilities, offering both offline and cloud-based Automatic Speech Recognition (ASR) and Large Language Model (LLM) powered text manipulation, with broad cross-distribution support.

How It Works

The system integrates with Fcitx5, enabling voice input via configurable trigger modes: tap-to-toggle recording or hold-to-push-to-talk. It supports a flexible ASR pipeline, allowing users to switch between local, offline Sherpa-ONNX models and various cloud providers (e.g., Doubao, Aliyun, ElevenLabs, OpenAI-compatible) at runtime. Post-recognition, LLMs can be employed for error correction, text formatting, and translation, with a command mode facilitating direct text editing via voice instructions.

Quick Start & Requirements

Installation is streamlined across multiple Linux distributions, including Arch (AUR), Fedora (COPR), Ubuntu/Debian (PPA, manual .deb), Nix, and Flatpak. Building from source requires CMake, Fcitx5, PipeWire, libcurl, nlohmann-json, CLI11, and Qt6. Post-installation, the vinput-daemon.service must be enabled and started. Users are required to download and activate ASR models via the provided GUI or CLI. Official documentation is available at: https://xifan2333.github.io/fcitx5-vinput/

Highlighted Details

  • Supports both tap-to-toggle and hold-to-push-to-talk recording modes for user preference.
  • Offers a choice between offline Sherpa-ONNX ASR models and cloud-based services for speech-to-text conversion.
  • Integrates LLM rewriting for error correction, formatting, and translation, with a dedicated command mode for text editing.
  • Provides cross-distribution packages and installation methods, including Arch, Fedora, Ubuntu/Debian, Nix, and Flatpak.

Maintenance & Community

The project features CI workflows for releases and displays download counts and version badges. Specific links to community channels such as Discord or Slack are not explicitly provided in the README.

Licensing & Compatibility

The project is licensed under the GPL-3.0 license. This imposes strong copyleft restrictions, requiring derivative works to also be licensed under GPL-3.0. Compatibility for commercial use or linking with closed-source applications may be restricted due to these terms.

Limitations & Caveats

The README does not explicitly detail known bugs, alpha status, or unsupported platforms. Users should consult the documentation for specific ASR and LLM setup requirements, as these can be complex. The GPL-3.0 license may present compatibility challenges for certain commercial or proprietary integrations.

Health Check
Last Commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
5
Issues (30d)
2
Star History
47 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.