实时语音翻译桌面应用:捕获电脑系统音频(或麦克风)→ 本地语音识别 → 翻译 → 双栏字幕实时显示。中 / 英 / 日 三语互译。
Windows 端到端可用:系统音频→本地识别→翻译→双栏字幕 + 悬浮窗。已含 RNNoise 降噪、Silero VAD、多种翻译引擎(含免 key)、模型按需下载、会话重点提炼、应用图标、安装包。macOS(ScreenCaptureKit 系统音频 + 麦克风)与 Linux(PulseAudio/PipeWire monitor + 麦克风)采集代码已补全,待真机验证;代码签名需自备证书——见下方路线图。
隐私:音频全程不出本机,只有识别出的文本发往翻译接口。
系统音频(WASAPI 环回, 48k) ──► 降噪(RNNoise, 可选) ──► /3 重采样 48k→16k
│
▼
VAD 切段(Silero / 能量门限)
│ [seg channel, 有界]
▼
sherpa-onnx 进程内识别(SenseVoice / Qwen3-ASR, 纯 CPU)
│ 原文先 emit [txt channel, 有界]
▼
翻译(OpenAI 兼容 / Ollama / Google 免费 / 纯字幕)
│ 译文回填同一 id
▼
Tauri event ──► React 双栏字幕 + 悬浮窗
- 框架:Tauri 2.x(Rust 后端 + React 19 / TS 前端,WebView2)
- 采集:Windows 用
wasapi默认 Render 设备 loopback(48kHz,autoconvert);静音缓冲(SILENT)清零防污染。平台无关处理(降噪→抽取→切段)抽成Processor共享;macOS / Linux 采集代码已补全但待真机验证(见 capture.rs) - 降噪:可开关。RNNoise(nnnoiseless)在 48kHz 降噪 → 自写 /3 FIR 抽取到 16kHz 喂识别引擎
- VAD:默认 Silero VAD(sherpa-onnx 内置,ML 切分更准);可关闭回退到零依赖的能量门限(segmenter.rs)。分段长度按识别引擎自适应(SenseVoice 偏短低延迟、Qwen3 偏长保上下文)
- ASR:sherpa-onnx 静态链接、进程内离线识别(无 sidecar、无 HTTP,音频不出本机),纯 CPU 推理。两种引擎可选(asr.rs):
- SenseVoice(默认,快):CTC 模型,延迟低、模型小(int8,约 240MB),支持 zh/en/ja/ko/yue;日常字幕够用,专名准确度一般
- Qwen3-ASR(精准):LLM 解码,延迟略高、模型大(约 940MB);专名/同音词更准
- 流水线:采集→识别→翻译三线程并行,有界 mpsc 通道串联——原文识别出即刻显示,译文随后回填同一条字幕(pipeline.rs)
- 翻译:多引擎可选(translate.rs)——OpenAI 兼容(需 key,可指向 OpenAI/DeepSeek/通义/Kimi) / Ollama(本地,无 key,需装 Ollama 并拉模型) / Google 免费(非官方 gtx 端点,无 key) / 纯字幕(不翻译,无 key,只出原文)
- 会话重点:一键把本次会话译文用 LLM 提炼成结构化重点(translate.rs
summarize),支持手动编辑与重新提炼
前置:Node 18+、Rust(stable-msvc)、WebView2(Win11 自带)。
识别模型不用手动下——首次「开始」时按所选引擎自动下载到 app 数据目录(%APPDATA%\com.administrator.voicetranslator\models),带进度条。仓库内已含 VAD 所需的 src-tauri/sidecar/models/silero_vad.onnx(约 2.2MB,随安装包打包)。
npm install
npm run tauri dev首次「开始」:若所选引擎的模型未下载会先下载(进度条,SenseVoice ≈240MB / Qwen3 ≈940MB),再加载识别器。在设置里选翻译引擎:云 API 填 key;想免 key 就选 Google 免费 或 纯字幕。
- loopback 实现:打开默认 Render 设备后,以
Direction::Capture初始化 → WASAPI 置AUDCLNT_STREAMFLAGS_LOOPBACK。这是 wasapi 0.23 的环回方式。 - sherpa-onnx 进程内、静态链接:识别器常驻进程内存,无 sidecar 进程 / HTTP,免去每段重载与跨进程开销;模型静态链接库随程序分发,运行期无需额外 DLL。
- 三线程并行流水线:采集→切段→
segchannel→识别线程→(原文先 emit)→txtchannel→翻译线程→回填。段 N+1 的识别与段 N 的翻译并行,翻译不阻塞识别;每段用自增 id,前端按 id 回填,顺序仍有保证。通道有界,过载时丢最旧音频 / 标记翻译跳过,保证实时不退化。 - 分段长度按引擎自适应:SenseVoice 成本平、长片段反而掉点 → 用短段降延迟;Qwen3 需要上下文降低幻觉 → 用长段(segmenter.rs
SegLimits::for_engine)。
识别模型首次使用时自动下载到 app 数据目录(download_model 命令 + model-progress 进度事件,asr.rs),无需手动下:
| 引擎 | 模型 | 体积 | 说明 |
|---|---|---|---|
| SenseVoice(默认) | sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2025-09-09 (int8) |
≈237MB | CTC,快,支持 zh/en/ja/ko/yue |
| Qwen3-ASR | Qwen3-ASR-0.6B (int8) | ≈940MB | LLM 解码,专名更准,延迟略高 |
VAD 模型 silero_vad.onnx(约 2.2MB)已随仓库与安装包打包,无需下载。
npm run tauri build # 产物在 src-tauri/target/release/bundle/(NSIS .exe + MSI)- 识别模型不打包,安装包仅含程序 + VAD 模型 + 前端;用户首次运行按需下载识别模型。
- 代码签名:需自备代码签名证书。Windows 在
tauri.conf.json的bundle.windows.certificateThumbprint(+signCommand或timestampUrl)配置;无证书则产物为未签名安装包(用户安装时 SmartScreen 会警告)。
本项目是免费开源软件,未购买代码签名证书,因此各平台首次安装会弹安全提示。这与软件本身是否安全无关——操作系统对任何未签名应用都会这样提示。绕过方法如下:
Windows(SmartScreen)
双击安装包若出现「Windows 已保护你的电脑 / Windows protected your PC」:
- 点蓝字 更多信息 / More info
- 再点 仍要运行 / Run anyway
macOS(Gatekeeper)
DMG 未签名 / 未公证,安装后首次打开可能提示「无法打开,因为无法验证开发者」。任选其一:
-
右键点 App → 打开 → 在弹窗里再点「打开」(推荐,最简单);或
-
终端去掉隔离属性后再打开:
xattr -dr com.apple.quarantine "/Applications/语音翻译.app"
Linux
.AppImage 下载后需加可执行权限:chmod +x 语音翻译*.AppImage,再双击或命令行运行;.deb 用 sudo dpkg -i 语音翻译*.deb 安装。
想彻底消除 Windows 警告,开源项目可申请 SignPath Foundation 的免费代码签名;macOS 公证需 Apple 开发者账号($99/年)。详见路线图。
- P1(已完成) Windows 端到端:系统音频 → 识别 → 翻译 → 字幕
- 准确/速度优化(已完成)
- 准确:RNNoise 降噪(48k 采集→降噪→16k,可开关);Silero VAD 语音切分(sherpa-onnx 内置,可开关,失败回退能量门限);源语言可固定(中/英/日/韩/粤,短片段比 auto 准);静音缓冲清零;幻觉与套话熔断;两种识别引擎(SenseVoice 快 / Qwen3 精准)可切换
- 速度:采集/识别/翻译三线程并行(原文先出、译文回填);纯 CPU 推理(SenseVoice int8,
num_threads=4);分段长度按引擎自适应收紧延迟 - 鲁棒:播放停止时兜底收尾半句(不卡半句);采集→识别→翻译全程有界队列,过载时丢最旧音频 / 标记翻译跳过,保证实时不退化
- 翻译引擎多选:OpenAI 兼容 / 本地 Ollama(无 key) / Google 免费(无 key) / 纯字幕(无 key),免 key 也能用
- 体验:悬浮字幕窗(独立透明置顶窗口,实时显示最新原文+译文,可拖动,主窗口一键开关);会话重点一键提炼(LLM,可编辑/重提炼);历史导出为 txt(带时间戳的原文+译文)
- 打包:应用图标(「译」字);识别模型按需下载到 app 数据目录(带进度),安装包仅含程序 + VAD 模型;
tauri build出 Windows 安装包(NSIS/MSI)
- P2(待做) DeepFilterNet3 深度降噪(更强,替 RNNoise);SRT 带时轴字幕导出;多说话人分离
- P3 macOS / Linux 采集真机验证(已搭好 cfg 隔离脚手架 + 共享 Processor,需接 ScreenCaptureKit / PulseAudio + 权限引导);代码签名(需自备证书)+ macOS 打包