工具
开源本地听写工具 Dictata:基于 Whisper 的隐私优先方案
Rust 编写的 Windows 本地语音听写工具,默认采用 whisper.cpp,支持多种 ONNX 后端与可选 L…
2026.08.23 · 周日约 4 分钟阅读
项目概述
Dictata 是一款面向 Windows 系统的本地语音听写工具,使用 Rust 编写,主打「100% 本地化」——所有转录过程在用户设备上完成,原始音频与文本不会离开本机。用户通过全局快捷键启动录音,再次按下后文本会被自动转写并粘贴到当前活动窗口中。
核心转录引擎 Dictata Engine 默认采用 whisper.cpp,并可选集成多种 ONNX 后端:
- NVIDIA Parakeet
- SenseVoice(CTC)
- Moonshine
- Zipformer(transducer)
这些后端通过 Cargo feature 在构建时启用;默认构建仅包含 whisper.cpp。当前发布版本为 v0.1.0。
主要功能
- 快捷键听写:支持切换式与按住说话两种模式,文本自动粘贴至活动窗口;附带可定制大小、透明度与位置的浮动波形窗口。
- 连续流式模式:检测到停顿即插入文本,实现「边说边出字」。
- 静音跳过(VAD):可选启用 whisper.cpp 的语音活动检测,首次使用会下载约 2 MB 的小模型,可降低静音段的算力消耗与误识别。
- 多音频源:支持麦克风、系统音频(WASAPI loopback)或两者混合的「会议模式」。
- 可选 LLM 后处理:可接入本地 OpenAI 兼容接口的 LLM,对原始转录文本做润色、邮件格式化、清单整理等处理,提示词可自定义。
- 文件转录:支持任意 ffmpeg 可处理的音视频格式,转录结果进入历史页。
- 自定义词表与替换:以 initial prompt 形式注入识别流程。
- 模型管理:内置 ggml 模型库,提供硬件感知推荐(Vulkan 下识别 GPU/VRAM,否则识别 CPU/RAM);支持从 HuggingFace 直接以 URL、仓库名或关键词搜索安装任意 ggml 或 ONNX 模型。
- 多语言界面:支持英、法、西,深色主题,系统托盘图标,转录历史。
硬件与构建
- 平台:当前版本仅支持 Windows 10/11;Linux 版本仍在规划中,详见 LINUX.md。
- 依赖:ffmpeg(仅「Transcribe a file」需要);启用 GPU 加速需安装 Vulkan SDK 与 Visual Studio Build Tools(含 CMake 与 Ninja)。
- 基础构建:
cargo build --release。 - 纯 CPU 构建需注意:
--no-default-features会移除 vulkan,但 whisper 后端不会自动重新启用,必须显式加上--features whisper,否则二进制将无法转录。 - 启用各 ONNX 后端示例:
--features parakeet-directml、--features sensevoice、--features moonshine、--features zipformer;ONNXRuntime 通过ort静态链接,无需额外随包分发 DLL。
仓库还附带 Windows 打包脚本 scripts\release-windows.ps1,会运行测试、构建并生成 dist\dictata-<version>-windows-x86_64[-cpu].zip 及其 SHA-256;zip 内仅含 dictata.exe、README.md、LICENSE 与 CHANGELOG.md,程序首次运行会自行写入默认配置。
使用流程
启动后程序驻留在系统托盘;首次运行通过托盘菜单打开 Settings(也可设置 DICTATA_OPEN_SETTINGS=1 环境变量自动弹出)。在 Models 页面选择模型、设置快捷键、语言与音频源后,将光标置于目标输入框,按下默认快捷键 Ctrl+Alt+Space 开始说话,再次按下结束录入。
长按 Esc 约半秒可取消本次录制;由于 Esc 被全局监听以避免误触,短按 Esc 仍会传递给前台应用程序处理。
