4.4 KiB
4.4 KiB
Handoff to opus_chat · TPS三方融合子模块
这份是发给中台 opus_chat 的最短交接说明。完整设计见
project_design.md。
这是什么
《军事科技》TPS(终版文稿生成中台)下的一个子模块,叫"三方融合"。
它做的事:把三份资料合并成一份贴近实际播出的终版 docx 文稿,并生成一份差异报告。
三份资料是:
- A 稿 — 编导手写定稿(docx,有【主持人N】【解说N】【专家N】【动画N】结构标签)
- B 稿 — OCR 扒词(txt,带
[Nm Ns]时间戳,有 OCR 错字) - ASR — 讯飞录音文件转写结果(txt,带
[Nm Ns]时间戳,有同音误识)
你需要记住的 5 件事
1. 三方权威优先级(最重要,不要搞反)
| 看什么 | 信谁 |
|---|---|
| 术语 / 人名 / 装备型号 / 事实 | A 稿 |
| 标点 / 语序 / 口吻 | ASR |
| OCR 字形错(肘/时、娈/变) | 用 ASR 或 A 稿 覆盖 B 稿 |
| 整段是否存在 | B 稿 + ASR 联合判定 |
为什么 A 稿术语优先?demo 中 ASR 把"美以两国"识别成了"美伊两国"——句子通顺、语义荒谬。无 A 稿无法发现。
2. 架构是双层(不是单层 AI)
规则层(Python) AI 层(Claude API)
├ OCR 错字映射 ├ 段落对齐
├ A 稿术语字典覆盖 ├ 改动类型判定
├ 时间戳对齐 ├ 整段改写边界
├ 数字 / 标点规范化 └ 编导笔误识别
└ 口语词清理(可配置)
确定性的事走规则层,需要语义判断的事走 AI 层。不要全塞给 AI。
3. 输入有严格规范
- A 稿:自然段开头
【…】是结构标签;隔断:【…】是章节分隔 - B 稿 / ASR:每行格式
[Nm Ns] 句子内容 - 音频(如果走完整流程从音频开始):必须 16kHz / 单声道 / 16bit WAV,否则讯飞拒收
4. 讯飞 ASR 有坑(开发前必读)
- 用"录音文件转写(标准版)",不要用"大模型版"(免费包阉割了
language参数) - 领域参数
pd=mil(军事节目专用) - 顺滑参数
eng_smoothproc=true+eng_colloqproc=true - 热词机制是关键:每期从 A 稿提 200 字以内的专业术语作为
hotWord - 讯飞消费端(讯飞听见 App)和开发端(开放平台)密钥不通用
- "5 小时免费试用"必须走 0 元购买流程激活
- 签名:
signa = base64(HmacSHA1(MD5(appid + ts), secretKey))
详见 demo 中的 xfyun_asr_standard.py。
5. 输出有两份,不只一份
- 终版.docx — 主产物,给档案库
- 差异报告.docx — 副产物,给编导回顾。差异报告的长期价值可能比终版更高(能反向分析编导删改偏好)
我和这个模块的关系
- 你(opus_chat):中台对话入口,可能会被用户问到本模块的边界 / 接口 / 状态
- 本模块:被 TPS 主流程调用,输入三份文本,输出两份 docx + 一份 JSON
- 不归我管:音频转码、OCR 识别本身、档案入库、编导确认 UI
如果用户问以下内容,统一口径:
| 问题 | 答 |
|---|---|
| "能不能不用 A 稿?" | 不能。会引入 ASR 的同音事实错误,且术语全乱。 |
| "能不能不用 B 稿?" | 可以,但失去独立交叉验证;不推荐。 |
| "能不能不用 ASR?" | demo 证明 A+B 也能跑,但效果显著下降;不推荐。 |
| "ASR 选讯飞还是别家?" | 当前讯飞。已踩坑、已跑通;阿里云是规划中的备份。 |
| "AI 用哪个模型?" | Claude Sonnet 4.6 起步,单期 26 分钟节目约 16k 字上下文。 |
| "处理一期要多久?" | 正式版预估 15–30 分钟(含人工确认);demo 实测 2 小时但近一半花在踩讯飞坑上。 |
demo 状态
- 已完整跑通一期《现代防空反导大对决》(26 分钟)
- 关键术语识别率接近 100%(开启 35 条热词后)
- 主要修复:OCR 错字 10+ 类、ASR 同音误识 4 类、编导笔误 1 段、整段删除 2 段
- 复盘文档:
实测复盘.md - 设计文档:
project_design.md
不一致时怎么办
如果你(opus_chat)发现本备忘与 project_design.md 不一致,以 project_design.md 为准。
如果你发现 project_design.md 本身需要更新,请同步刘统制片组。