MeetPair

English (Default) | 简体中文

本地优先的 AI 会议与面试复盘助手

用 Rust 驱动高性能音频处理,在设备本地完成语音识别与大模型分析,
通过固定左右声道可靠区分“对方”和“自己”。

下载最新版本 · 从源码构建 · 架构说明

Rust 1.88 Tauri 2 Local ASR Local LLM Supported platforms: macOS, Windows, Linux MIT License

--- MeetPair 是一款面向会议、访谈和面试场景的桌面助手。它同时采集系统音频与麦克风,将两路声音保存为固定立体声声道,再使用本地 ASR 生成带角色的实时转写。会议结束后,内置本地大模型可以继续生成会议摘要、面试通过率分析和面试复盘。 > [!IMPORTANT] > MeetPair 的默认处理链路完全位于本地:音频采集、ASR、SQLite 存储和内置大模型推理均在设备上完成。只有当用户主动配置并选择外部模型供应商时,对应内容才会发送到该供应商。 ## 核心能力

⚡ Rust 高性能核心

音频采集、时间轴对齐、声道处理、转写调度与本地存储由 Rust / Tauri 核心负责。支持按平台启用 Metal、CoreML、CUDA、Vulkan、ROCm 或 OpenBLAS 加速。

🔒 本地私有化 AI

Whisper、Parakeet 和中文 ASR 模型可在本地运行;内置 LLM 通过本地 sidecar 推理。音频、转写和摘要默认不需要上传到云端。

🎧 左右声道识别会议角色

系统音频固定写入左声道,代表对方;麦克风固定写入右声道,代表自己。角色来自可信音频源,而不是仅依赖事后说话人猜测。

✨ AI 摘要与面试分析

同一份角色化转写可以生成会议回忆摘要、面试通过率分析和面试复盘。分析模板会区分事实、推断与缺失信息,避免编造不存在的数据。

## 架构

MeetPair 本地优先架构:Rust 核心连接双声道音频、本地 ASR、SQLite、本地 LLM 和桌面工作台

MeetPair 将桌面界面和计算密集型处理分离:Next.js 负责交互,Tauri 暴露安全的桌面命令,Rust 核心管理音频管线、ASR、数据库与本地模型。应用无需单独启动 FastAPI、Docker 后端或 whisper-server。
查看架构图源文件 - [HTML 源文件](docs/assets/meetpair-architecture.zh-CN.html) - [SVG](docs/assets/meetpair-architecture.zh-CN.svg)
## 双声道如何区分会议双方

MeetPair 双声道角色识别流程:系统音频与麦克风进入固定左右声道,经本地 ASR 生成角色化转写和 AI 分析

| 音频来源 | 固定声道 | 角色 | 后续处理 | | --- | --- | --- | --- | | 系统音频 / 回环音频 | 左声道 | 对方 | 独立 VAD、ASR 与时间戳 | | 麦克风输入 | 右声道 | 自己 | 独立 VAD、ASR 与时间戳 | 两路音频进入 Rust 时间轴对齐器。即使某一路晚启动、短暂不可用或存在时钟漂移,缺失区间也会用静音补齐,不交换声道角色。角色信息会随转写进入 SQLite、恢复流程、分页、复制与摘要生成。
查看流程图源文件 - [HTML 源文件](docs/assets/meetpair-stereo-pipeline.zh-CN.html) - [SVG](docs/assets/meetpair-stereo-pipeline.zh-CN.svg)
## AI 输出 ### 会议回忆摘要 从完整对话中提炼会议背景、核心讨论、决策、风险、行动项和后续跟进,让长时间会议快速变成可检索、可执行的记录。 ### 面试通过率分析 根据转写中已有的岗位、阶段、候选人数量和结果证据分析通过率,并进一步总结: - 各阶段或群体的通过情况; - 能力维度中的积极信号与常见缺口; - 通过、拒绝与决策不一致的主要驱动因素; - 面试官校准、题目、评分卡和招聘流程的改进建议。 当转写缺少足够的数字证据时,MeetPair 会明确标注数据不足,不虚构通过率。 ### 面试复盘 围绕单场面试生成候选人证据、问题有效性、流程质量、决策依据、遗漏的追问以及下次改进动作,并保留不确定性和待验证信息。 ## 隐私模型 默认本地链路: ```text 系统音频 + 麦克风 ↓ Rust 双声道处理 ↓ 本地 ASR ↓ 本地 SQLite ↓ 内置本地 LLM ↓ 摘要 / 通过率分析 / 面试复盘 ``` - 不要求登录云端账户才能完成录音和转写; - 不要求独立部署后端服务; - 模型文件、会议、转写和摘要保存在用户设备; - 内置 AI 和本地 Ollama 不需要云端 API Key; - OpenAI、Claude、Groq、OpenRouter 和自定义 OpenAI 兼容接口属于可选能力,只有用户主动配置并选择时才会使用。 ## 本地模型与加速 ### ASR - Whisper:通用多语言本地语音识别; - Parakeet:基于 ONNX Runtime 的快速转写; - SenseVoiceSmall / FireRedASR2:中文优化模型; - 源级 VAD、降噪、重采样与长音频分块。 ### LLM - 内置本地模型:通过随应用运行的本地 Llama sidecar 推理; - Ollama:可连接本机 Ollama 服务; - 自定义模板:可创建、编辑或覆盖摘要与分析模板。 详细的硬件加速配置请参阅 [GPU 加速指南](docs/GPU_ACCELERATION.md)。 ## 平台支持 | 平台 | 系统音频 | 麦克风 | 加速能力 | | --- | --- | --- | --- | | macOS | Core Audio Process Tap | 系统选择的输入设备 | Metal / CoreML | | Windows | WASAPI Loopback | 系统选择的输入设备 | CUDA / Vulkan / OpenBLAS | | Linux | PulseAudio 或 PipeWire-Pulse Monitor | 系统选择的输入设备 | CUDA / Vulkan / ROCm / OpenBLAS | 当 Linux 无法获得 Monitor Source 时,应用会明确报告降级状态,并允许仅使用麦克风继续录制。 ## 快速开始 ### 环境要求 - Node.js 18 或更高版本; - pnpm 8 或更高版本; - Rust 1.88; - 对应平台的音频与构建依赖,详见 [构建指南](docs/BUILDING.md)。 ### 运行开发版本 ```bash git clone https://github.com/tdog54646/MeetPair.git cd MeetPair/frontend pnpm install pnpm test pnpm tauri:dev ``` 前端开发服务器默认运行在 `http://localhost:3118`。 ### 构建发行版本 ```bash cd frontend pnpm tauri:build ``` 需要指定硬件后端时,可使用: ```bash pnpm tauri:build:metal pnpm tauri:build:coreml pnpm tauri:build:cuda pnpm tauri:build:vulkan pnpm tauri:build:hipblas pnpm tauri:build:openblas ``` 请根据操作系统和硬件选择受支持的命令。 ## 项目结构 ```text MeetPair/ ├── frontend/ │ ├── src/ # Next.js 桌面界面 │ ├── src-tauri/ # Rust / Tauri 核心 │ │ ├── src/audio/ # 录音、双声道对齐与重转写 │ │ ├── src/summary/ # 本地/可选外部 LLM 与模板系统 │ │ ├── src/database/ # SQLite 数据访问 │ │ └── templates/ # 内置摘要与面试分析模板 │ └── tests/ # 前端与组件测试 ├── llama-helper/ # 内置本地 LLM sidecar ├── docs/ # 构建、架构与 GPU 文档 └── specs/ # 功能规格与验收场景 ``` ## 验证 ```bash cd frontend pnpm test pnpm build cd src-tauri cargo test --no-default-features cd ../.. bash scripts/audit-meetpair-brand.sh ``` 双声道、降级录音、语言切换与迁移验收场景记录在 [快速验收指南](specs/001-meetpair-stereo-localization/quickstart.md)。 ## 相关文档 - [系统架构](docs/architecture.md) - [从源码构建](docs/BUILDING.md) - [GPU 加速](docs/GPU_ACCELERATION.md) - [模板开发](frontend/src-tauri/templates/README.md) - [许可证与上游归属](NOTICE) ## 贡献 欢迎提交 Issue 和 Pull Request。开始开发前,请先运行现有测试,并确保新行为在 macOS、Windows 和 Linux 的相关音频路径上保持一致。 ## License MeetPair 基于 [MIT License](LICENSE.md) 发布。第三方项目与上游代码归属请参阅 [NOTICE](NOTICE)。