Skip to content

TongTianDai857/huitalk

Repository files navigation

汇谈 · AI 驱动的会议录音智能整理助手

本地优先、隐私安全的会议录音全流程 AI 整理工具。
上传录音 → 自动转写 + 说话人分离 → 结构化提取 → 导出 Word/PPT → 飞书推送。


环境要求

必须安装

环境 版本要求 说明
Python 3.10 推荐 后端运行环境
Node.js 18+ 前端构建
NVIDIA GPU 驱动 CUDA 12.1 兼容 可选,无 GPU 自动降级 CPU 模式

不需要手动安装 FFmpeg,项目通过 imageio-ffmpeg 自带 ffmpeg 二进制,开箱即用。

Python 依赖(自动安装)

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,无需系统安装

Node.js 依赖(自动安装)

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/ 目录不在仓库中,需本地生成。


快速开始

1. 克隆仓库

git clone https://github.com/TongTianDai857/huitalk.git
cd huitalk

2. 安装依赖

Windows:

scripts\setup.bat

或手动:

# Python 环境
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt

# Node 环境
npm install

3. 下载 Whisper 模型(约 1.5GB)

.venv\Scripts\python scripts/download_models.py

模型下载后存放于 models/whisper/

4. 创建 config.json

在项目根目录新建 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 为可选项,不填写则不影响其他功能。

5. 启动

# 启动后端(端口 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 富文本推送,支持手动/自动

处理性能(RTX 4060 Laptop)

步骤 60 分钟录音耗时
语音识别 ~3-4 分钟
说话人分离 ~2 分钟
AI 结构化提取 ~30 秒
合计 约 5-6 分钟

无 GPU 时自动降级 CPU int8 模式,功能完全一致,速度约慢 3-5 倍。


每次处理成本

约 ¥0.05~0.1(仅 DeepSeek API 费用,语音识别和说话人分离完全本地免费运行)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors