100%设备端语音转录,音频不上传云端:Natively本地Whisper与Apple Speech ONNX优化实战
【免费下载链接】natively-cluely-ai-assistantNatively — Free open-source AI meeting assistant, interview copilot, and note taker. The best alternative to Cluely, Otter, Granola, Final Round AI, Fireflies, and Interview Coder. Real-time transcription, AI meeting notes, lecture recording, local RAG, BYOK, and stealth mode. Runs locally. No subscriptions. No data breaches.项目地址: https://gitcode.com/gh_mirrors/na/natively-cluely-ai-assistant
Natively 是一款免费开源的 AI 会议助手与面试副驾,支持100% 设备端本地语音转录:内置的本地 Whisper ONNX 推理引擎与 Apple Speech 引擎在你自己的电脑上完成全部语音转文字,音频文件永不离开设备,无订阅费、不上传云端。本文带你了解 Natively 如何实现低延迟、高精度的设备端转录,以及背后的 ONNX 优化实战。
为什么选择设备端语音转录:你的音频数据去了哪?
传统会议转录工具把音频上传到云端服务器,处理完再返回文字——你的会议内容会存储在他人的服务器上。Natively 选择了另一条路线:
- 本地推理引擎:Whisper / Moonshine / Nemotron 等 ONNX 模型直接在你的 CPU/GPU 上运行
- macOS 原生方案:macOS 26+ 可启用 Apple Speech,调用 Apple 设备端识别引擎
- 双通道采集:麦克风与系统音频作为两条独立原始终迹采集,无需额外的说话人分离模型
官方隐私承诺可以在 PRIVACY.md 中查阅。
快速上手:3 步启用本地 Whisper 转录
- 安装 Natively:macOS 用户可直接用
brew install --cask Natively-AI-assistant/tap/natively命令安装,Windows 用户从 Releases 下载安装包即可。 - 打开设置 → Audio:在 "Speech Provider" 下拉框中选择本地引擎(Apple Speech 或本地 Whisper 模型)。
- 首次使用自动下载模型:首次运行时会自动下载对应的 ONNX 模型并缓存到本地(模型管理见 modelManager.ts),之后离线也能转录。
如果想阅读源码,可获取完整仓库:
git clone https://gitcode.com/gh_mirrors/na/natively-cluely-ai-assistant本地转录的核心入口是 LocalWhisperSTT.ts,macOS 上则是 AppleSpeechSTT.ts。
本地 Whisper 里的 4 个 ONNX 优化实战
实战一:自动检测硬件,推荐最优模型
Natively 启动时会自动检测 CPU 架构、平台与内存(hardwareDetect.ts):
- Apple Silicon(M 系芯片):通过 CoreML 激活 Metal GPU 加速,可跑在 Neural Engine 上
- Windows:通过 DirectML 激活 GPU 加速,NVIDIA / AMD / Intel 通吃
- Intel Mac / 低配设备:走 int8 量化 CPU 推理,并自动推荐更轻量的模型
你在设置里直接选用推荐模型即可,无需手动折腾参数。
实战二:编码器 fp32 + 解码器 q8 的混合精度
这是 Whisper ONNX 导出中最讲究的一个优化:Whisper 的编码器(负责"听"波形)对量化极其敏感,跑 int8 会让错误率劣化好几个百分点;而解码器(负责"写出"文字)鲁棒得多,量化到 q8 提速明显、精度几乎不损失。
于是 Natively 按模块加载精度:
encoder_model→ fp32(保精度)decoder_model/decoder_model_merged→ q8(换速度)
完整配置在 inferenceConfig.ts 中,这套"Whisper 安全"策略同时服务于 Whisper、Distil-Whisper 与 Moonshine 三个模型家族,连下载体积都按平台做了精确预估。
实战三:VAD 语音活动检测,把算力花在刀刃上
会议里并不是每一秒都值得转录。Natively 使用能量式 VAD(vadProcessor.ts):把 16kHz 音频切成 30ms 小帧,用 RMS 能量阈值判断"是否有人在说话",只在检测到语音片段时才喂给推理引擎,超过 15 秒的长片段自动软提交。静默不转录,推理开销大幅下降。
实战四:流式近似,让"批量模型"获得实时感
Whisper 天生是"听完整句再输出"的批量模型。Natively 为每类模型定义了流式档案来逼近实时体验(LocalWhisperSTT.ts):
| 引擎 | 节奏 | 首个文字输出 |
|---|---|---|
| Whisper / Distil-Whisper | 每 1.5 秒复推理,两次推理一致才提交文字 | 开口后约 1.5–2.5 秒 |
| Moonshine | 每 750ms 推理一次,单次推理约 100ms | 开口后约 0.4–0.6 秒 |
| Nemotron 3.5 ASR | 真正的 560ms 分块流式推理 | 开口后约 0.56 秒 |
Whisper 路径还用了"本地一致性-2"策略:只有两段重叠推理的最长公共前缀才对外提交,避免了文字来回闪烁。此外,hallucinationFilter.ts 会过滤本地模型偶尔"幻觉"出的重复垃圾短语,让结果更干净。
Apple Speech:macOS 26+ 上的终极设备端体验
如果你在 macOS 26+(Apple Silicon)上,还有更"原生"的选择:Apple Speech。设置页对它的描述是"On-device · macOS 26+ · No API key"——调用 Apple 的设备端识别引擎,无需任何 API key,音频在 Neural Engine 上就地处理。
Natively 通过一个独立的 Swift 辅助程序 main.swift 驱动它,主进程侧的生命周期管理在 AppleSpeechSTT.ts。几个贴心细节:
- 语言包首次使用才下载:选择中文就会下载一次中文资产包,之后不再重复下载
- 语言槽位管理:Apple 限制可同时持有的语言数量,设置页会提前告诉你哪些语言可用、哪些已装,不会让你开会时才发现选中的语言用不了
- 优雅降级:非 macOS 或旧系统上该选项自动隐藏,不影响其他本地引擎
模型选择速查表
| 场景 | 推荐引擎 | 理由 |
|---|---|---|
| Apple Silicon + macOS 26+ | Apple Speech 或 Moonshine | 设备端 Neural Engine,延迟最低 |
| 英语会议 / 低配硬件 | Moonshine Tiny / Base | 约 100ms 推理,CPU 也能实时流式 |
| 多语言长会议 | Whisper Large v3 Turbo / Nemotron | 比大模型快 6 倍,支持多语言 |
内存不足时,Natively 会直接拒绝启动本地引擎并给出明确提示(关闭其他程序或换更小模型),而不是让 Mac 在会议中卡死。
常见问题
Q: 本地转录需要联网吗?不需要。模型下载完成后,转录完全离线可用;联网只在首次下载模型文件时发生。
Q: 本地转录比云端慢多少?云端 STT 100–300ms 出首字,本地 Whisper 约 1.5–2.5 秒,Moonshine 可压到 1 秒以内。会议场景下这个差异几乎无感,换来的是音频永不离开设备。
Q: 模型下载后存在哪?首开会冷启动很慢吗?模型缓存在本地复用,且 modelPreloader.ts 会在后台预加载模型,缩短第一次会议的冷启动时间。
写在最后
Natively 证明了"隐私与体验"不必二选一:本地 Whisper 配合 ONNX 混合精度、VAD 与流式近似,在普通硬件上就能获得设备端低延迟转录;Apple Silicon 上再叠加 Apple Speech,更是零 API key 的原生体验。你的会议录音、面试语音、课堂录制,全部留在自己的电脑里。
核心源码路径速查:
- 本地转录引擎:LocalWhisperSTT.ts
- ONNX 优化与模型管理:electron/audio/whisper/
- Apple Speech 集成:AppleSpeechSTT.ts
- 隐私声明:PRIVACY.md
【免费下载链接】natively-cluely-ai-assistantNatively — Free open-source AI meeting assistant, interview copilot, and note taker. The best alternative to Cluely, Otter, Granola, Final Round AI, Fireflies, and Interview Coder. Real-time transcription, AI meeting notes, lecture recording, local RAG, BYOK, and stealth mode. Runs locally. No subscriptions. No data breaches.项目地址: https://gitcode.com/gh_mirrors/na/natively-cluely-ai-assistant
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考