Files
tps-dashboard/doco/note/PRD_doco_文稿整理子项目_v2.md
T
simonkoson 1372600d71 doco P3-C2: 讯飞ASR适配层接入 + 修复 doco/programs 忽略规则
- C2: asr_adapter 并入讯飞上传/轮询/解析,复用 extract_audio 分离音频,
  新增 doco asr 命令读 C1 热词;真转写 ep001 出 310 句带时间戳
- 补提交 C1 代码(llm.py / term_extract.py)与累积词典
- .gitignore: 挡 doco/programs 下 png/wav/mp4 及中间帧目录、本地 settings

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-17 10:19:08 +08:00

15 KiB
Raw Blame History

PRD · Doco 文稿整理模块 · 视频源改造方案

版本:v2 日期:2026-06-12 作者:子 project ClaudeOpus 4.7 状态:草稿 / 待主项目审 上一版:v1(2026-06-12 同日,更早一稿) 主要变化:

  1. 子模块正式定名为「Doco 文稿整理模块」v1 沿用旧称"TPS 三方融合子模块",本版起全部改用 Doco;Q6 已由制片人拍板,不再列为待决问题)
  2. Q1OCR 选型)方向更新:制片人确认"软件离线刚需"已不成立,云端方案可接受。补充查清的关键事实:讯飞 OCR 与 STT 共享鉴权凭证但套餐/余额各自独立——按制片人原判据"如果能通用 token 订阅和余额就选讯飞"不成立。新推荐方案:DeepSeek API(制片人手上已有),并向主项目确认是否已有 OCR 能力或 LLM 视觉调用基础设施
  3. 其他 QQ2/Q3/Q4/Q5)保持不变

〇、一段话摘要(给主 project 顾问的最短摘要)

Doco 文稿整理模块(前称"TPS 三方融合子模块")此前的物理输入是 A 稿 docx + B 稿 OCR txt + ASR txt(mp3→讯飞)。栏目组现在改了素材输出方式:责编一次性输出 23 期"特殊视频"——画面是黑底白字唱词字幕、声音是无 BGM/音效的干净人声(极少同期声杂音)。B 稿与 ASR 现在同源派生于一个视频文件,物理输入从 3 个收敛到 2 个(A 稿 + 视频)。

核心判断:下游"三方融合引擎"(规则层 + AI 层)算法零侵入——只要新增的"视频双路拆分"模块输出与旧版 B 稿/ASR txt 格式完全一致([Nm Ns] 句子),下游所有逻辑不动。逻辑上仍然是三方融合——A 稿术语权威 + B 路视频字幕 OCR + 音轨 ASR,三路独立验证的关系没破。

子项目这边需要主 project 在开工前对 5 件影响接口/数据形态的事拍板。详见 §4。


一、变更前后对照

旧设计(demo 已验证)

[A 稿 docx] ──────────────────────┐
                                  │
[上游既有 OCR 流程] ── B 稿 txt ──┤
                                  ├─► [三方融合引擎] ─► 终版.docx + 差异报告.docx
[节目纯净人声 mp3]                │
       │                          │
       └─► [讯飞 ASR] ── ASR txt ─┘

新设计(本 PRD 提出)

[A 稿 docx] ─────────────────────────────────────┐
                                                 │
[节目特殊视频文件]                               │
  画面:黑底白字字幕                             │
  声音:干净人声                                 │
        │                                        │
        ├─► [视频双路拆分子模块 · NEW]           │
        │     │                                  │
        │     ├─► ffmpeg 抽帧+字幕变化检测       │
        │     │     │                            │
        │     │     └─► [OCR] ── B 稿 txt ──────┤
        │     │       (待 Q1 拍板用 DeepSeek)    ├─► [三方融合引擎] ─► 终版 + 差异
        │     └─► ffmpeg 抽音轨 → 16k/mono WAV   │       (复用)
        │           │                            │
        │           └─► [讯飞 ASR · 复用]        │
        │                 └────── ASR txt ──────┘
        │
        └─ (后续接 23 期批量调度)

关键变化清单

子模块名称 TPS 三方融合子模块 Doco 文稿整理模块
物理输入 A 稿 + B 稿 + ASR A 稿 + 视频
逻辑融合方 三方 仍然三方A / B 路 / ASR 路)
B 稿来源 上游既有 OCR 流程 视频抽帧 → OCR
ASR 来源 节目 mp3 视频音轨
算法层 规则层 + AI 层 不变
新增模块 视频双路拆分(ffmpeg + OCR
处理粒度 单期 单期接口 + 23 期批量调度

二、子项目这边已经拍板的事(不需要主 project 决策,仅告知)

2.1 制片人已明确的决策

  1. 子模块定名Doco 文稿整理模块"Doco" 取意"Documentation Consolidation"——文稿整合)。本 PRD 起所有引用旧称("TPS 三方融合子模块"、"三方融合")的地方都用新名替换。
  2. 离线不再是刚需:原 v1 推荐 PaddleOCR 本地的核心理由(离线刚需)失效;OCR 选型转向云端。

2.2 demo 已验证或设计文档已定义的事

不变:

  1. 三方融合优先级(A 稿术语权威 / ASR 口吻 / B 稿验证)—— 见 project_design.md §5.1
  2. 时间戳容忍度 ±5 秒 —— project_design.md §5.2
  3. 口语清理三档keep_all / medium / clean)—— project_design.md §5.3
  4. 改动确信度阈值0.85 自动 / 0.60.85 黄标 / <0.6 待确认)—— project_design.md §5.4
  5. AI 融合层模型Claude Sonnet 4.6 起步
  6. 差异报告格式demo 黄金对照已落定
  7. A 稿术语表数据结构project_design.md §9.1
  8. OCR 错字映射表:复用 demo 整理的字形混淆对

三、子项目这边的开发计划草案(待主 project 审)

Phase 内容 产物 主依赖
P1 视频双路拆分预处理(单期) video_split.py:视频 → 抽帧+字幕变化检测+OCR → B稿.txt;视频 → 音轨 → 16k WAV ffmpeg、OCR(待 Q1 拍板,倾向 DeepSeek API
P2 讯飞 ASR 适配层 复用 xfyun_asr_standard.py,替换新凭证、做成可被 P1 流水线调用的模块 讯飞开发端密钥(待 Q4 拍板)
P3 Doco 融合引擎 规则层 Python + AI 层 Claude API;输入 A/B/ASR 三方 txt,输出终版 docx + 差异报告 + needs_review JSON Claude API
P4 单期端到端 golden test 用 demo 那期《现代防空反导大对决》的视频跑一遍,与 demo 产物比对,确认零回归 上面三 phase
P5 23 期批量 单期模块包成可被批量调度调用的接口(CLI / Python API 二选一,待 Q3 拍板)

四、需要主项目决策的 5 个问题

每条都给了子项目这边的推荐答案 + 理由。主项目顾问可以照单批,也可以推翻。

Q1. OCR 方案选型?

问题:B 路 OCR 用什么?这是新引入的依赖,绕不开。

Q1.A 关键事实(更新自 v1

子项目这边查清了几件事,供主项目决策参考:

  1. 讯飞 OCR 与 STT 的共享情况

    • 鉴权凭证(开发者账号、APPID、APIKey、APISecret可共享,一组凭证可同时调用多个服务
    • 套餐/计费/余额各自独立:STT 是"5 小时免费试用包"独立购买;OCR 是另一套计费体系(参考 SaaS 零售价 4.9 元/10 张、9.9 元/50 张)。不存在用 STT 的余额跑 OCR 这种事
    • 按制片人原判据("如果能通用 token 订阅和余额就选讯飞")此条件不成立
  2. 制片人手上已有的 API

    • DeepSeek:有专门的 DeepSeek-OCR 模型(OCR 2.0 方案,对中文文档识别准确率行业领先)+ DeepSeek Vision 识图模式(官方 API endpoint)。推荐
    • MiniMax:有 MiniMax-VL 视觉模型,理论上可 OCR,但 OCR 专项优化不如 DeepSeek-OCR
    • 小米 MiMo:主推推理模型,未见明确的视觉/OCR 能力
  3. 本场景的 OCR 难度评估

    • 输入图像是黑底白字纯字幕画面——OCR 最简单的子集(高对比度、印刷体、无图案干扰、无版面分析)
    • LLM 视觉模型在此场景几乎不会出错;用 LLM 做 OCR 在这里不是杀鸡用牛刀,因为成本极低且无新增依赖
  4. 成本估算(23 期总量)

    • 单期约 300 条字幕(demo 数据),23 期 ≈ 6900 张图
    • DeepSeek Vision API 单张成本约几厘到一分,总成本预估 50150 元
    • 对比讯飞 OCR SaaS 零售价:6900 张 × 0.198 元/张 ≈ 1370 元
    • 对比 PaddleOCR 本地:0 元但需要维护本地环境(已不是刚需)

Q1.B 选项与推荐

选项

  • A. DeepSeek API(视觉模型)——制片人已有 API,无新增订阅
  • B. 讯飞 OCR——与 STT 同账号但余额独立
  • C. PaddleOCR 本地——零成本但需本地环境
  • D. 主 project 已有的 OCR 服务——如果存在

子项目推荐ADeepSeek API

理由

  • 满足制片人"用现有 API 资源"的方向
  • 黑底白字字幕是 LLM 视觉模型的舒适区,识别质量有保障
  • 与讯飞 STT 解耦,单点故障范围小
  • 成本最低(除 PaddleOCR)且无本地环境维护成本

请主项目确认

  • 主 project 是否已有 OCR 子模块/能力?(制片人初步判断"主 project 应该没有 OCR 配置",请顾问最终确认)
  • 主 project 的密钥管理体系是否已经接入 DeepSeek?还是需要 Doco 子模块自行管理 DeepSeek 凭证?
  • 6900 张图调用 DeepSeek 是否会影响主 project 其他模块的 DeepSeek 配额/限流?

Q2. 视频处理依赖(ffmpeg)的入口?

问题:抽帧与抽音轨都依赖 ffmpeg。

选项

  • A. Doco 子模块自带 ffmpeg 系统依赖 + Python 封装(ffmpeg-python 或 subprocess
  • B. 主 project 有统一的视频处理服务/适配层

子项目推荐A,使用 subprocess 调用系统 ffmpeg

理由:ffmpeg 是标准工具,独立部署足够简单。

请主项目确认:是否已经有视频处理子模块/服务在规划中?如有,应改走中台接口。


Q3. 23 期批量 vs 单期接口?

问题:本次实际场景是 23 期,Doco 子模块的接口应该长什么样?

选项

  • A. 子模块只负责单期,输入 = 1 视频 + 1 A 稿;批量调度交给主 project 编排层
  • B. 子模块内部支持批量,输入 = 视频目录 + A 稿目录
  • C. 两者都提供

子项目推荐A(子模块只对单期负责)

理由

  • 单一职责原则。批量调度涉及失败重试、进度跟踪、并发控制——属于编排层职责
  • 单期接口在出错时定位简单(哪期失败、失败在哪个 phase 一目了然)
  • 主 project 未来可能有节目档案库流水线、报题单流水线等,统一在编排层做并发更合理

请主项目确认

  • 主 project 是否计划做"节目素材批量处理编排层"?如有,Doco 的单期接口应满足什么样的契约(CLI?Python API?返回值结构?)
  • 23 期这次是先单期跑通再批量,还是要求一次性 batch?

Q4. 讯飞密钥更新/续费策略?

问题:demo 凭证可能已过期(制片人提示"讯飞试用可能也过了"),且需要区分消费端(讯飞听见 App)与开发端(开放平台)。

选项

  • A. Doco 子模块各自申请新凭证、各自管理
  • B. 接入中台统一密钥服务(如果有)
  • C. 申请新凭证 + 写入"中台密钥资产文档"作为登记

子项目推荐C

理由:现阶段中台密钥服务可能未完成,但密钥归属、过期日期、所属子模块应该有统一登记入口。

请主项目确认

  • 中台是否已有密钥管理子模块?
  • 新申请的讯飞开发端密钥(包括 APP_ID、SECRET_KEY、5 小时免费试用包激活状态)应该登记在哪里?
  • 如果 Q1 拍板用 DeepSeekDeepSeek API key 是否也按同样规则登记?

Q5. 目录结构与命名规约?

问题:23 期素材、抽帧产物、wav、终版 docx 的存储路径需要规约,否则后期归档混乱。

子项目草案

programs/
└── {episode_id}/                # 例:20260612_防空反导
    ├── source/
    │   ├── video.mp4            # 原始特殊视频(黑底白字+干净人声)
    │   └── a_draft.docx         # A 稿(编导定稿)
    ├── work/                    # 中间产物(可清理)
    │   ├── frames/              # 抽出的字幕关键帧
    │   ├── audio_16k.wav        # 抽音轨标准化产物
    │   ├── b_draft.txt          # OCR 产物(带 [Nm Ns] 时间戳)
    │   ├── asr_result.txt       # 讯飞 ASR 产物
    │   └── asr_result_raw.json  # 讯飞原始返回
    └── output/                  # 主产物(入档案库)
        ├── final.docx           # 终版文稿
        ├── diff_report.docx     # 差异报告
        └── needs_review.json    # 待编导确认队列

请主项目确认

  • TPS 中台是否对节目素材的目录有统一规约?
  • episode_id 命名规则是什么?(日期+栏目+期号?UUID?编导给定?)
  • work/ 中间产物保留多久?是否要自动清理?

五、不向主项目提问、但需要告知的事

  1. demo 的 5 份 fixture 仍然有效A 稿 / B 稿 / ASR / 终版 / 差异报告 在新流程下都可作为单元测试与集成测试的黄金对照
  2. 讯飞 ASR 脚本仍然有效xfyun_asr_standard.py 只需替换凭证、把"音频文件路径"参数从"独立 mp3"改为"视频抽音轨产物 wav"
  3. 23 期之后的常态化问题:栏目组以后是否每期都按"黑底白字+干净人声"特殊视频出素材?还是只这一批 23 期是特例?这影响 Doco 子模块要不要保留旧的 mp3+独立 OCR 流程作为回退路径。建议主项目顾问直接跟栏目组确认

六、给主项目顾问的"接手提示词"

如果主 project 顾问要审这份 PRD,最重要的三件事:

  1. 算法层零侵入是 demo 验证过的硬保证。任何改动如果会让 P3(Doco 融合引擎)必须改算法,需要警惕——大概率是输入数据形态没对齐。
  2. OCR 选型(Q1)和目录规约(Q5)是会广泛影响其他子模块的事,主项目顾问视野更大,应该是这两条的最终拍板人。如果主 project 有 OCR 能力或 DeepSeek 集成基础设施,Q1 的子项目推荐随时可被覆盖。
  3. 23 期是一次性还是常态化(§5 第 3 条)是个产品问题,不是技术问题,建议主项目顾问直接跟栏目组确认后再批 PRD。

七、回复期望

子项目这边等以下确认才正式开干:

  • Q1(OCR 选型)—— 必须先答,否则 P1 不能开始
  • Q4(讯飞密钥)—— 必须先答,否则 P2 不能开始
  • Q5(目录规约)—— 必须先答,否则 P1 输出无处可放
  • Q3(接口契约)—— P5 之前必须答
  • Q2 —— Doco 子模块可以先按推荐方案开干,主项目随后批

收到主项目 Claude 顾问的回复 md 后,Doco 子项目这边出 PRD v3(含元信息块标注"上一版:v2"),再启动 P1。


八、版本变更摘要

版本 日期 主要变化
v1 2026-06-12 首版。6 个待决问题(含子模块命名 Q6)。OCR 选型推荐 PaddleOCR 本地
v2 2026-06-12 子模块定名"Doco 文稿整理模块"Q1 改推荐 DeepSeek API(基于讯飞 OCR/STT 余额独立的事实查清 + 制片人手上已有 API 资源);Q6 已拍板移出待决列表;剩余 5 个待决问题

v2 由 Doco 子 project ClaudeOpus 4.7)于 2026-06-12 拟稿,遵照《跨 project 协作提示单 v1》§三的规范。