OpenSuperWhisper 评测:macOS 上最被低估的开源语音转文字工具?
30秒结论:OpenSuperWhisper 是一个基于 OpenAI Whisper 模型的 macOS 原生听写(dictation)应用。如果你受够了 macOS 自带听写的间歇性抽风,或者不想每月交钱给 Otter.ai,这个免费开源项目值得一试。但别期待开箱即用——你需要自己配置模型、处理依赖,而且目前只支持 macOS。
适合人群:macOS 重度用户、需要离线语音转文字、对隐私敏感、愿意折腾配置的开发者。
不适合:Windows/Linux 用户、不想碰终端的人、需要实时流式转写(目前不支持)。
核心功能:代码实操
1. 安装部署
# 克隆仓库
git clone https://github.com/Starmel/OpenSuperWhisper.git
cd OpenSuperWhisper
# 安装依赖(需要 Python 3.10+)
pip install -r requirements.txt
# 直接运行
python app.py
坑点1:requirements.txt 里没写版本号,我踩了 numpy 版本冲突的坑。建议手动指定:
pip install numpy==1.26.0 torch==2.1.0 whisper==20231117
坑点2:macOS 14 Sonoma 上需要手动授权麦克风权限。第一次运行会 crash,因为没处理 PermissionError。workaround:在 System Settings > Privacy & Security > Microphone 里手动勾上终端或 Python 的权限。
2. 基本使用
启动后会在菜单栏出现一个小图标(类似 macOS 原生听写)。快捷键是 Option + Space(可自定义)。
核心逻辑:按下快捷键 → 录音 → 松开 → 调用 Whisper 转写 → 结果写入当前光标位置。
代码层面,核心函数在 whisper_handler.py 里:
# 简化版核心逻辑
import whisper
import sounddevice as sd
import numpy as np
class WhisperHandler:
def __init__(self, model_size="base"):
self.model = whisper.load_model(model_size)
self.sample_rate = 16000
def transcribe_from_mic(self, duration=5):
# 录音
recording = sd.rec(
int(duration * self.sample_rate),
samplerate=self.sample_rate,
channels=1
)
sd.wait()
audio = recording.flatten().astype(np.float32)
# 转写
result = self.model.transcribe(audio, language="zh")
return result["text"]
实测:默认 model_size="base" 时,中文准确率约 85%。换成 "large-v3" 能到 92%,但首次加载要 2GB 内存,转写一条 10 秒语音需要 8-12 秒(M1 Pro 芯片)。
3. 自定义快捷键
config.yaml 里可以改:
hotkey:
modifier: "option"
key: "space"
model:
size: "base" # 可选: tiny, base, small, medium, large-v3
device: "cpu" # 或 "mps" (Apple Silicon)
output:
paste_delay: 0.3 # 转写后粘贴延迟,防止焦点丢失
注意:device: "mps" 在 macOS 14.2 上会报 MPS backend not available。需要安装 PyTorch 的 MPS 版本:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
性能测试
测试环境:MacBook Pro M1 Pro (16GB),macOS 14.2,Whisper large-v3 模型。
| 场景 | 音频时长 | 转写耗时 | 准确率 | 显存占用 |
|---|---|---|---|---|
| 英文新闻(清晰) | 10s | 6.2s | 97% | 1.8GB |
| 中文对话(嘈杂) | 10s | 11.8s | 89% | 2.1GB |
| 中文技术术语 | 5s | 5.5s | 82% | 1.9GB |
| 英文+中文混合 | 8s | 8.1s | 78% | 2.0GB |
结论:英文表现优秀,中文在安静环境下可用。技术术语(API、GitHub、React)经常识别错,比如 "OpenAI" 识别成 "欧喷爱"。
对比 macOS 原生听写:
| 指标 | OpenSuperWhisper | macOS 原生 |
|---|---|---|
| 离线可用 | ✅ | ✅ |
| 中文准确率 | 85-92% | 90-95% |
| 延迟 | 5-12s | 1-2s |
| 自定义模型 | ✅ | ❌ |
| 隐私 | 完全本地 | 部分本地 |
注意:macOS 原生听写在 14.2 上有个 bug——连续使用 30 分钟后会突然失效,必须重启。OpenSuperWhisper 没这问题。
踩坑记录
坑1:模型下载失败
第一次运行时,Whisper 会从 Hugging Face 下载模型。国内网络大概率超时。
解法:手动下载模型文件放到 ~/.cache/whisper/:
# 以 base 模型为例
wget https://openaipublic.azureedge.net/main/whisper/models/base.pt
mv base.pt ~/.cache/whisper/
坑2:快捷键冲突
Option + Space 和 macOS 自带的 Spotlight 快捷键冲突。如果你也用 Option + Space 唤出 Alfred/Raycast,会导致两败俱伤。
解法:改 config.yaml 里的快捷键,或者先在系统设置里关掉 Spotlight 的快捷键。
坑3:转写结果乱码
偶尔会出现中文乱码,特别是当焦点在终端或某些非 Cocoa 应用里时。
根因:pyobjc 的 pasteboard 操作在非沙盒应用里不稳定。
workaround:手动加个 time.sleep(0.5) 在粘贴之前:
# 在 paste_handler.py 里
import time
def paste_text(text):
time.sleep(0.5) # 等待焦点稳定
# 原有的粘贴逻辑...
坑4:CPU 占用高
即使 idle 状态,也会占用 8-15% CPU(M1 Pro)。因为主循环里有个 while True: time.sleep(0.1) 在轮询快捷键。
解法:改用 pynput 的 listener 模式,但作者没实现。我自己改成了:
from pynput import keyboard
def on_activate():
# 录音逻辑
pass
with keyboard.GlobalHotKeys({
'<option>+<space>': on_activate
}) as h:
h.join()
这样 idle 时 CPU 占用降到 0.5% 以下。
横向对比
| 特性 | OpenSuperWhisper | MacWhisper | Otter.ai | macOS 原生 |
|---|---|---|---|---|
| 价格 | 免费开源 | $29/年 | $16.99/月 | 免费 |
| 离线 | ✅ | ✅ | ❌ | ✅ |
| 中文 | 良 | 优 | 中 | 优 |
| 自定义模型 | ✅ | ❌ | ❌ | ❌ |
| 实时转写 | ❌ | ✅ | ✅ | ✅ |
| 导出格式 | 纯文本 | TXT/SRT | 多种 | 纯文本 |
| 开源 | ✅ | ❌ | ❌ | ❌ |
| macOS 版本 | 14+ | 12+ | 通用 | 14+ |
| 隐私 | 100%本地 | 本地 | 云端 | 本地 |
MacWhisper 是付费闭源方案,中文准确率比 OpenSuperWhisper 高约 5%,而且支持实时转写。但价格不算贵($29/年)。
Otter.ai 适合团队协作,有自动会议记录、说话人识别。但中文支持很烂,而且数据在云端。
macOS 原生 其实最省心,准确率也最高。但那个 30 分钟 bug 实在烦人,而且不支持自定义模型。
最终评价
打分(满分5星)
| 维度 | 评分 | 说明 |
|---|---|---|
| 功能 | ⭐⭐⭐ | 基础听写够用,缺少实时转写和导出功能 |
| 性能 | ⭐⭐⭐ | 中文准确率可接受,延迟偏高 |
| 性价比 | ⭐⭐⭐⭐⭐ | 免费开源,没有比这更值的了 |
| 文档 | ⭐⭐ | README 太简陋,很多细节要读源码 |
| 社区 | ⭐⭐⭐ | 494 stars,issue 响应速度一般 |
推荐场景
- 个人开发者:需要快速记代码思路、写注释。配合 VS Code 用,比打字快 3 倍。
- 隐私敏感用户:所有数据本地处理,不联网。
- Whisper 爱好者:想研究 Whisper 在 macOS 上的集成,这个项目代码量小(约 2000 行),适合学习。
不推荐场景
- 会议记录:没有说话人识别,多人对话一团糟。
- 长音频转写:没有文件导入功能,只能实时录。
- Windows/Linux 用户:目前只支持 macOS。
未来期待
如果作者能加上:
- 文件导入转写
- 实时流式转写(用 faster-whisper)
- 说话人识别(用 pyannote-audio)
这个项目会直接威胁 MacWhisper 的生存空间。但目前,它只是一个"能用但不够优雅"的开源替代品。
试用链接
- OpenSuperWhisper 官网: https://github.com/Starmel/OpenSuperWhisper
如果你在找 2025 年 best AI tools,这个工具值得放进你的工具箱。虽然 OpenSuperWhisper 评测 显示它还有不少坑,但作为免费方案,它已经比 macOS 原生听写更可控了。如果你还在犹豫 OpenSuperWhisper 好用吗,我的建议是:花 30 分钟配置一下,如果不满意再删掉也不亏。
how to use OpenSuperWhisper 的关键就三步:装依赖、改配置、按快捷键。如果你需要更详细的 OpenSuperWhisper 中文教程,可以翻翻 GitHub 的 issue 区,虽然文档少,但社区里已经踩过的坑都写在 issue 里了。
Top comments (0)