# 会议实时记录 · 文字直播 MVP

用**录播视频**验证「大型会议实时记录 + 同步转译 + 文字直播」核心链路的最小闭环。

当前 MVP 聚焦 **ASR + 字幕 + 图文直播**（翻译作为下阶段独立模块接入）。

## 验证目标

1. 转写准确率（词级时间戳）
2. 字幕对齐（SRT/VTT，可回放）
3. 图文直播条目（可读、可发布、点击跳转）
4. 播放器体验（视频 + 字幕 + 直播列表联动）

## 架构

```
录播视频 ──► faster-whisper (ASR, 词级时间戳 + VAD 断句)
                 │
                 ├─► segments ──► subtitles.srt/.vtt   （字幕通道）
                 ├─► segments ──► posts.json           （图文直播通道，停顿/时长聚合）
                 └─► manifest.json ──► player/index.html（回放联动）
```

## 目录

```
pipeline.py      主流水线（视频→ASR→字幕→图文直播→manifest）
asr.py           faster-whisper 封装
subtitles.py     SRT / WebVTT 生成
posts.py         图文直播条目聚合
config.py        配置（环境变量覆盖）
server.py        本地静态服务器（含 HTTP Range，视频 seek 必需）
player/          播放器页面
```

## 本地 CPU 冒烟测试

```bash
cd /home/luojun/meeting-live-mvp
pip install -r requirements.txt

# 用短视频跑通（small 模型，int8，CPU）
python3 pipeline.py /path/to/video.mp4 --model small --device cpu --compute-type int8 --language zh

# 起播放器
python3 server.py 8080
# 浏览器打开 http://localhost:8080/player/?dir=outputs/<视频名>
```

## 5090 GPU 正式转写（共绩算力）

```bash
# 在 GPU 容器内：
pip install faster-whisper   # 及 ctranslate2 CUDA wheel
python3 pipeline.py /mnt/nas/video.mp4 --model large-v3 --device cuda --compute-type float16 --language zh
```

模型对照：`tiny/base/small/medium/large-v3`，准确率递增、速度递减。
large-v3 在 5090 上约 10~20 倍实时。

## 数据模型

`segment`（语音段）：`id / start / end / text / words[] / avg_logprob / no_speech_prob`
`post`（直播条目）：`id / start / end / seg_ids[] / body / status`

`start_ms/end_ms` 是全系统统一时间轴主键，字幕、图文直播、回放锚点均挂在同一根轴上。

## 下阶段

- 翻译模块（中↔英，术语表 + 实体保护 + 滑窗上下文）
- 编辑台（草稿 → 润色 → 发布，状态机）
- 流式接入（WebRTC/SRT → 流式 ASR → WebSocket 推送）
