Voltip:Rust + Tauri 2 写的开源语音输入,记一下用到的 crate 和几处取舍

Voltip:Rust + Tauri 2 写的开源语音输入,记一下用到的 crate 和几处取舍

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

Voltip 是一款开源语音输入工具:按住快捷键说话,松开后自动去除口头禅、保留最终说法并插入光标处。支持 Windows、macOS、Linux、Android,可本地离线识别或接入 OpenAI 兼容接口。项目用 Rust 实现音频处理、识别、加密传输与文字插入,手机可作电脑麦克风,设备间经中继仅传输密文。目前无 iOS 版,Wayland 下无全局快捷键,Windows 安装包未签名。

🔎

延伸解读

跨平台语音输入的工程取舍

Voltip 用 Rust 统一实现音频、识别、加密和文字插入,桌面与 Android 共用 React 界面,依赖方向严格分层。这种设计让核心逻辑可复用,但平台差异仍需单独处理:Windows 包在 Linux 上交叉编译,macOS 开 Metal,Windows/Linux 发布包开 Vulkan。对开发者而言,这意味着跨平台并非零成本,需为每个平台维护构建配置和特性开关。

本地识别与隐私保护的实际边界

文章强调识别可纯本地离线运行,设备间经中继仅传输密文,中继拿不到会话密钥。配对时两端显示安全码人工核对,已配对设备重逢也用 Noise_XX 握手。这降低了云端泄露风险,但用户需注意:若接入 OpenAI 兼容接口,音频会离开本机;本地模型下载后需校验 SHA-256,首次使用前应确认模型来源可信。

文字插入的可靠性与局限

Voltip 通过剪贴板加模拟粘贴插入文字,失败时文字留在剪贴板并提示原因,避免丢失。这比直接模拟键盘输入更稳健,但依赖目标窗口接受粘贴。文章提到目标窗口以管理员身份运行等场景可能粘贴不进去,此时需手动处理。另外,纯 Wayland 会话没有全局快捷键,需在系统设置中自行绑定,这是 Linux 用户需要留意的限制。

当前版本的已知不足

作者明确列出几项限制:尚无 iOS 版;Windows 安装包未做代码签名,首次运行会触发 SmartScreen 提示;每次需按键说话,没有语音唤醒。这些不影响核心听写功能,但会影响部分场景的便利性和信任感。对安全敏感的用户,未签名安装包需自行评估风险;对追求免手操作的用户,语音唤醒的缺失是明显短板。

❓

Q&A

Voltip 是什么?它主要能做什么?

Voltip 是一款开源语音输入工具,按住快捷键(默认 Ctrl+Alt+Space)说话,松开后自动去除口头禅、保留最终说法,并将整理好的文字插入光标处。支持 Windows、macOS、Linux 和 Android,可本地离线识别或接入 OpenAI 兼容接口。

Voltip 支持哪些操作系统?有没有 iOS 版?

支持 Windows、macOS、Linux 和 Android。目前没有 iOS 版。

Voltip 的语音识别可以完全离线运行吗?需要联网吗?

可以完全离线运行。它使用 transcribe-cpp 跑 Qwen3-ASR 的 GGUF 模型,也支持 sherpa-onnx 跑 SenseVoice、Paraformer 等模型。同时也能接入 OpenAI、Groq、硅基流动、阿里云百炼或任意 OpenAI 兼容接口进行在线识别。

Voltip 如何保证手机和电脑之间传输数据的安全?

设备间通过中继(axum WebSocket)只转发密文,使用 Noise_XX_25519_ChaChaPoly_SHA256 协议。配对时两端显示由握手哈希推出的安全码,人工核对一致才信任;已配对设备重逢时同样使用 XX 握手。中继拿不到也不需要会话密钥。

Voltip 在文字插入时如果遇到粘贴失败会怎么处理?

Voltip 使用 enigo + arboard 将文字放入剪贴板、模拟粘贴、再恢复剪贴板原内容。如果目标窗口以管理员身份运行等导致粘贴不进去,文字会留在剪贴板里,悬浮窗会说明原因,不会丢失文字。

Voltip 目前有哪些已知不足或限制?

已知不足包括:还没有 iOS 版;纯 Wayland 会话下没有全局快捷键,需在系统设置里自行绑定;Windows 安装包未做代码签名,首次运行 SmartScreen 会提示;每次都需要按键说话,没有语音唤醒功能。

🏷️

标签

➡️

继续阅读