| | |
| | | # VoiceSnap 语闪 |
| | | # PrivateVoice |
| | | |
| | | > 长按说话,松手即输 —— 离线 · 极速 · 跨平台 |
| | | |
| | |  |
| | |  |
| | | |
| | | VoiceSnap 是一款离线语音转文字工具。按住快捷键说话,松开即识别并输入文字到任意应用。无需联网,无需注册,开箱即用。 |
| | | PrivateVoice 是一款离线语音转文字工具。按住快捷键说话,松开即识别并输入文字到任意应用。无需联网,无需注册,开箱即用。 |
| | | |
| | | ## 核心特性 |
| | | |
| | |
| | | - **系统托盘常驻** — 关闭窗口不退出 |
| | | - **开机自启** — 可选 |
| | | |
| | | ## 支持的输入语言 |
| | | |
| | | 当前 PrivateVoice 的产品语言版本为 **中文**、**English**、**French**、**German**、**Spanish**、**Italian**、**Portuguese**、**Japanese** 和 **Korean**。识别模型已经扩展到 SenseVoice、Moonshine English、Parakeet English、Parakeet TDT v3、日语 Zipformer、韩语 Zipformer、Qwen3-ASR 和 X-ASR zh-en 960ms;不同模型覆盖的输入语言和成熟度不同。 |
| | | |
| | | | 输入语言 / 场景 | 当前支持状态 | 默认 / 可选模型 | 说明 | |
| | | |---|---|---|---| |
| | | | 中文(普通话、简体 / 繁体) | 正式支持 | 默认:SenseVoice;可选高级:Qwen3-ASR;实验:X-ASR zh-en 960ms | 中文语言版本默认使用 SenseVoice,适合中文听写和日常输入。 | |
| | | | English | 正式支持 | 默认:Moonshine English;可选高级:Parakeet English;实验:X-ASR zh-en 960ms | English 语言版本默认使用 Moonshine English,Parakeet 适合更高准确率的英文输入。 | |
| | | | French / German / Spanish / Italian / Portuguese | 正式支持 | 默认:Parakeet TDT v3 | 欧洲五语统一使用 NVIDIA / sherpa-onnx 的 Parakeet TDT v3 多语种离线模型。Portuguese 覆盖 `pt-PT` 和 `pt-BR` 的基础识别路径。 | |
| | | | 中英混输 | 正式支持场景 | SenseVoice、Qwen3-ASR、X-ASR zh-en 960ms | 适合中文句子中夹杂英文术语、产品名、代码词等场景。 | |
| | | | 粤语(Cantonese) | 模型支持,尚非独立语言版本 | SenseVoice、Qwen3-ASR、X-ASR zh-en 960ms | 底层模型包含粤语能力;当前建议在中文语言版本下使用。 | |
| | | | 日语(日本語) | 正式支持 | 默认:Zipformer Japanese | 日语语言版本默认使用 ReazonSpeech 日语专项 Zipformer 离线模型。 | |
| | | | 韩语(한국어) | 正式支持 | 默认:Zipformer Korean | 韩语语言版本默认使用韩语专项 Zipformer 离线模型。 | |
| | | | 欧洲其他语种 | 模型支持,尚非独立语言版本 | Parakeet TDT v3 | Parakeet TDT v3 支持 25 种欧洲语言;当前只把 French、German、Spanish、Italian、Portuguese 作为正式产品语言版本。 | |
| | | | 其他语言 | 暂未正式支持 | 无独立默认模型 | 系统语言不在当前正式语言范围内时,当前产品会回落到 English 语言版本。 | |
| | | |
| | | | 识别模型 | 模型状态 | 覆盖的输入语言 / 场景 | 所属语言版本 | 说明 | |
| | | |---|---|---|---|---| |
| | | | SenseVoice | 默认轻量模型 | 中文、粤语、English、日语、韩语 | 中文默认 | 轻量模型,当前推荐用于中文和中英混输,也提供日语、韩语等底层识别能力。 | |
| | | | Qwen3-ASR | 高级模型 | 中文、简繁中文、粤语、中英混输 | 中文可选 | 体积更大,适合中文长句、技术词和更高准确率需求。 | |
| | | | Moonshine English | 默认轻量模型 | English | English 默认 | 轻量英文离线模型,适合英文日常听写。 | |
| | | | Parakeet English | 高级模型 | English | English 可选 | 当前接入的是 `parakeet-unified-en-0.6b` 英文模型,适合长句、技术词和更高准确率需求。 | |
| | | | Parakeet TDT v3 | 默认多语种模型 | French、German、Spanish、Italian、Portuguese | 欧洲五语默认 | 一个模型包覆盖欧洲五语,适合离线听写;发布前基准对比 Canary-1B-v2 和 Whisper large-v3-turbo。 | |
| | | | Zipformer Japanese | 默认专项模型 | Japanese | 日语默认 | 基于 ReazonSpeech 的日语专项离线模型。 | |
| | | | Zipformer Korean | 默认专项模型 | Korean | 韩语默认 | 韩语专项离线模型。 | |
| | | | X-ASR zh-en 960ms | 实验模型 | 中文、English、粤语、中英混输 | 中文 / English 可选实验项 | 实验性中英流式模型,用于评估更低延迟和未来“边说边出字”体验。 | |
| | | |
| | | ## 快速开始 |
| | | |
| | | ### 用户 |
| | | |
| | | 1. 从 [Releases](https://github.com/vorojar/VoiceSnap/releases) 下载最新版本 |
| | | 2. **Windows**:解压到任意目录,双击 `voicesnap.exe` |
| | | 1. 从项目 Releases 页面下载最新版本 |
| | | 2. **Windows**:解压到任意目录,双击 `privatevoice.exe` |
| | | 3. **macOS**:打开 `.dmg`,拖入 Applications,首次启动需授予辅助功能权限 |
| | | 4. 首次启动自动下载语音模型(~200 MB) |
| | | 5. 就绪后,在任意输入框中按住 **右 Ctrl**(macOS: **右 Command**)说话,松开即输入 |
| | |
| | | # - CGO 编译器 (Windows: LLVM MinGW UCRT, macOS: Xcode Command Line Tools) |
| | | |
| | | # 克隆 |
| | | git clone https://github.com/vorojar/VoiceSnap.git |
| | | cd VoiceSnap/VoiceSnapGo |
| | | git clone <PrivateVoice 仓库地址> |
| | | cd PrivateVoice/privatevoice.src |
| | | |
| | | # 安装前端依赖 |
| | | cd frontend && npm install && cd .. |
| | |
| | | wails3 dev |
| | | |
| | | # 生产构建 (Windows) |
| | | windres voicesnap.rc -o voicesnap.syso |
| | | CGO_ENABLED=1 go build -ldflags "-H windowsgui -s -w" -o voicesnap.exe . |
| | | windres privatevoice.rc -o privatevoice.syso |
| | | CGO_ENABLED=1 go build -ldflags "-H windowsgui -s -w" -o privatevoice.exe . |
| | | |
| | | # 生产构建 (macOS) |
| | | CGO_ENABLED=1 go build -o voicesnap . |
| | | CGO_ENABLED=1 go build -o privatevoice . |
| | | ``` |
| | | |
| | | ## 使用方法 |
| | | |
| | | 1. 系统托盘出现 VoiceSnap 图标,引擎加载完成后就绪 |
| | | 1. 系统托盘出现 PrivateVoice 图标,引擎加载完成后就绪 |
| | | 2. **长按模式**:按住快捷键说话,松开即识别并粘贴 |
| | | 3. **自由说话**:短按一下开始,连续说话,再短按一下停止 |
| | | 4. **取消录音**:录音中按 Esc |
| | |
| | | |
| | | | 文件 | 大小 | 说明 | |
| | | |---|---|---| |
| | | | `voicesnap.exe` | ~15 MB | 主程序 | |
| | | | `privatevoice.exe` | ~15 MB | 主程序 | |
| | | | `onnxruntime.dll` | ~15 MB | ONNX Runtime | |
| | | | `sherpa-onnx-c-api.dll` | ~4 MB | sherpa-onnx C API | |
| | | | `sherpa-onnx-cxx-api.dll` | ~248 KB | sherpa-onnx C++ API | |
| | |
| | | |
| | | | 文件 | 大小 | 说明 | |
| | | |---|---|---| |
| | | | `VoiceSnap.app` | ~15 MB | 应用包(含 dylib) | |
| | | | `PrivateVoice Dictation.app` | ~15 MB | 应用包(含 dylib) | |
| | | | `models/sensevoice/` | ~200 MB | 语音模型(首次自动下载) | |
| | | |
| | | ## 项目结构 |
| | | |
| | | ``` |
| | | VoiceSnapGo/ |
| | | privatevoice.src/ |
| | | ├── main.go # 入口:单实例 + Wails 启动 |
| | | ├── app.go # 编排:热键 → 录音 → 识别 → 粘贴 |
| | | ├── internal/ |