一个键,两种用法
轻按开始、再轻按结束;或者按住说完松开。停止、取消和提交原文各有独立快捷键,临时改主意不用手忙脚乱。
F8 录音 / Super+Alt 提交与取消为 Hyprland 打造的独立语音输入工具。
按住 F8 说话,松开上屏,文字进入你正在用的输入框。
Linux · Hyprland · Wayland GPL-3.0
不打断你正在做的事。悬浮条不抢键盘焦点,
文字最终一次进入原来的输入框。
轻按开始、再轻按结束;或者按住说完松开。停止、取消和提交原文各有独立快捷键,临时改主意不用手忙脚乱。
F8 录音 / Super+Alt 提交与取消固定 X-ASR 中英流式模型负责实时出字,结束后在本地做一次离线精修。热词、Silero VAD 无语音拒绝和长录音保护都在本机完成。
流式识别 / 离线精修 / 音频不上传选中一段文字,按住说修改指令,先看预览结果。确认时会重新核对选区再替换;指令模式始终需要你确认,不会把口述的指令当成替换文字。
选区修改 / 预览确认 / 原文兜底识别文字是面板主体,状态与操作各有位置。



三张截图来自本机隔离 Hyprland 中运行正式程序的实际录制,输入是公开人声素材经真实 PipeWire 采集,没有修改像素。面板的圆角、字重与行距在此次验收后做过微调,最终外观以顶部待确认截图为准。
默认场景是原文听写,前文辅助关闭。录音不上传,转录和前文不写进持久日志;本地 status 只返回本次转录和实际使用的前文,回到待机就清掉。
启用纠错、整理、翻译或指令模式,才会把本次转录与选中文字发给你配置的 OpenAI 兼容接口;启用前文辅助,还会发送光标前最多 1024 个字符(可设置 1 到 2048)。密钥只从环境变量读取。
剪贴板只处理 UTF-8 文本;选区读取会临时占用剪贴板,恢复完整富文本或图片并不可靠。终端只用于普通听写——终端选区通常不代表可替换的编辑区域。文本处理失败时保留识别原文并等待确认,不会自动插入失败后的替代结果。
本机需要 C++20、CMake、GTK4、gtk4-layer-shell、PipeWire、AT-SPI、libcurl、sherpa-onnx C API、wl-clipboard 和 hyprctl。
Arch 对应软件包:gtk4 gtk4-layer-shell pipewire at-spi2-core curl sherpa-onnx wl-clipboard cmake。
git clone https://github.com/mainliufeng/hyprvoice.git
cd hyprvoice
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j2
ctest --test-dir build --output-on-failure源码在 GitHub 公开,GPL-3.0;上面是克隆后从仓库根目录执行的命令。构建与运行不依赖 Fcitx 开发库、旧语音插件或 vinput-registry,本地模型文件可以复用已经下载好的权重。
用本应用自己的样本清单和独立评分器逐条核对;中文 holdout 在干净音频上的 CER 为 9.23%,20 dB 白噪声 9.49%。这是固定集的回归诊断,不代表自由口述的普遍效果。
PipeWire 录音、Wayland/XWayland/Kitty 上屏、噪声拒绝、轻按与长按、切换窗口保护和未配置模型时的选区保护,全部在隔离 Hyprland 中执行。
连续录音、识别中保留流式文字、检测未确认、真实前文与文本处理,以及 73 秒长录音的实际滚动与上屏。
以上数字来自 2026-10-03 至 2026-10-04 的验收记录,不是持续跑分的看板。尚未覆盖:没有真人对物理麦克风讲话的完整质量评估,也没有和微信、豆包输入法的同录音对比,因此不声称质量已经对标。选区修改目前只有一条真实链路样例,不代表所有指令都可靠。
让键盘休息一会儿。
hyprvoice 在 GitHub