meetscribe
完全本地运行的 AI 会议转录工具,WhisperX 语音识别 + pyannote 说话人分离 +
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
完全本地运行的 AI 会议转录工具,WhisperX 语音识别 + pyannote 说话人分离 +
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
深夜十点,某科技公司的高管刚刚结束一场涉及商业机密的战略会议。会后她打开手机,发现会议录音还在云端服务器上等待转录——那是一份关于下季度产品路线的绝密讨论。她心里一沉:这些数据什么时候会被处理?会不会被用于模型训练?公司合规部门对 GDPR 和数据本地化有严格要求,可当前的云端转录方案根本无从满足……
这并非个例。随着远程协作成为常态,会议记录、决策追踪和知识沉淀成为企业运营的刚性需求。然而主流的会议转录工具——无论是 Otter.ai、Fireflies.ai 还是 Zoom 内置的实时字幕——无一例外地将音频数据上传到第三方服务器。数据离开设备的那一刻,控制权便不再属于用户。 对医疗、金融、法律、政府等敏感行业而言,这是不可接受的风险敞口。
正是在这样的背景下,Millet(由 pretyflaco 开发,原名 MeetScribe)应运而生。它是目前开源生态中完成度最高的本地优先会议转录工具,核心亮点在于:所有音频处理、语音识别、说话人分离均在本地机器完成,云端 API 仅作为可选的摘要增强层,且支持隐私模式(Tinfoil TEE)确保即便是云端调用,提示词也无法被模型提供商或云服务商窥探。

图1:Millet 项目 GitHub 仓库
Millet 的架构设计体现了清晰的本地优先理念,同时也为高级用户提供了灵活的云端增强选项。整体系统分为两大组件:
millet-record:负责系统级音频采集。它通过 PipeWire/PulseAudio + ffmpeg 实现双声道录制——左声道捕获用户本地麦克风声音,右声道捕获远程参会者的系统音频。这种设计巧妙地解决了"分离自己的声音和远端声音"这一难题,使得后续说话人分离(Diarization)有了一个天然的锚点。
millet-pipeline(即本仓库):负责转录、标注、摘要和 PDF 输出。这是核心处理引擎,包含 WhisperX 语音识别、pyannote-audio 说话人分离、声纹识别、LLM 摘要生成和 PDF 排版输出等完整 pipeline。
整个项目使用 Python 3.10+ 开发,代码结构高度模块化,每个功能对应独立的 Python 模块(transcribe.py、label.py、summarize.py、pdf.py、voiceprint.py 等)。项目通过 pyproject.toml 管理依赖,采用 setuptools 构建,支持 pip 安装,并提供了完整的 pytest 测试套件。
图2:项目作者头像
Millet 的语音识别层基于 OpenAI WhisperX,这是 Whisper 的增强版本,引入了 wav2vec2 对齐算法,能够提供词级别时间戳(word-level timestamps)。词级时间戳是高质量说话人分离的前提——只有知道每个词在音频中的精确起止时间,才能准确地将说话人身份分配给对应的语音片段。
WhisperX 支持 90+ 种语言,包括英语、德语、土耳其语、法语、西班牙语和波斯语等主流语言。默认模型为 openai/whisper-large-v3-turbo,用户也可以通过 --asr-backend parakeet 切换到 NVIDIA Parakeet TDT(通过 ONNX Runtime 推理,无需 CUDA 的 PyTorch)。
pyannote-audio 是当前开源生态中效果最好的说话人分离(Speaker Diarization)库之一。它基于 PyTorch 深度学习模型,能够从混合音频中识别出不同说话人的身份和数量。Millet 在此基础上做了大量工程优化:
YOU(本地麦克风)和 REMOTE(远端)。millet enroll 命令可以建立参会者的声纹档案,后续会议中自动识别同一人的发言,无需每次手动标注。Millet 最具差异化的设计在于它的摘要预设系统。用户通过 --summary-preset 参数选择三种后端:
| 预设 | 后端模型 | 隐私等级 | 特殊效果 |
|---|---|---|---|
high-quality | Claude Sonnet 4.6(Anthropic) | 中 | 高质量结构化摘要 |
confidential | DeepSeek V4 Pro + Tinfoil TEE | 极高 | PDF 每页红色 CONFIDENTIAL 水印 |
alternative | Kimi K2.6(OpenRouter) | 低 | 成本优化的替代方案 |
confidential 模式的实现尤为精妙:它借助 Tinfoil 的硬件证明(hardware attestation)技术,在支持的硬件上创建一个 TEE(Trusted Execution Environment,可信执行环境)。用户的摘要提示词在这个隔离飞地(enclave)中处理,既无法被 DeepSeek 服务器看到,也无法被 Tinfoil 平台本身窥探——硬件保证了数据边界的物理隔离。
Millet 的 PDF 生成使用 ReportLab 库,支持完整 Unicode( DejaVu Sans 字体)和 RTL(从右到左)语言(如波斯语)。每份 PDF 包含摘要页和完整逐字稿,每页带页码。confidential 模式生成的 PDF 会在每页页眉页脚添加红色 CONFIDENTIAL 水印,方便敏感场景下的文档管理。
Millet 目前仅支持 Linux,不支持 Windows/macOS(PipeWire/PulseAudio 是 Linux 专属音频栈)。部署基本步骤:
pip install millet-pipelinemillet downloadmillet record(或使用 GTK3 图形界面 millet gui)GPU 并非必须,但有 GPU 可以大幅提升转录速度。WhisperX 的核心推理在 CPU 上也能运行,但 pyannote-audio 的说话人分离模型有 GPU 加速时体验更佳。官方推荐 NVIDIA GPU(4GB+ VRAM),也支持通过 ONNX Runtime 在无 PyTorch 环境下运行 Parakeet 后端。
Millet 是 vezir 生态系统的一部分——vezir 是作者开发的个人知识管理和会议协作平台,Millet 负责录音层,与 vezir 的会话管理、标签组织和检索系统深度集成。
该项目目前处于 Beta 阶段(v0.12.16),维护频率较高(最近一次提交在 2026-06-28),说明作者在积极迭代。代码质量方面,项目使用 ruff 进行代码风格检查(涵盖 E/F/W/I/B/UP/RUF 规则),有完整的 pytest 测试套件,CI 持续集成活跃。
Millet 填补了开源生态中本地优先、高质量、隐私安全的会议转录工具这一空白。它不是简单地集成 Whisper API,而是通过双声道录制、pyannote 说话人分离、声纹识别和 TEE 隐私计算等一系列技术创新,构建了一套完整的本地会议情报 pipeline。对于有数据合规要求的企业、注重隐私的个人用户,以及希望将 AI 会议工具集成到自托管知识管理系统中的开发者,Millet 都是目前最值得关注的选择之一。