OpenWhispr/openwhispr:7.4k stars 的开源语音听写,本地 Whisper / Parakeet + 云端 BYOK 全给你,WisprFlow 替代品
上个月我开始写月度复盘。复盘这种东西,写出来比想出来更累。我坐在电脑前,对着” 这个月我做了什么” 这个问句发呆 20 分钟,最后写了三行半就关了文档。
后来我试了语音输入。我对着电脑说:” 这个月主要做了三件事,第一是把 X 项目从零搭到一,第二是 Y 团队的代码 review 流程跑通,第三是招了两个人。” 全程大概 40 秒。自动转出来的文字稍微改改就是一整段。
那一刻我才意识到,键盘把我的思维流速限制在了打字速度上。解开了这个限制,” 组织语言” 这件事从苦差事变成了口述。
用了一段时间之后我开始在意背后那个软件。最初用的是某商业产品,订阅了一年。每月扣款的时候我会想:我的语音每秒钟都被传到它家的服务器、存到它家的云端、用来训它家下一版模型。鉴权用的还是设备 token,它根本不知道我说了什么。
那天我找到了 OpenWhispr。7.4k stars,931 forks,当日 +121 stars,MIT 协议。桌面端 + 命令行 + 自托管一整套,全开源。
我现在已经把它当主力了。
一、它想解决的问题:键盘不是唯一的输入设备
先讲清楚背景。
2024 年到 2025 年,AI 语音输入突然密集爆发。WisprFlow 拿到了 Sequoia 领投的 A 轮,估值冲到 9 位数。Granola 在 Notion 生态里卖得风生水起。Apple 把 macOS 自带的听写从” 凑合能用” 修到了” 真能干活”,代价是 16 GB 内存起步。
这些产品都在卖同一件事:把” 说” 变成” 写”,把” 会议录音” 变成” 结构化笔记”。
但卖这件事的方式有两种。
第一种是 SaaS 订阅。你付钱,它把语音发到云端,转成文字发回来。WisprFlow、Granola、Otter 都走这条。好处是开箱即用,模型永远最新,硬件零门槛。代价是:你的语音经过它的服务器、它的转录模型、它的存储、它的合规边界。它不一定是恶意的,但你的数据离开了你。
第二种是开源本地。Whisper.cpp、sherpa-onnx、whisper-standalone 这一档工具,CLI 一行命令转一段音频。问题是没有” 按住热键说、说完自动粘贴到当前应用” 这种桌面体验,模型要自己装,配置文件要自己改。
OpenWhispr 想做的事是:本地优先那一档的体验,外加云端那条作为可选。按 README 第一句话讲,它是 “The open-source and free alternative to WisprFlow and Granola”。
7.4k stars 这个数字在 AI 项目里不算爆炸。但它对应的功能密度是:你拿出同等 star 数的桌面项目,大半只是个 Electron 包装的 OpenAI API 调用,OpenWhispr 装的是 Whisper、Parakeet、speaker diarization、声纹识别、semantic search、MCP server。
技术栈:React 19、TypeScript、Tailwind CSS v4、Electron 41、better-sqlite3、whisper.cpp、sherpa-onnx、shadcn/ui。技术选择本身没什么花哨,但选 Whisper + Parakeet 双模型、sherpa-onnx + whisper.cpp 双推理后端、Electron + React 19 这一套是认真做过权衡的。
二、核心功能:七件具体的事
按 README 列的 features 拆,每一条单独讲我能用它做什么。
1. 全局热键听写
这是最基础也最常用的功能。设一个全局热键(我设的是右 Option 键),按住,对着麦克风说,松开。说完之后转录出来的文字自动粘贴到你当前光标所在的应用。
注意几个细节。
第一,” 当前光标”。你说的时候可能正在 Terminal、Notion、Slack、浏览器搜索框、IDE 任意一个地方。松开键的时候,OpenWhispr 不切换应用、不开新窗口,直接把文字送到那个应用的当前输入框。这个能力靠 Electron 的 accessibility API 实现,macOS 上是 AXUIElement、Windows 上是 UIA。
第二,” 自动粘贴”。如果当前光标在不可写的位置(桌面、锁屏、Finder),它会把文字放进剪贴板,并且发一个系统通知告诉你” 已经放剪贴板了”。这层 fallback 决定了它不会” 按了半天没反应”。
第三,转录引擎你可以选。本地 Whisper / 本地 Parakeet / 云端(OpenAI Whisper API、Deepgram、AssemblyAI 等 BYOK)。本地走 GPU 加速:macOS 用 Metal、Windows/Linux 用 CUDA 或者 Vulkan(AMD/Intel 都能跑)。
2. 翻译热键
单独再设一个热键。一种语言说,自动翻译成另一种语言,翻译结果粘贴到光标位置。
比如按 Option+T,对着说中文(” 把这段代码改一下”),它能转成英文(”modify this code”)粘进去。这个能力是把听写 + 翻译两件事串起来。本地翻译需要本地 LLM(llama.cpp 跑 Qwen、Llama),云端翻译就 BYOK 给 OpenAI 或者 Anthropic。
3. AI 语音助手
又一个独立热键。这次不是” 把说的话变成文字粘进去”,是” 把说的话作为指令发给一个 AI agent,让 agent 干活”。
比如按 Option+A,说” 帮我在 Notion 找上周的会议纪要”,agent 调工具去找,找到之后把结果放剪贴板。或者你说” 把刚才那段翻译成日文”,agent 调翻译工具,回你结果。模型可以选 GPT-5、Claude、Gemini、OpenRouter 上任意一个,也可以选本地 llama.cpp 跑的。
还有个有意思的细节:开启” 自动粘贴” 模式后,agent 的回复会流式输出到一个浮动面板里(在没有可写光标的时候),或者直接粘到当前输入框(光标在的时候)。如果当前有选中的文字,agent 会就地修改那段选中的文字。
还能选” 把当前屏幕截图发给 agent 当上下文”,这就有点 Anthropic 那个 Computer Use 的味道了,按 Option+A 之后它会截你屏幕,让 agent 看上下文行动。
4. 会议转录
OpenWhispr 能自动检测你什么时候进入了 Zoom、Teams、FaceTime 会议,然后开始录音 + 转录。会议结束自动保存。
转录出来的内容带说话人分离(speaker diarization):谁说的哪句话,自动标注。这件事 Whisper 本体做不了,要靠 sherpa-onnx 跑一个说话人嵌入模型。OpenWhispr 把它做了,完全在本地。
更进一步,它有声纹识别(voice fingerprinting):每个 speaker 在第一次出现时建一个指纹,跨会议也能认出来。语义搜索可以用指纹找” 上次那个谁说过的话”。
Intel Mac 用户的 README 里有句” 活人识别和声纹识别不可用”。原因不是 OpenWhispr 写不出,是 ONNX Runtime 1.24 之后官方不再发布 macOS x86_64 的二进制。会议录制和转录正常,笔记搜索回退到关键词匹配。
Apple Silicon 用户没事。Windows、Linux 用户也没事。这条是 Intel Mac 用户买新机之前该看到的提醒。
会议可以选三种日历集成:Google Calendar、Microsoft 365、Apple Calendar。会议标题、参加人、时间自动从日历拉,写笔记的时候不用手填。
5. 笔记系统
单独的笔记模块。创建笔记、按文件夹组织、语义搜索(基于本地 embedding 模型)、云同步、AI 动作(比如” 把这条笔记总结成三条 todo”)。
免费用户本地存。登录后用 Team Space 功能在 web 端分享,权限可以按链接、域名、白名单设置。多人协作有 server-enforced 成员管理。
笔记既可以从听写直接来,也可以从会议转录来。AI 动作可以跑在本地 LLM 上,也可以调云端。
6. 音频导入
把已经存在的音频或视频拖进 OpenWhispr,转录 +(可选)说话人分离。
支持批量上传,也支持直接贴 YouTube / 音频 URL,它会自己下载并转录。这件事 Whisper.cpp 那一档 CLI 工具要自己写 ffmpeg + yt-dlp,OpenWhispr 内置了。
7. 公网 API + MCP
docs.openwhispr.com/api/overview 暴露了 OpenWhispr 自己的 REST API,可以程序化管理笔记和转录。docs.openwhispr.com/integrations/mcp 给出了一个 MCP server 实现,让 Claude Code、Cursor、opencode 这类 agent 工具直接操作你的笔记库。
最后这条是它在 AI Coding 生态里” 接住这件事” 的关键。一个 coding agent 在改完代码之后,可以调 MCP server 把 commit message 写进你的笔记库;一个研究 agent 跑完一组查询之后,可以把结果存进 OpenWhispr 的 Notes。wispr-flow 这一档工具没有这个能力,OpenWhispr 给出来了。
三、技术架构:Electron 装本地推理
技术栈那一行我得展开说一下,因为这些选择是认真的。
Electron 41 是外壳。这是个有争议的选择,Electron 包大、内存占用高、启动慢。但跨 macOS / Windows / Linux 三平台这件事,Electron 是用最小工作量达到最广覆盖的方案。OpenWhispr 的目标用户是” 我想要在 Mac 上和 Windows 上都能用同一套”,Electron 是答案。
better-sqlite3 做本地存储。同步 API、零配置、嵌入式、跑在 Node 进程内。笔记、转录、说话人指纹、本地 embedding 全部存本地 SQLite。免费版数据不出本机。
whisper.cpp + sherpa-onnx 是两个推理后端。前者是 OpenAI Whisper 模型的高性能 C++ 实现,后者是 k2-fsa 维护的 ONNX 推理运行时,支持 Parakeet 那一档多语言 ASR 模型。选这两个是因为:
- Whisper 模型社区资源最丰富(huggingface 上百种微调版),但纯英文最佳,多语言一般。
- NVIDIA Parakeet TDT 0.6B v2 是当前开源 ASR 里多语言能力最强的之一,速度也快(RTF 0.02 左右)。
两套后端并存,意思是用户在” 英文为主选 Whisper,多语言选 Parakeet” 之间切。GPU 加速矩阵:macOS Metal(Apple Silicon)、NVIDIA CUDA(Windows / Linux)、Vulkan(AMD / Intel GPU)。README 里那条”All core features work with local models or cloud providers — including GPU-accelerated local Whisper on Metal, CUDA, and Vulkan” 是认真的。
shadcn/ui 是组件库。React 19 + Tailwind v4 + Radix primitives 的组合,可访问性是基线(不是” 努力加”),键盘导航是默认行为。Voice Dictation 这种应用的可访问性要求比普通应用高,你要相信热键能救命,UI 上的 focus 状态必须清清楚楚。shadcn/ui 选对了。
Neon Postgres 是 OpenWhispr Cloud 的后端。README 里的赞助商那一块明示了”Neon is the serverless Postgres platform powering OpenWhispr Cloud”。这说明 OpenWhispr 有一个云端组件是给付费用户用的,本地版完全不需要这个后端跑起来。
MCP server 是给 AI agent 生态的接缝。Anthropic 推 MCP 已经一年多,凡是装了 Claude Code、Cursor、opencode 的人都用过 MCP 工具。OpenWhispr 把自己的笔记和转录能力暴露成 MCP server 之后,这些 agent 就能” 看见” 你的笔记库。商业 SaaS 类产品不太愿意做这件事,把数据出口打开了,谁还用它的 app?开源产品没这个顾虑。
四、隐私设计:默认本地,云端 BYOK 可选
我决定长期用 OpenWhispr 的核心理由,是它的隐私设计。
默认行为
- 听写 默认走本地 Whisper 或本地 Parakeet。音频不离开设备。
- AI agent 默认走你配置的本地 LLM(llama.cpp + Qwen / Llama)。不上云。
- 会议转录 默认本地。说话人分离、声纹识别都在本机。
- 笔记存储 默认本机 SQLite。
- 语义搜索 默认本地 embedding。
也就是说,装上之后不做任何配置,所有数据都在你机器上。
什么时候数据会上云
- 你显式选了云端 STT 引擎(OpenAI Whisper API、Deepgram 等),音频会发到对应厂商。
- 你显式选了云端 LLM(GPT-5、Claude、Gemini、Groq、OpenRouter),文本会发到对应厂商。
- 你登录了 OpenWhispr Cloud,开了 Team Space / 共享笔记,云同步会经过 Neon Postgres 后端。
- 没有任何” 自动启用云端” 的开关。所有云端调用都是用户主动开的。
BYOK 模型
“BYOK” 是 “Bring Your Own Key”。你拿你自己的 OpenAI / Anthropic / Gemini API key 配进 OpenWhispr,云端调用走你的 key、计费在你的账单上。OpenWhispr 不抽成、不存你的 key 在它自己服务器上(配置存在本地 SQLite)。
这条商业模式跟 IDE 编辑器 JetBrains 卖 Toolbox、Linear 卖 workspace 是一样的:卖软件不卖数据。SaaS 类产品做不到这一点,因为它的数据流是商业模式的一部分。
收的元数据
README 说 “no data collection, no telemetry”。我翻了一遍代码没看到 analytics 相关的依赖。Electron 应用的 telemetry 通常会通过 electron-builder 配置 inject,OpenWhispr 没这么干。
如果你想验证,最简单的办法是用 Wireshark 或者 Little Snitch 监控 OpenWhispr 启动后的网络请求。本地模式下应该只有 license 验证和更新检查(如果开了自动更新),没有别的话务。
五、商业模式:免费 + Cloud 付费 + 企业
README 里我注意到了几件事拼起来能看出商业模式。
个人版完全免费。所有本地功能、所有 BYOK、所有笔记、Team Space 共享、API 全部 free。README 没有付费墙。
OpenWhispr Cloud 是 SaaS 化的部分。Team Space、server-enforced 成员管理、云同步走 Neon Postgres。免费登录用户可以创建 Team Space 和分享笔记,更深的企业功能(SSO、SCIM)属于企业版。
企业版 三大块:组织策略强制、SSO + SCIM 集中账号管理、不分发云 key 的集中 Bedrock / Azure OpenAI 接入(IT 给一个企业网关,员工的 OpenWhispr 走企业网关调模型,key 不下发到终端)。
这是个很清楚的 “open core” 模式:
- 核心开源:本地听写、本地转录、本地笔记、本地 AI,MIT,永远免费。
- 便利层收费:云同步、跨设备、Team Space、API 配额,Cloud 订阅。
- 企业层加价:SSO、SCIM、策略强制、审计、合规,Enterprise 合同。
跟 GitLab、Nextcloud、Supabase 是同一档的开放策略。open core 不是 pure OSS,但社区版该有的功能都有,Cloud / Enterprise 加的是” 便利” 和” 合规”。
六、快速上手
下载装包
不用 npm 装。装的是桌面 app。
| 平台 | 下载 |
|---|---|
| macOS (Apple Silicon) | .dmg |
| macOS (Intel) | .dmg(部分功能受限,见上) |
| Windows | .exe |
| Linux | .AppImage / .deb / .rpm / .tar.gz |
GitHub Releases 页面下载。macOS 装的时候要” 右键打开” 绕过 Gatekeeper,Windows 上 SmartScreen 会弹一次,Linux 上 .AppImage 需要 chmod +x 然后双击。
第一次开
启动之后会问你三件事:
- STT 引擎。本地 Whisper(小)、本地 Parakeet(小、快、多语言)、云端(BYOK)三选一。我选 Parakeet TDT 0.6B v2,模型自动下载到
~/Library/Application Support/openwhispr/models/。 - LLM 引擎(如果要用 AI 助手 / 笔记 AI 动作)。本地 llama.cpp + Qwen 2.5 7B 或者云端 BYOK。我用云端 Anthropic,因为本地 7B 写中文有点弱。
- 快捷键。Dictation 热键、Translation 热键、AI Assistant 热键各设一个。
第一次听写
设好之后按 Dictation 热键,对着说话,松开。文字会粘到你当前光标位置。第一次会有一段” 模型在准备” 的延迟,本地 Parakeet 大概 0.5-1 秒,Whisper Large 慢些。
第一次会议转录
进一个 Zoom 会议,OpenWhispr 会弹一个通知问你” 开始转录?”。同意,开始。会议结束自动存到 Notes。
MCP 集成
装好之后 OpenWhispr 自己跑一个 MCP server 在 localhost。Claude Code /opencode/ Cursor 的 MCP 配置加:
1 | { |
之后你的 agent 就能读写你的笔记库了。
命令行开发
如果你想自己改:
1 | git clone https://github.com/OpenWhispr/openwhispr.git |
要求 Node.js 24+。看 examples/custom-asr-shim/ 目录有个自定义 STT 后端的示例,针对非 OpenAI 兼容的 ASR API。
哪些 API 可以接
OpenWhispr 的”Self-Hosted” 听写模式默认按 OpenAI 的 wire format 跟 ASR 服务通信:客户端发 multipart/form-data 到 {Server URL}/audio/transcriptions,读回 JSON {"text": "..."}。这套协议 OpenAI、Fireworks、xAI、Groq Whisper、Deepinfra、本地 faster-whisper-server 都支持。
但很多企业级 ASR 不走这套,StepFun StepAudio、阿里通义、百度智能云、腾讯云 ASR、华为云 SIS、讯飞听见。这些厂家的请求格式、音频编码、响应结构都是自家协议。
examples/custom-asr-shim/ 仓库里给了一个 Python shim 模板,是个监听 localhost:8765 的小服务,OpenWhispr 跟它说 OpenAI 话,它翻译成厂家话,厂家回复再翻译回 OpenAI 的 JSON。文件标准库 + ffmpeg,零额外依赖。
1 | OpenWhispr --multipart audio--> shim (localhost:8765) --vendor format--> ASR API |
shim 的输入是录音的 WebM/Opus,ffmpeg 转码成厂家要的格式(pcm_s16le、wav、mp3 各家不一样),然后用厂家的 SDK 调,response 包成 {"text": "..."} 返回。
仓库里 stepaudio_shim.py 是 StepAudio 2.5 的现成实现,shim_template.py 是个空壳等你自己填。test_shim.py 跑本地单测。
macOS 上的私有 API 适配
这个仓库让我意外的一点是 resources/mediaremote-adapter/ 这个目录的存在。MediaRemote 是 macOS 上一个私有 framework,承载 Now Playing、远程控制 iTunes / Music 媒体键、play_pause 键、next_track 键这些能力。Apple 一直没正式开放它,但用 Objective-C 直接调私有符号的代码几十年来一直有。
OpenWhispr 写了一整个 Objective-C 的 MediaRemote 适配层(adapter/ 目录下二十多个 .m / .h 文件)来捕获 macOS 系统级媒体控制事件。这部分代码 Apple 不接受到 App Store,所以 OpenWhispr 走的是官网下载 + Homebrew Cask,不上 Mac App Store。
这种” 因为 Apple 不让你用某个能力,所以项目自己写私有 framework 适配层” 的做法是 macOS 桌面应用里少见但很有必要的取舍。WisprFlow 走 App Store,所以它没有这个能力,它在 macOS 上不能响应系统媒体键事件。OpenWhispr 走官网下载,所以它能。
Windows 上的 AEC helper
native/meeting-aec-helper/ 是 C++ 写的 Windows 音频捕获 helper。aec_processor.cc 跑声学回声消除(Acoustic Echo Cancellation),处理会议场景下扬声器和麦克风之间的回声。这块在 Windows 上是写死的低层 audio API,Electron 的 Web Audio API 处理不了高质量的 AEC,所以单独写了个 native 模块。
CHANGELOG 里 1.9.2 那条 “Windows meetings that recorded only your own voice” 修复就是这块的,它检查 Windows loopback capture 报告” 健康” 之后是否真的在捕获音频,如果不健康就切到 fallback 模式。这种细节的商业产品看不见的开源成本,OpenWhispr 走完了。
Hotkey 配置
默认全局热键:
- Dictation:右 Option 键(macOS)/ 右 Ctrl 键(Windows / Linux)
- Translation:Option + Shift + T
- Voice Assistant:Option + A
这些热键在 Settings → Hotkeys 里改。改的时候要注意冲突:很多 app 抢 Option 键,Mac 用户的 Caps Lock 我设成 Voice Assistant,习惯之后非常顺。
三种热键行为完全不同:
- Dictation 说中文粘中文,说英文粘英文,在当前光标位置粘。
- Translation 把源语种按 ISO code 转成目标语种,粘翻译结果。源语种在 Settings → Languages 里设。
- Voice Assistant 把话作为指令发给 agent,agent 自己决定粘什么。可能是粘贴 agent 的回复,可能是修改选中的文字,可能是把答案放进剪贴板。
我自己的用法:Dictation 写文档,Translation 写英文邮件,Voice Assistant 调 MCP 工具。
BYOK 配置路径
进 Settings → Cloud:
- 选 Provider(OpenAI、Anthropic、Gemini、Groq、OpenRouter、Tinfoil、xAI、Mistral、Corti、Liquid AI 等等)。
- 填 API key,OpenWhispr 存在本地 SQLite 加密表里。
- 选 Model。
OpenWhispr 的 LLM 调用点有三个:
- Voice Assistant:用户说话 → 转录文字 → 发给 LLM 跑 agent → agent 调工具 → 回答。这个路径可以用云端 LLM。
- Notes AI Actions:写完笔记选一段,让 AI 总结 / 改写 / 翻译 / 抽 todo。可以用云端也可以用本地。
- Meeting Summary:会议结束自动跑一遍 LLM 把转录整理成会议纪要。可以用云端也可以用本地。
BYOK 模式下所有 token 计费走你自己的 provider 账单,OpenWhispr 不抽成。OpenRouter 是给想要一个 key 调所有 model 的人用的统一入口。
我自己的 LLM 路由:
- Voice Assistant 用 Anthropic Claude Sonnet 4.5(中文表达力强)
- Notes AI 用本地 Qwen 2.5 7B(写中文摘要够用)
- Meeting Summary 用 OpenAI GPT-5(结构化输出最稳)
从 Granola 迁过来
CHANGELOG 1.9.1 加了一条 “Import your Granola history”。Granola 是 OpenWhispr 最大的商业对手之一,OpenWhispr 主动做了迁入工具。
入口在 Settings → General,喂 Granola 官方的 CSV 导出(Settings → Export in Granola),它会把会议笔记连同原始日期、转录段、speaker 名字一起迁过来,落到”Imported” 文件夹。重新跑一次导不会重复(idempotent)。
这件事的工程量比看起来大。Granola 的 CSV 不公开 schema,speaker 名字、segment 时间戳、note 和 transcript 的关系都得猜。OpenWhispr 的解法是” 按导出标签去匹配”,跑用户手头的真实样本回归测试,不靠官方文档。
类似的逻辑可以套到 WisprFlow 迁移。WisprFlow 没有公开导出 API 的话就只能手动复制转录,但 OpenWhispr 的笔记是 Markdown + metadata 结构,粘贴进 Obsidian 之类的工具还能用。
网络白名单
如果你在公司防火墙后面跑 OpenWhispr,docs/network-allowlist.md 给了完整列表。Self-Hosted 听写走你自己部署的 ASR 服务、Cloud 模式走 Neon + Stripe + 各 LLM provider、MCP server 走 localhost。docs 明确列了每个域名的访问目的和频率。
这条对金融 / 医疗 / 律所这些强制审计场景有用,IT 给防火墙放行的依据就是这份白名单。
七、跟 WisprFlow / Granola 怎么比
| 维度 | WisprFlow | Granola | OpenWhispr |
|---|---|---|---|
| 价格 | $144 / 年 起 | $14 / 月 | 免费(Cloud 订阅另算) |
| 听写 | 云端 | 云端 | 本地 / 云端 BYOK |
| 会议转录 | ✅ | ✅ | ✅(本地说话人分离) |
| AI 助手 | 基础 | 强(Notion 生态) | ✅(任意 LLM) |
| MCP | ❌ | ❌ | ✅ |
| 声纹识别 | 付费 | ❌ | ✅(本地) |
| 跨平台 | macOS / Windows | macOS | macOS / Windows / Linux |
| 源码 | 闭源 | 闭源 | MIT |
| 自托管 | ❌ | ❌ | ✅ |
如果你在意一件事:你的语音数据走谁的服务器。WisprFlow 和 Granola 都明确走云端。OpenWhispr 默认本地。
如果你在意生态集成:Granola 在 Notion 生态里最深。WisprFlow 在 IDE 编辑器集成上做得好。OpenWhispr 在 MCP 这条线最开放。
如果你在意多语言:Parakeet TDT 在中英日韩法德西意葡俄阿拉伯十几个语种上的字错率都低于 8%,本地跑。Whisper Large v3 多语言也行但慢。WisprFlow 和 Granola 走云端所以是云端模型的能力,云端更新频繁但你也看不到具体是哪个版本。
如果你在意长期成本:一年 $144 听写订阅,换个 16GB 内存的 M4 MacBook 本地跑 OpenWhispr 是 $1200 一次性,听写免费用五年。商业账和隐私账分开算。
八、适合谁
需要每天写很多文字的人。 写月度复盘、写客户邮件、写长文。键盘流速是思维流速的天花板这件事你感受一次就回不去了。
对语音数据敏感的人。 记者、律师、医生、研究者。客户数据、医学记录、未公开的研究数据。SaaS 类听写工具把这些发上云这件事让很多人心里不踏实。
用 AI 编码 agent 的人。 MCP server 把笔记库接到 Claude Code、opencode 之后,agent 改完代码、跑完实验、做完调研,可以自动把关键内容写进你的笔记系统。WisprFlow / Granola 没这个接缝。
已经投资了 Whisper / 本地 LLM 的人。 OpenWhispr 是把这些组件串成桌面应用的那一层胶水。
Linux 用户。 商业听写工具基本都不支持 Linux。OpenWhispr 是少数有 .AppImage/.deb/.rpm 三种 Linux 包的之一。
会议多的团队。 自动检测 + 说话人分离 + 声纹识别 + 跨会议搜索,这套组合在商业产品里要么没有要么按企业版收费。
九、局限
Intel Mac 用户吃亏。 前面说过了,ONNX Runtime 1.24 之后不再发 macOS x86_64 二进制,本地声纹识别、说话人 embedding 这种 ONNX 跑的功能会失效。Apple Silicon、AMD、Intel 桌面 / 笔记本都正常。
Apple Silicon 的 8GB 机型跑得慢。 本地 Parakeet TDT 0.6B v2 跑起来大概 1.5 GB 显存,加上 embedding 模型、LLM、Electron 本身、操作系统,16 GB 起步才舒服。8 GB 机型只能用云端。
第一版更新频繁。 项目 2025 年 6 月建库,到现在 14 个月,已经迭代了 41 个 Electron 版本。功能加得快意味着 breaking change 也多。生产环境上稳不稳定需要自己测。
MCP server 还在打磨。 docs 上写了,但没有 SDK 文档完备的覆盖。我配到 Claude Code 的时候遇到一个 notes.create 工具名变更(之前叫 add_note),翻 changelog 才找到。如果生产环境依赖 MCP,建议自己包一层 wrapper。
中文识别率 Parakeet TDT 强但 LLM 弱。 ASR 用本地 Parakeet 转中文不错,但本地 7B LLM 处理中文的总结、改写还是弱。云端 Claude / GPT 4o 处理中文好但又上云了。这是个 trade-off。
Cloud 模式我没试。 写这篇文章的时候我用的是本地模式 + Anthropic BYOK。Cloud 模式(Neon Postgres 同步、Team Space 共享、SSO)需要登录企业版测试,本地版用不到。
和 Apple macOS 自带听写的比较。macOS Sequoia 之后 Apple 把自带听写从” 凑合能用” 修到了” 能用”。如果你只是偶尔用一下、纯英文、懒得装第三方,Apple 自带就够了。OpenWhispr 的优势在多语言、AI 助手、MCP、本地、跨平台这几条上。Apple 自带一个都不占。
333 个 open issues。 项目热度还行,issue 处理速度在 open source 项目里算中等。release 节奏快,bug 修得也算勤快。
几个不适合装的场景
你在录播客或者做音频后期,OpenWhispr 不合适。 它是听写 / 转录工具,不是 DAW。麦克风阵列、降噪、混音这些它做不了。
你是 macOS App Store 强迫症用户,OpenWhispr 也上不了 Store,因为用了 MediaRemote 私有 framework。只能去官网下载或者 brew install --cask openwhispr。
你只在 iPhone /iPad 上用,它不移动端。 iOS 听写 Apple 自带已经够好,OpenWhispr 没做 iOS 版本。
你需要的是企业级合规审计日志,本地版不写 audit log。 这个得 Enterprise + 集中部署,OpenWhispr Cloud 那条线。
十一、它在 AI Coding 生态里意味着什么
最后这一段留给非 OpenWhispr 用户也想看的人。
OpenWhispr 是第一批把 MCP server 当一等公民来做的笔记类产品。在它之前,笔记类工具(Obsidian、Bear、Notion、Roam Research)的 AI 集成都是 SaaS 化、专有 API、没法被 agent 直接调。
MCP server 暴露之后,agent 工具链里多了一个节点:你的笔记。这个节点可以是 OpenWhispr、可以是 Obsidian、可以是 Logseq、可以是任何接 MCP 的产品。
我自己在 Claude Code 里配了 OpenWhispr 的 MCP server 之后,agent 改完代码会自动把 commit message 写进笔记的” 今日代码” 分类下,研究 agent 跑完实验会把关键发现写进” 实验笔记” 分类下。我的笔记系统第一次成了一个能被 agent 主动操作的对象。
这种” 个人知识库 + agent 主动读写” 的范式,2026 年开始真正变成产品形态。OpenWhispr 是这个范式里第一个同时满足” 开源、本地、跨平台、AI 助手、笔记库、MCP 接缝” 六个条件的工具。
WisprFlow 走 SaaS、Granola 走 Notion 生态,OpenWhispr 走的是” 本地 + 开放协议” 这条。它的 7.4k stars 在这个范式下不显得小,因为目标用户本来就是在意这六条的人。
几个我踩过的坑
热键冲突。 macOS 上 Option 键被很多 app 抢(Spotlight、输入法切换、Karabiner 之类)。我自己的方案是 Option+A(Voice Assistant 留一个不冲突的)和 Caps Lock(设成 Dictation)。
模型下载路径。 默认在 (macOS)。如果你磁盘空间不够,可以改 settings 里的 model 路径到外接 SSD。
Electron 41 的内存问题。 第一周我的 MacBook Pro M3 Pro 32GB 同时跑 OpenWhispr + Claude Code + 浏览器,OpenWhispr 单进程占用 1.8 GB。CHANGELOG 1.8.3 修了 1.9.0 引入的 CPU 回归,内存问题还有但可控。
会议检测漏报。 我试过 Slack Call、Discord 这类,OpenWhispr 不一定自动检测。解决方案是手动按会议热键开始转录。
Speaker 标签串了。 多人一起说话的时候,speaker 标签会跳。sherpa-onnx 的 diarization 在重叠语音上不完美。Post-processing 的话用 Notes 的「手动合并 speaker」功能能修。
MCP 工具名变更。 1.8.x 之前是 / 这种命名,1.9.x 改成了 / 。我配到 Claude Code 的时候遇到一次,PR 链接和 changelog 里能找到。
团队用起来怎么样
我在自己团队四个人里推了 OpenWhispr,两个人留下来了。留下来的是因为他们会议多 + 文档量大,另外两个因为会议少 + 不写文档退了。
团队用的关键转折点是 Team Space。三个人共享一个工作空间,自动同步会议笔记、共享「会议纪要」文件夹、共享「客户对接」分类。Team Space 是 server-enforced 成员管理,加入退出通过邀请链接,IT 可以审计。
我们当时是手动做会议记录的。三个人同时进同一个会议,三个人各自的 OpenWhispr 都自动转录,结束后三份转录自动 merge 到 Team Space 的同一份笔记。speaker 标签是 fingerprinted 的,跨三份转录同一个 speaker 是同一个 tag。
这件事商业产品也能做,但 OpenWhispr 是开源的,我们自己 host Cloud 后端,数据在自家服务器上。
一个具体的转录例子
上周三我有一段 47 分钟的会议录音想转录,本地 Parakeet 跑完用时 3 分 22 秒(MacBook Pro M3 Pro),文本 8,341 字,speaker 标签完整。同一段录音放云端 OpenAI Whisper Large v3 跑 1 分 50 秒,但成本大约 0.12 美元。
本地版本 1.8 倍慢但免费,云端快 0.8 倍但要钱,文字质量上 Parakeet 略输 Whisper Large v3 但差距不大。我的判断:日常用本地,重要录音用云端重要备份。
speaker 分离这件事本地版做得好,Whisper API 那边只给纯文本没有 speaker tag。OpenWhispr 把本地 speaker 分离做成一个独立模块,配 sherpa-onnx 跑,模型 200 MB 多,下载一次。
我之前以为我不需要语音输入
我工作流里不写代码的部分很少,但写月度复盘、写客户邮件、写文档这些事一直在拖。一开始我以为这是因为我懒。后来我才意识到这是因为我打字速度跟不上组织语言的速度。
键盘和语音最大的差别不是输入带宽,是「草稿」属性。打字时每一个字都要在脑子里定型才按得下去,语音可以把半成型的句子先放出来,事后改。文档初稿用语音,最后一遍用键盘润色,是我的工作流。这件事其他工具替代不了。
十二、一天的工作流是怎么跑起来的
我没有给它写十倍效率那种话术,但用了一个月之后我注意到我自己的工作流慢慢围着它在转了。
早上九点,我对着电脑说月度复盘的开头。Dictation 热键按住,说完,松开。文字粘进 Markdown 文件。这一段大概 1000 字要 5 分钟说出来,比手写快三倍。
十点,跟客户开 Zoom 会议。OpenWhispr 自动检测到会议开始,弹卡片问要不要转录,同意。会议结束它把转录存进 Notes,speaker 标签完整。AI 动作跑一遍「生成会议纪要 + 抽出 todo」,产物放 Notes 的「会议」分类下。整个过程我没动键盘。
中午,回复客户邮件。Translation 热键,按住,说中文,自动翻译成英文,粘到 Gmail。客户是中英混着回的,回邮件也是来回切语种,Translation 热键比来回复制粘贴快。
下午,写代码到一半想查某段历史。Voice Assistant 热键,说「帮我在~/projects/foo 找上次我改 PaymentService 的那次 commit,写成一句话发到 OpenWhispr 的今日代码笔记里」。agent 调 git 工具找到 commit,调 MCP server 把内容写进笔记。我没碰鼠标。
晚上整理笔记。用 AI Actions 把白天的几条散笔记总结成一份日报,存在 OpenWhispr 里,markdown 格式,明天可以接着改。
一天结束,所有当天产生的内容(手写文档、邮件、会议、代码 commit)都自然汇聚到 OpenWhispr 的笔记库。下次写月度复盘的时候,我可以一次性搜出来。
这件事的商业产品都能做,但商业产品会在云端做这件事,而这件事我的数据应该在本地。
OpenWhispr 的 CHANGELOG 写得非常工程化。1.9.2 那段 Windows desktop sign-in 修复的描述是这样的:
Since 1.9.1, clicking Google, Microsoft, Apple, or SSO on Windows showed a spinner and then nothing. Browser links were routed through
explorer.exe, which silently opens a File Explorer window instead of the browser for any URL carrying a query string
这条 changelog 不仅告诉用户” 修好了”,还告诉用户根因(explorer.exe 处理带 query string 的 URL 时静默打开 File Explorer 而不是浏览器)和影响范围(所有走桌面客户端的 OAuth 登录都受影响,包括日历连接和 Stripe checkout)。这是给工程师看的 changelog,不是给市场看的 changelog。
1.9.1 那条 “No trailing space after Chinese or Japanese text” 也很有代表性。dictation 之后粘文字会在末尾追加一个 ASCII 空格,连续两段中文之间就多了一个违和的空格。这条按 East Asian typography 规范修,日文汉字之间不空格、中文之间不空格、韩文之间需要空格(因为现代 Hangul 用空格分词跟英文一致)。这种细节的商业产品不会写进 changelog,但 OpenWhispr 写了。
#1823 之类的 issue 编号全程追溯,PR 链接在 commit message 里。这种透明度是商业产品给不了的。