跳到正文

目录

Meetily 深度拆解:开源隐私优先的 AI 会议助手,本地 Whisper/Parakeet 实时转写 + 多模型总结

快速信息卡

属性
GitHub Stars29,700+
GitHub Forks3,200+
主要语言Rust
开源协议MIT
桌面框架Tauri(Rust 后端 + Next.js 前端)
当前版本v0.4.0
转写引擎Whisper(whisper.cpp)/ Parakeet(ONNX)
项目定位隐私优先的本地 AI 会议助手

Meetily 深度拆解:开源隐私优先的 AI 会议助手,本地 Whisper/Parakeet 实时转写 + 多模型总结

会议转写工具已经不少,但几乎默认把音频传上云端。Meetily 走的是另一条路:录音、实时转写、AI 总结三条链路全部跑在用户自己的电脑上——转写用本地的 Whisper / Parakeet,总结可以选本地 Ollama 或第三方 API,录音、转写文本、总结结果都存进本地 SQLite。对律师、医生、企业合规这类对会议内容敏感的人群,这条"本地优先、云端可选"的路线比纯 SaaS 更实际。

本文从它解决的问题、架构分工、引擎选型、构建链路和适用边界几个角度,把 Meetily 拆成可验证的事实。

学习目标

读完本文,你应该能:

  • 说清 Meetily 的隐私边界:哪些环节留在本机,哪些环节可能出网
  • 画出它的分层架构:Next.js 前端如何通过 Tauri 命令与 Rust 后端协作
  • 区分 Whisper 与 Parakeet 两套转写引擎的定位差异
  • 复现三端构建流程,理解 GPU 加速的自动检测逻辑
  • 判断自己的场景该用社区版还是 PRO 版

目录

它到底解决什么问题

Meetily 的 README 把痛点拆成三条:

  1. 数据隐私:README 援引 IBM 2024 报告,平均单次数据泄露成本 440 万美元;到 2025 年欧盟已累计开出 58.8 亿欧元 GDPR 罚单;加州当年发生 400 多起非法录音诉讼
  2. 成本控制:云端转写按分钟计费,重度用户每月开销不小
  3. 厂商锁定:主流 SaaS 把数据存在自家服务器,存储位置和保留期限由厂商说了算

针对这三条,Meetily 给出三层解法:

  • 本地转写:Whisper.cpp / Parakeet ONNX 都在用户机器上跑,音频不离开设备
  • 开源模型:转写侧没有 API 调用费,只剩电费
  • 自托管存储:录音、转写、总结都写入本地 SQLite,没有云端副本

难点在于这三条要装进一个"开箱即用"的桌面应用(macOS / Windows,Linux 自构建),而不是让用户自己跑 Docker、配 GPU 服务。这个约束直接决定了它的技术栈选择。

整体架构:一个后端,五块组件

Meetily 是单进程自包含的桌面应用:Tauri 负责窗口和系统事件,Rust 后端承担核心逻辑,Next.js 前端负责界面。官方架构文档(docs/architecture.md)把后端拆成五块组件,各有单一职责:

组件职责
Tauri Core管理窗口与事件,通过命令系统把 Rust 能力暴露给前端
Audio Engine采集麦克风与系统音频,处理后交给转写引擎
Transcription Engine调用本地 Whisper / Parakeet 模型实时转写,支持 GPU 加速
Database本地 SQLite,存会议元数据、转写文本与总结
Summary Engine调用 LLM 生成结构化总结,支持本地 Ollama 或远程 API

前端不直接接触音频和模型推理,一切通过 Tauri Commands 走 Rust。数据流向可以画成一条单向链:

[Audio Engine]        采集麦克风 + 系统音频(ducking 防回授)
[Transcription Engine]   Whisper / Parakeet 本地实时转写(GPU 加速)
[SQLite Database]      会议元数据、转写文本、总结
[Summary Engine]       LLM 生成结构化总结(本地 Ollama 或远程 API)
[Next.js 前端]        界面操作、展示与配置(经 Tauri Commands 调后端)

转写和总结是两条相对独立的链路,中间由 SQLite 承接:转写引擎写入文本,总结引擎读取文本产出纪要。这种拆分让"换转写引擎"和"换总结模型"互不影响,也是后面几节讨论引擎和提供方的基础。

一次会议如何流过系统

把模块串成一个具体场景:你打开 Meetily,点开始,和客户开了一小时会。

  1. 采集:Audio Engine 同时捕获麦克风和系统音频(你的声音 + 对方电脑的播放声),做混合与 ducking,避免扬声器回授。
  2. 转写:音频按片段交给 Transcription Engine,Whisper 或 Parakeet 在本地把语音转成文字;GPU 可用时走 Metal / CUDA 加速。文字实时出现在前端面板。
  3. 落库:转写文本、时间戳、会议元数据写入本地 SQLite。
  4. 总结:会议结束,Summary Engine 把转写文本交给选定的 LLM——本地 Ollama 不出网,Claude / Groq / OpenRouter 走远程——按内置模板生成结构化纪要。
  5. 编辑与导出:在前端编辑器里改总结,然后按需导出。

整个过程里,只有第 4 步选了远程模型时转写文本会出网;音频从头到尾不离开本机。这也是 Meetily 与云端 SaaS 最本质的差别。

引擎选型:Whisper 与 Parakeet 的差异

Meetily 提供两套本地转写引擎,README 的说明是两者都支持、定位不同:

引擎来源定位
WhisperOpenAI(whisper.cpp 移植)多语种成熟、模型档位齐全,适合通用会议与跨国团队
ParakeetNVIDIA,经 ONNX 转换英文低延迟、流式友好,适合英文为主的实时转写

仓库的描述(GitHub about 字段)称其 Parakeet / Whisper 实时转写比常规方案快 4 倍,结合 README 的 GPU 加速与实时转写定位,这个数字主要来自硬件加速和流式处理。实际使用有三个细节:

  1. 模型都在本地:两套引擎的模型文件在用户机器上加载(README 明确"转写模型、录音、转写文本都留在机器上"),不经过任何云端转写接口。
  2. Parakeet 的 ONNX 来源:Acknowledgments 注明使用 istupakov/parakeet-tdt-0.6b-v3-onnx 转换版,对应 NVIDIA TDT-0.6B 模型。
  3. Import & Enhance:把历史录音拖进应用,可以换模型或换语言重新转写(README 标注为 Beta)。

音频捕获与 GPU 加速

音频采集由 Audio Engine 负责,README 明确支持:

  • 麦克风捕获
  • 麦克风 + 系统音频同时捕获,带智能 ducking(压低系统音量避免回授)和 clipping 预防
  • 一次会议同时录下"你的声音 + 你听到的播放声",合成一份待转写音轨

GPU 加速按平台自动启用,不需要用户在界面里选择:

平台加速方式
macOSApple Silicon(Metal)+ CoreML
LinuxCUDA(NVIDIA)、ROCm/HIPBlas(AMD)、Vulkan(跨平台回退)、OpenBLAS/CPU
Windows默认 CPU,CUDA 等加速见 GPU_ACCELERATION.md

关键在于"自动"是怎么实现的。构建脚本 build-gpu.sh / dev-gpu.sh 先定位 package.json,再运行 scripts/auto-detect-gpu.js(或读取 TAURI_GPU_FEATURE 环境变量)探测硬件,然后按探测结果编译 llama-helper 这个 sidecar 二进制,放进 src-tauri/binaries 交给 Tauri 调用。探测优先级是 NVIDIA CUDA → AMD ROCm(hipblas)→ Vulkan → OpenBLAS → 纯 CPU。值得注意的一点:驱动装了不等于加速生效,还必须装好对应的开发 SDK(CUDA toolkit、ROCm、Vulkan SDK 等),否则会回退到 CPU。

构建链路与平台支持

直接安装

  • Windows:从 Releases 下载 x64-setup.exe,图形化安装
  • macOS:从 Releases 下载 meetily_0.4.0_aarch64.dmg(当前仅提供 Apple Silicon 版本)
  • Linux:无预编译包,从源码构建

从源码构建

README 的快速开始给的是:

git clone https://github.com/Zackriya-Solutions/meeting-minutes
cd meeting-minutes/frontend
pnpm install
./build-gpu.sh

注意克隆地址是 meeting-minutes——README 的克隆与发布链接指向这个仓库,与当前展示仓库 meetily 名称不同;当前代码结构是 backend/frontend/docs/llama-helper/scripts/

三端依赖与命令(来自官方 BUILDING.md):

平台依赖构建命令
Linuxbuild-essential、cmake、git./dev-gpu.sh(开发)/ ./build-gpu.sh(生产)
macOScmake、node、pnpm(Homebrew)pnpm tauri:dev / pnpm tauri:build
WindowsNode.js、Rust、Visual Studio Build Tools(C++ 工作负载)、CMakepnpm tauri:dev / pnpm tauri:build

Linux 构建产物是 Meetily_<版本>_amd64.AppImage。macOS 默认启用 Metal 加速;Windows 默认 CPU-only,GPU 加速另见 GPU_ACCELERATION.md

AI 提供方与总结

转写是本地,总结这一步可选本地或云端:

提供方模型位置说明
Ollama用户本地README 推荐默认选项,无 API 费用,全程不出网
ClaudeAnthropic API远程高质量总结
GroqGroq API低延迟推理
OpenRouter第三方聚合一个入口切换多家模型
自定义 OpenAI 兼容端点用户自己的部署接入内网 vLLM、TGI、LM Studio、LocalAI 等,不改代码

自定义端点作为独立配置项开放,企业可以把私有 LLM 服务直接接进来。总结产物是结构化纪要:后端内置一套 prompt 模板,不绑定具体模型;README 的 summary.png 截图展示了实际输出样式。模型越强,结构化程度越好。

适用边界与限制

维度现状边界
操作系统macOS / Windows 桌面,Linux 自构建无 iOS / Android 端
会议接入捕获麦克风 + 系统音频不"加入"会议;Zoom / Meet 里需手动共享扬声器/系统声音,它才能采集到对方
转写语言多语种自动检测Whisper 覆盖更广,Parakeet 以英文为主;中英混合建议优先 Whisper
离线使用支持(README 明确 Works offline)转写全本地,总结选 Ollama 即可完全离线
说话人分离社区版不支持PRO 计划(README 提及 6 月中旬)
导出社区版基础导出PDF / DOCX / Markdown 高级导出属 PRO
日历与自动入会不支持PRO 路线图包含

Meetily PRO 与社区版的边界

Meetily 采用"开源社区版 + 闭源商业版"双轨制:

  • 社区版(MIT):永久免费开源,含本地转写、AI 总结(任意 provider)、基础能力;README 明确 “free & open source forever”。
  • PRO 版:独立代码库,提供更高准确度的转写模型、自定义摘要模板、PDF / DOCX / Markdown 高级导出、自动检测并加入会议、日历集成、面向团队的自托管部署(2–100 用户)、GDPR 审计支持。说话人分离计划 6 月中旬上线,多模型问答(Chat with Meetings)在路线图中。

PRO 与社区版不是同一代码库的功能开关,而是两套代码。社区版持续维护,PRO 上线的新能力(如说话人分离)不会自动回流到社区版。100 人以上或需要托管合规方案的组织,官方引导转向 Meetily Enterprise。

常见问题与故障排查

Q: 转写到底在本地还是云端?

本地。Whisper / Parakeet 模型跑在用户机器上,音频不离开设备。只有总结环节选了远程模型(Claude / Groq / OpenRouter)时,转写文本会发往对应 API。

Q: 怎么接入公司内部的私有大模型?

在总结配置里填自定义 OpenAI 兼容端点,指向你的 vLLM、TGI、LM Studio、LocalAI 等部署即可,不需要改 Meetily 代码。

Q: GPU 加速没生效怎么办?

先确认不是"只装了驱动":NVIDIA 需要 CUDA toolkit(nvcc 可用),AMD 需要 ROCm(hipcc 可用),Vulkan 需要 VULKAN_SDKBLAS_INCLUDE_DIRS 环境变量。也可以在构建时用 TAURI_GPU_FEATURE=cuda(或 vulkanhipblas)强制指定。

Q: Linux 没有预编译包吗?

没有,需从源码构建,产物是 AppImage。依赖 build-essential、cmake、git,构建命令 ./build-gpu.sh

自测题

  1. Meetily 的隐私边界画在哪里?哪些环节可能出网?
  2. 后端五块组件分别做什么?前端通过什么方式和后端通信?
  3. Whisper 和 Parakeet 各自适合什么场景?
  4. build-gpu.sh 是如何做到"自动"选择加速方式的?
  5. PRO 版和社区版是什么关系?为什么 PRO 的功能不会自动回到社区版?
参考答案

题 1:音频和转写全程本地,结果存 SQLite。只有总结选了远程 provider 时,转写文本会发给对应 API;选 Ollama 则完全不出网。

题 2:Tauri Core(窗口与命令)、Audio Engine(采集)、Transcription Engine(本地转写)、Database(SQLite)、Summary Engine(LLM 总结)。前端通过 Tauri Commands 调 Rust 后端。

题 3:Whisper 多语种成熟、档位齐全,适合通用与跨国会议;Parakeet 英文低延迟、流式友好,适合英文为主的实时转写。

题 4:脚本先探测 GPU(auto-detect-gpu.jsTAURI_GPU_FEATURE),按 CUDA → ROCm → Vulkan → OpenBLAS → CPU 的优先级选 feature,再编译带对应 feature 的 llama-helper sidecar 交给 Tauri。

题 5:PRO 是独立代码库,不是社区版的功能开关,因此新功能不自动回流;社区版持续维护。

进阶路径

按下面顺序读,每一环都搭在前一环的问题上:

  1. Meetily 仓库:先通读 README 和 docs/architecture.md,建立整体认知。
  2. docs/BUILDING.md:想复现三端构建、理解 GPU 自动检测时读。
  3. whisper.cpp:Meetily 借用了它的代码,也是理解本地转写实现的最佳入口。
  4. Parakeet ONNX:看 Meetily 实际使用的转换模型。
  5. Tauri 文档:理解"Rust 后端 + Web 前端"如何打成一个桌面应用。

总结

Meetily 的价值不在"多一个会议转写工具",而在把"会议数据留在本机"做成一键安装的桌面应用。它适合:

  • 律师、医生、顾问:客户对话必须本地处理
  • 企业合规团队:会议内容需要审计但不上公网
  • 重度会议用户:会议量大,不想按分钟被云端 SaaS 计费

不适合:

  • 需要说话人分离的多人会议(PRO 路线图)
  • 需要移动端录音(只有桌面端)
  • Linux 用户不接受源码编译(无预编译包)

一个务实的采用顺序:个人或小团队、内容敏感,直接上社区版 + 本地 Ollama,全程不出网;要 PDF/DOCX 导出、自动入会、说话人分离,等 PRO 对应能力上线再评估;100 人以上或需托管合规方案,看 Enterprise。在"数据不出本机 + 不需要会议平台自动接入"的组合里,Meetily 是开源生态中少数的成熟选择之一。

参考资料

  • 仓库:https://github.com/Zackriya-Solutions/meetily
  • 官网:https://meetily.ai
  • 架构文档:docs/architecture.md(仓库内)
  • 构建文档:docs/BUILDING.mddocs/building_in_linux.md(仓库内)
  • 相关项目:whisper.cppScreenpipetranscribe-rsParakeet ONNX

参与讨论

使用 GitHub 登录。欢迎补充事实、异议与实践。