digimata/quill · 上手攻略
- 仓库:digimata/quill
- 链接:https://github.com/digimata/quill
- 分类:macOS · 录音 · 语音转写 · 本地优先
- 作者:Jay
- 更新:2026-08-01
这是什么
quill 是一个超轻量、纯本地运行的 macOS 会议录音 + 自动转写工具。一个菜单栏图标,点击录音,再点停止,自动在机器上完成转写,生成带说话人标签的文本记录。所有数据永不离开本机,无需账户、无需联网、无需订阅。
它名字的灵感来自羽毛(羽毛笔),是 digimata 工具链中的"录音 + 转写"担当(兄弟项目是 parrot)。整个工具是一个 Swift 二进制文件 + 菜单栏 UI,不需要 App Bundle,直接跑在状态栏。
解决什么问题
会议记录有几条路:
| 方案 | 隐私性 | 转写质量 | 成本 |
|---|---|---|---|
| 手动记笔记 | ✅ 完全隐私 | 依赖人工 | 免费但费时 |
| Otter.ai / Fireflies 等在线服务 | ❌ 数据上云 | 高 | 订阅制 |
| macOS 语音备忘 | ✅ 本地 | 一般 | 免费但无会议优化 |
| quill | ✅ 完全本地 | 高(Parakeet ML) | 免费开源 |
quill 的核心差异是隐私 + 质量兼得:用 Whisper 级别的 on-device 模型(Parakeet TDT 0.6B v2,Apple Silicon 上约 20 秒/小时),不需要把会议音频发给任何第三方。
快速安装
环境要求
- macOS 15+(核心依赖:Core Audio process taps,macOS 14.2+ 的
AudioHardwareCreateProcessTapAPI) - Apple Silicon 强烈推荐(转写速度约 20 秒/小时;Intel Mac 会更慢)
- 首次转写时自动下载模型(约 600 MB),只需下载一次
编译安装
cd quill
swift build -c release
sudo cp .build/release/quill /usr/local/bin/quill
可选:开机自启
quill install --launch-at-login
# 卸载
quill install --uninstall
快速检查
quill doctor
doctor 子命令检查:麦克风权限、System Audio Recording 权限、录音目录、模型缓存状态。第一次使用前强烈建议先跑一遍。
核心用法
录音
- 在终端运行
quill(或从 LaunchAgent 后台运行) - 点击菜单栏的羽毛图标 → Start Recording
- 首次使用会弹出权限申请框,依次授权: - 麦克风权限(System Settings → Privacy & Security → Microphone) - System Audio Recording 权限(System Settings → Privacy & Security → Screen & System Audio Recording)
- 录音中:图标变红 + 显示运行计时器;macOS 顶部状态栏也有紫色录音指示灯
停止与转写
- 再次点击羽毛图标 → Stop Recording
- 转写自动开始(菜单显示进度),完成后系统通知推送
- 转写完成后,每次会话在
~/Recordings/<yyyy.MM.dd-HHmm>/目录下生成以下文件:
| 文件 | 内容 |
|---|---|
mic.caf |
麦克风音轨(AAC,本机麦克风输入) |
system.caf |
系统音频(AAC,Mac 播放的所有声音) |
meta.json |
开始/结束时间戳、总时长、各音轨起始偏移 |
transcript.json |
结构化转写结果(引擎信息 + 时间戳 + 说话人标签) |
transcript.md |
可读的 Markdown 版转写 |
transcribe.log |
本次转写进度/错误日志 |
为什么分两条音轨?
麦克风录"我说的",系统音频录"对方/会议对面说的"——这本身就是免费的二人分离(diarization),不需要额外的说话人识别模型。语音模型在单条干净音轨上效果更好,两轨分开转写再按时间戳合并,准确率更高。
CAF 格式是有意选择的:不同于 m4a,它不需要 finalization pass。如果进程在会议中途崩溃,所有已写内容都已完整可读。
进阶配置
配置文件在 ~/.config/quill/config.json(可选):
{
"recordings_dir": "~/Recordings",
"transcription": {
"enabled": true,
"engine": "parakeet"
},
"mic_voice_processing": false
}
| 配置项 | 说明 |
|---|---|
recordings_dir |
录音存储路径。优先级:--out > config > ~/Recordings |
transcription.enabled |
设为 false 可仅录音不转写 |
mic_voice_processing |
开启苹果回声消除(麦克风录的是扬声器播放的声音时开启;戴耳机时关闭) |
on_stop |
停止录音后执行的 shell 命令(参数为 session 目录),可对接摘要/归档/索引流程 |
on_stop 钩子示例
想把每次转写自动发给 AI 摘要:
{
"on_stop": "/usr/local/bin/my-summary-hook"
}
典型适用场景
- 远程会议记录(Zoom、Google Meet、Teams 等):同时录系统音频 + 麦克风,双轨分离
- 一对一访谈:本地转写,隐私无忧
- 线上课堂/讲座:录系统音频保现场感,麦克风录个人笔记
- 个人语音备忘:快速菜单栏录音 + 转写,无需打开 App
坑与注意
⚠️ macOS 15+ 强制要求
Core Audio process tap(AudioHardwareCreateProcessTap)是 macOS 14.2+ 才引入的 API,且需要 macOS 15+ 才能稳定运行。旧系统用户无法使用此工具。
⚠️ 录音无声?先查权限
如果录出来的文件是静音,第一时间检查: - System Settings → Privacy & Security → Screen & System Audio Recording → quill 已开启 - System Settings → Privacy & Security → Microphone → quill 已开启
⚠️ 全局系统音频 = 隐私注意
quill 的系统音频录制会录到 Mac 播放的一切声音:音乐、通知声、旁边的人说话。开会时记得关掉 Spotify,也注意不要在录音时播放隐私内容。
⚠️ Parakeet v2 是英文限定
当前 Parakeet TDT 0.6B v2 仅支持英语。其他语言的转写需等 WhisperKit fallback(large-v3-turbo)上线。
⚠️ WhisperKit fallback 的上线时间在文档中未明确标注,建议关注 GitHub Releases。
⚠️ Intel Mac 可用但较慢
Apple Silicon 的 Neural Engine 能加速 Parakeet 模型推理;Intel Mac 使用 CPU 推理,转写速度会明显更慢,约 60–90 秒/小时(估算,待实测验证)。
⚠️ 模型约 600 MB
首次转写前会下载模型(约 600 MB),建议在可靠的的网络环境下完成首次模型拉取,避免重要会议前临时抱佛脚。
⚠️ 进程崩溃不丢数据
CAF 格式流式写入,崩溃后已写内容不丢失。但如果 macOS 本身崩溃(不是 quill 进程),文件系统层面可能有丢失风险(低概率)。
与同类对比
| 工具 | 平台 | 隐私 | 转写引擎 | 是否免费 |
|---|---|---|---|---|
| quill | macOS | ✅ 完全本地 | Parakeet(Core ML) | ✅ 开源免费 |
| Otter.ai | 全平台 | ❌ 需上传 | Whisper(云端) | 订阅制 |
| Fireflies.ai | 全平台 | ❌ 需上传 | 自研 + Whisper | 订阅制 |
| macOS 语音备忘 | Apple | ✅ 本地 | 苹果语音识别 | ✅ 免费 |
| Whisper Desktop | 全平台 | ✅ 本地 | Whisper | ✅ 开源免费 |
| Parrot(兄弟项目) | macOS | ✅ 本地 | 同系 | ✅ 开源 |
quill 的独特优势:唯一在"完全本地 + 双轨分离 + 菜单栏极简 UI + 开源免费"四个维度同时做到的产品。它的双音轨设计(mic vs. system)是真正的二人会议分离方案,不需要云端处理。
一句话结论
如果你需要 macOS 上完全本地、隐私优先的会议录音转写工具,且对英文会议质量有较高要求,quill 是目前最干净利落的选择——一个二进制文件、不需要账户、模型本地跑、双轨分离说话人,安装即用。
参考来源
- GitHub README:https://github.com/digimata/quill
- GitHub 兄弟项目 parrot:https://github.com/digimata/parrot
- FluidAudio / Parakeet Core ML:https://github.com/FluidInference/FluidAudio