本地优先、隐私安全的会议录音全流程 AI 整理工具。
上传录音 → 自动转写 + 说话人分离 → 结构化提取 → 导出 Word/PPT → 飞书推送。
| 环境 | 版本要求 | 说明 |
|---|---|---|
| Python | 3.10 推荐 | 后端运行环境 |
| Node.js | 18+ | 前端构建 |
| NVIDIA GPU 驱动 | CUDA 12.1 兼容 | 可选,无 GPU 自动降级 CPU 模式 |
不需要手动安装 FFmpeg,项目通过
imageio-ffmpeg自带 ffmpeg 二进制,开箱即用。
fastapi / uvicorn # 后端 API 服务
faster-whisper # 语音识别(CTranslate2 引擎)
resemblyzer # 说话人分离(离线)
torch==2.3.0+cu121 # GPU 加速(CUDA 12.1)
numpy==1.26.4 # 必须用 1.x,resemblyzer 与 2.x 不兼容
opencc-python-reimplemented # 繁简转换
python-docx / python-pptx # Word/PPT 导出
imageio-ffmpeg # 内置 ffmpeg,无需系统安装
electron 30 # 桌面框架
vue 3 + vite # 前端框架
element-plus # UI 组件库
pinia # 状态管理
huitalk/
├── backend/ # Python FastAPI 后端
│ ├── main.py # 应用入口,API 路由
│ ├── pipeline.py # 处理管线(asyncio Queue 流式进度)
│ ├── transcription.py # faster-whisper 语音识别 + CUDA 注入
│ ├── diarization.py # resemblyzer 说话人分离 + 层次聚类
│ ├── alignment.py # 识别结果与说话人时间戳对齐
│ ├── llm_processor.py # DeepSeek API 结构化提取
│ ├── exporter.py # Word / PPT 导出
│ ├── feishu_bot.py # 飞书 Webhook 推送
│ ├── speaker_db.py # 声纹库 CRUD(SQLite)
│ ├── rule_memory.py # 说话人名称纠正规则记忆
│ ├── models.py # Meeting / Speaker 数据模型
│ └── config.py # 配置加载
│
├── renderer/ # Vue 3 前端
│ └── src/
│ ├── App.vue # 主布局
│ ├── main.js
│ ├── api/backend.js # 所有后端 API 封装
│ ├── stores/
│ │ ├── meeting.js # 会议状态 + 自动推送逻辑
│ │ └── settings.js # 配置(飞书 Webhook 等)
│ └── components/
│ ├── AudioImporter.vue # 上传 + 进度展示
│ ├── TranscriptPanel.vue # 转写稿(内联编辑)
│ ├── SpeakerManager.vue # 声纹注册管理
│ ├── ExportPanel.vue # Word + PPT 导出
│ ├── PushPanel.vue # 飞书推送
│ ├── SettingsPanel.vue # 设置面板
│ ├── WaveformTimeline.vue # 波形时间轴
│ └── StructuredView/
│ ├── Summary.vue # 摘要
│ ├── KeyPoints.vue # 要点
│ ├── TodoList.vue # 待办(含负责人/截止日期)
│ ├── QAPanel.vue # 问答
│ ├── Decisions.vue # 决策
│ └── DisputesPanel.vue # 争议
│
├── electron/ # Electron 主进程
│ ├── main.js
│ ├── preload.js
│ └── ipc-handlers.js
│
├── scripts/ # 工具脚本
│ ├── setup.bat # Windows 一键安装
│ ├── setup.sh # Linux/macOS 安装
│ ├── start_backend.bat # 启动后端
│ └── download_models.py # 下载 whisper 模型
│
├── models/ # AI 模型(需手动下载,不含于仓库)
│ └── whisper/ # faster-whisper medium(约 1.5GB)
│
├── data/ # 会议数据(本地存储,不含于仓库)
├── config.json # 运行配置(需自行创建,见下方说明)
├── package.json # Node.js 依赖
└── requirements.txt # Python 依赖
models/和data/目录不在仓库中,需本地生成。
git clone https://github.com/TongTianDai857/huitalk.git
cd huitalkWindows:
scripts\setup.bat或手动:
# Python 环境
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
# Node 环境
npm install.venv\Scripts\python scripts/download_models.py模型下载后存放于 models/whisper/。
在项目根目录新建 config.json:
{
"api_key": "sk-你的DeepSeek密钥",
"base_url": "https://api.deepseek.com/v1",
"model": "deepseek-chat",
"beam_size": 1,
"use_gpu": true,
"feishu": {
"webhook_url": "https://open.feishu.cn/open-apis/bot/v2/hook/你的webhook"
}
}DeepSeek API Key 从 https://platform.deepseek.com 获取(免费额度够用)。
飞书 Webhook 为可选项,不填写则不影响其他功能。
# 启动后端(端口 7788)
cd backend
..\.venv\Scripts\python -m uvicorn main:app --host 127.0.0.1 --port 7788
# 启动前端(新开终端)
npm run dev:renderer| 功能 | 说明 |
|---|---|
| 语音识别 | faster-whisper medium,GPU float16,约 10x 实时速度 |
| 说话人分离 | resemblyzer 离线,层次聚类自动检测 2-8 人 |
| 声纹注册 | 提前录制成员声纹,分离后自动匹配真实姓名 |
| AI 结构化 | DeepSeek 提取摘要/要点/待办/决策/争议/问答 |
| 内联编辑 | 转写稿、摘要、所有结构化字段均可直接点击编辑 |
| 导出 | 一键生成 Word(归档)/ PPT(汇报) |
| 飞书推送 | Webhook 富文本推送,支持手动/自动 |
| 步骤 | 60 分钟录音耗时 |
|---|---|
| 语音识别 | ~3-4 分钟 |
| 说话人分离 | ~2 分钟 |
| AI 结构化提取 | ~30 秒 |
| 合计 | 约 5-6 分钟 |
无 GPU 时自动降级 CPU int8 模式,功能完全一致,速度约慢 3-5 倍。
约 ¥0.05~0.1(仅 DeepSeek API 费用,语音识别和说话人分离完全本地免费运行)。