Skip to content
Saco Song edited this page Jul 24, 2026 · 8 revisions

Voice Input Wiki

简体中文

Voice Input is a resident, agent-aware dictation service for Omarchy, Hyprland, and Wayland. It combines Qwen realtime ASR, an optional full-audio final pass, conservative LLM cleanup, Pi/Codex terminology context, and a click-through Quickshell HUD.

This page is an index. For the short project introduction, see the repository README.

Start here

Goal Page
Install from a fresh clone Installation
Understand every TOML option Configuration
See the capture, ASR, refinement, and output pipeline Architecture
Enable focused Pi/Codex terminology context Agent Context
Add Hyprland, Quickshell, and Waybar integration Desktop Integration
Review what leaves the machine Security and Privacy
Diagnose a failure Troubleshooting
Build, test, package, or contribute Development

Supported operating model

Voice Input is currently designed around a Linux graphical user session with Hyprland and Wayland. The standard installation uses two systemd user services:

  • voice-input.service runs the Rust daemon.
  • voice-input-hud.service runs the Quickshell HUD.

The public configuration starts in local-ASR mode and points explicitly to /usr/bin/voxtype. Alibaba Qwen realtime ASR, Qwen full-audio final ASR, LLM refinement, agent context, and microphone pre-roll are opt-in.

Everyday commands

voice-input record toggle
voice-input record cancel
voice-input status
voice-input status --follow --format json --extended
voice-input settings
voice-input setup model
voice-input llm test

Service checks:

systemctl --user status voice-input.service voice-input-hud.service
journalctl --user -u voice-input.service -u voice-input-hud.service -b

Important behavior at a glance

  • Qwen realtime ASR supplies partial and final text; Server VAD also controls speech activity.
  • The optional final pass uploads the complete temporary WAV to the configured Alibaba compatible endpoint and replaces realtime text when successful.
  • LLM refinement fails open to ASR text. Its contextual attempt and any transcript-only retry share one budget: 5 seconds by default and never more than 5 seconds.
  • Focused Pi/Codex context is optional, terminology-only, redacted, validated, and capped.
  • Text over 120 characters uses paste automatically. XWayland also prefers paste by default.
  • The Quickshell HUD reads status from state.json and waveform frames from a separate Unix socket, so visual updates do not define ASR packet timing.

Project boundaries

Voice Input is an independent community project. It is not affiliated with or endorsed by Omarchy, Alibaba, OpenAI, OpenRouter, Pi, Codex, or Voxtype.

Next: Installation · Architecture · Troubleshooting

Clone this wiki locally