voicetypr
Rust+Tauri打造的开源本地语音转文字听写工具,支持全局热键、GPU加速、99+语言,macOS/Windows可用
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Rust+Tauri打造的开源本地语音转文字听写工具,支持全局热键、GPU加速、99+语言,macOS/Windows可用
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
许多独立开发者和技术博主都有过这样的体验:凌晨三点,代码思路如泉涌,但手指敲键盘的速度远远跟不上思维运转的节奏。传统的打字输入成了创作的最大瓶颈。此时,一款能够将语音实时转为文字的工具就成了救命稻草。
Voicetypr 就是为解决这个痛点而生的开源项目——它是一个本地运行的 AI 语音转文字听写工具,支持 macOS 和 Windows,被作者定位为 Wispr Flow 和 SuperWhisper 的开源替代品。
Voicetypr 由独立开发者 moinulmoin(GitHub ID)创建,于 2025 年 7 月正式开源。项目采用 AGPL-3.0 开源许可证,由 Ideaplexa LLC 发行维护。短短不到一年时间,已在 GitHub 积累超过 390 颗 star、74 个 fork,说明确实切中了一大批用户的真实需求。
这个项目的诞生背景很清晰:主流商业语音听写工具(如 Wispr Flow 付费订阅、SuperWhisper)要么价格不菲,要么依赖云端处理。用户渴望一个一次付费、永久使用、完全本地运行的替代方案——Voicetypr 正是为此而生。
Voicetypr 的技术选型非常务实,采用了当下桌面应用开发的黄金组合:
前端层 基于 React 19 + TypeScript + Vite 构建,使用了 shadcn/ui 组件库、Tailwind CSS 4 和 Geist 字体变量包。状态管理采用 Zustand,整体 UI 走极简路线,带有系统托盘(Menu bar)集成。有一个值得注意的细节:项目使用 @base-ui/react 而非传统的 Radix UI 直接使用,这是 shadcn/ui v1 的新变化。
后端层 是 Voicetypr 最值得称道的地方。核心引擎完全用 Rust 编写,通过 Tauri v2 框架与前端通信。相比 Electron,Rust 后端带来了更小的二进制体积和更低的内存占用。Tauri 的安全策略也相当严格,CSP 配置限制了脚本来源,防止了潜在的 XSS 攻击。
语音识别引擎 基于 whisper-rs(OpenAI Whisper 的 Rust 绑定),支持 Tiny、Base、Small、Medium、Large 等多种模型尺寸。代码中调用了 convert_integer_to_float_audio 和 convert_stereo_to_mono_audio 等底层函数对音频进行预处理,配合 symphonia 音频解码库实现跨平台音频解析。
GPU 加速支持 是本项目的技术亮点。代码中实现了完整的 GPU 加速逻辑分支:
此外,项目还集成了 Parakeet 云端语音识别(通过 sidecar 方式运行 FFmpeg 预处理),以及 Groq/Gemini 的 AI 增强功能,可对转写文本进行智能格式化(预设场景:Prompts、Email、Commits、Notes)。
Voicetypr 的 Rust 后端代码组织清晰,核心模块如下:
| 模块 | 文件大小 | 功能说明 |
|---|---|---|
writing.rs | 131KB | 核心打字引擎,负责将转写文本注入到任意 App 的光标位置,支持剪贴板注入和 enigo/rdev 模拟键盘输入 |
audio.rs (commands/) | 290KB | 音频命令处理,包含设备枚举、录音控制、权限管理、热键注册等 |
remote.rs (commands/) | 76KB | 远程服务集成,处理 Groq/Gemini API 调用、License 验证 |
settings.rs (commands/) | 68KB | 设置面板,管理模型下载、快捷键、音频设备、GPU 设置 |
license.rs (commands/) | 43KB | 授权系统,包括试用检查、API key 安全存储(PBKDF2 加密) |
whisper/manager.rs | 27KB | Whisper 模型管理,模型缓存、自动下载、多语言支持 |
whisper/transcriber.rs | 31KB | 转录核心,调用 whisper-rs 执行推理,输出带时间戳的片段 |
audio/recorder.rs | 56KB | 录音引擎,使用 cpal 跨平台音频捕获,hound 写 WAV,配合静默检测和音量计实现 VAD |
trigger/ | — | 触发器引擎(独立 crates/keytrigger),全局热键注册与匹配,55KB matcher.rs 处理复杂快捷键序列 |
state_machine.rs | 8KB | 状态机,管理 Idle → Recording → Transcribing → Idle 的完整生命周期 |
值得关注的是 writing.rs(131KB)是整个项目中最大的单个文件,它通过三种方式实现跨 App 文字注入:
arboard 读取,然后模拟 Ctrl+V / Cmd+V 粘贴enigo(Linux/macOS)和 rdev(跨平台)直接模拟键盘输入字符Voicetypr 在隐私设计上下了功夫。默认使用本地 Whisper 模型转写,音频数据不离开用户设备。License/Trial 检查和 AI 增强功能(Grov/Gemini)需要联网,但 telemetry(遥测)默认关闭,用户可以完全断网使用全部核心功能。
License 存储使用了 PBKDF2 密钥派生 + AES-GCM 加密,API key 通过 secure_store 模块管理,不会明文出现在配置文件或日志中。
Voicetypr 提供了 DMG(macOS,已签名公证)和 NSIS 安装包(Windows)两种分发方式,下载即装,无需额外配置。安装后首次启动会引导用户下载 Whisper 模型(约 1-4GB,根据选择的模型大小),之后即可使用。
使用时只需在任意 App 中按下全局快捷键(默认可自定义),对着麦克风说话,松开即转录,文字会自动出现在光标位置。整个流程从"按下快捷键"到"文字出现"延迟极低(实测 Apple Silicon 上约 0.5-2 秒)。
支持 99+ 语言,自动检测语言,无需手动切换。
Voicetypr 也并非完美,以下几点值得注意:
license.rs 代码达 43KB,说明商业化逻辑较为复杂,对开源社区的透明度和信任度是一把双刃剑Voicetypr 是一个技术选型精准、工程质量较高的 Rust 桌面应用。它用不到 400KB 的核心代码实现了从音频采集、Whisper 转录、AI 增强到跨 App 文字注入的完整链路,配合严格的 Rust 生命周期管理和 GPU 加速策略,在性能和隐私之间找到了很好的平衡点。
对于独立开发者、Vibe Coder(AI 辅助编程爱好者)和技术写作者来说,Voicetypr 提供了一个一次安装、永久免费、隐私安全的语音输入方案,是 AI 时代提升人机交互效率的实用工具。