feat: CCA 唱词助手子项目 v3 — 脚本版流水线完成

新增 cca/ 子项目:编导A稿+人声音频 → ASR+AI校对+AI折行 → 5段SRT字幕。
- 讯飞录音文件转写标准版(热词注入)
- DeepSeek AI校对(严格纪律:只改错别字/术语/填充词,不润色)
- DeepSeek AI折行(语义断句,≤14字/行)
- 节目结构自动切分(导视/正片×3/预告)
- 绝对时间戳SRT输出(大洋系统兼容)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
simonkoson
2026-07-04 15:25:08 +08:00
parent 1ccb37f0c7
commit ede30d3043
21 changed files with 5530 additions and 1 deletions
+129
View File
@@ -0,0 +1,129 @@
# CCA 唱词助手子项目 Brief
> 主项目 → 子项目的"交接宪法":红线、技术栈、出入口接口
> 起草日期:2026-07-04
> 状态:主项目签发,子项目内部不修改
---
## 一、为什么做
**痛点**:《军事科技》每期节目剪辑完成后,编导需要制作一份唱词字幕(SRT 文件)交给责编拉到大洋系统上线。目前纯手工操作——对照 A 稿听音频逐句打字幕,费时且容易出错。
**升级目标**:编导只需提供 A 稿 + 粗编人声音频,系统自动走 ASR + AI 校对 + 编导审稿确认,最终输出大洋系统可直接使用的 SRT 文件。
**紧迫性**:切实解决当前痛点,功能不复杂,两天内出可用版本。先独立部署测试,成熟后并入 TPS 主项目。
---
## 二、做什么(功能边界)
| 模块 | 简述 |
|---|---|
| 专有名词提取 | AI 从 A 稿中摘取军事专有名词(型号、人名、机构等),形成热词词典 |
| 讯飞 ASR 转写 | 音频 + 词典 → 带时间戳的 ASR 稿 |
| AI 校对比对 | ASR 稿 ⊕ A 稿比对,自动修正明显错误,标记存疑差异 |
| 编导审稿台 | 双屏对比 UI,差异高亮,编导点击确认/手动修改 |
| SRT 生成 | B 稿按拍词规则折行 + 时间戳 → 大洋格式 SRT |
**具体怎么做,子项目内部讨论,本 Brief 不预设方案。**
---
## 三、怎么用(目标流程)
1. 编导剪完节目,手头有 A 稿(docx/txt)+ 粗编纯人声音频
2. 编导上传 A 稿和音频到 CCA 系统
3. 系统自动:提取专有名词 → 讯飞 ASR → AI 校对 → 生成初版对比
4. 编导进入审稿台:查看差异、确认/修改
5. 系统输出 SRT 文件
6. 责编拿 SRT 拉到大洋系统形成唱词字幕
---
## 四、不做什么(红线)
-**不替代编导审稿**:AI 拿不准的必须过编导确认,不全自动出 SRT
-**不改 A 稿内容**:A 稿只用于提取专有名词和提供参照,不回写
-**不动主项目 backend 代码 / schema**(在吸收进主项目之前)
-**不复用主项目 backend/.env 的凭证**(子项目自己 .env
-**不用讯飞大模型版 ASR**(用录音文件转写标准版,与 doco 一致)
-**不做视频处理**(输入是已分离的纯人声音频,不是视频)
-**不做内容创作**(AI 只校对不创作,尊重 ASR 底稿 + 编导意见)
---
## 五、技术栈约束
- **运行环境**Python 3.x + Web 前端(审稿台)
- **ASR**:讯飞开放平台 录音文件转写标准版(热词偏置注入)
- **AI/LLM**:用于专有名词提取 + 校对(具体模型子项目讨论,省 token 优先)
- **输出格式**:SRT(大洋系统兼容,有样本)
- **部署**:先部署 lanhao 配音 2.0 网站测试,后续并入 TPS
- **美术风格**:参考 `ai-labeling/example/` 目录下的设计稿(`功能区划.jpg``幅面参考.jpg``页面风格.webp`),CCA 的 UI 风格与 TPS 主项目保持一致
---
## 六、交付什么(出口接口)
### 6.1 并入架构(同一服务器、同一进程)
CCA 最终**不是独立微服务**,而是代码合并进 TPS 同一套服务:
- **后端**CCA 的 API 路由并入 `backend/app/api/`(如 `cca.py`),业务逻辑并入 `backend/app/services/`(如 `cca_service.py`),共用同一个 FastAPI 进程
- **前端**CCA 页面并入 `frontend/src/pages/`(如 `CCA/` 目录),作为 TPS React 应用的一个路由页面(`/cca`
- **同一台服务器**:不存在跨服务调用,共用 TPS 的 PostgreSQL、同一个 `.env`
### 6.2 开发阶段的独立形态
并入前的开发测试阶段,CCA 以独立可运行的 Web 应用存在:
- 独立的后端(FastAPI 或轻量框架)+ 前端(审稿台 UI)
- 可单独部署到 lanhao 配音 2.0 网站跑通验证
- 代码结构从一开始就按"能干净并入 TPS"设计(目录命名、API 风格、前端组件规范对齐主项目)
### 6.3 具体交付清单
| 交付物 | 说明 |
|---|---|
| CCA 后端 API | 文件上传(A稿+音频)、ASR 任务触发/轮询、校对结果、审稿确认、SRT 下载 |
| 讯飞 ASR 适配层 | 热词注入 + 转写 + 解析,可被主项目其他模块复用(与 doco 逻辑同源) |
| 专有名词提取服务 | AI 从 A 稿提取军事专名 → 热词词典 |
| AI 校对比对服务 | ASR 稿 ⊕ A 稿差异标记(自动修正 + 存疑清单) |
| 编导审稿台前端 | 双屏对比 UI + 差异高亮 + 确认/手改交互 |
| 拍词折行引擎 | 按规则把 B 稿折行 + 结合时间戳生成 SRT |
| SRT 输出 | 大洋系统兼容格式(有样本对标) |
### 6.4 配置与凭证
- 开发阶段:cca 自己的 `.env`(讯飞 Key + LLM Key
- 并入后:凭证合并进 TPS 主项目 `backend/.env`,讯飞 Key 可与 doco 共用
- 主项目 `docs/api_credentials_inventory.md` 登记 CCA 凭证元信息
### 6.5 不接受
- 并入前,子项目自己改主项目 backend 代码、schema、迁移
- 未经主项目审批引入主项目没有的技术栈
- 并入时引入与主项目冲突的依赖版本
---
## 七、入口接口(子项目要知道的主项目现状)
- **主项目已有讯飞 ASR 经验**:doco 子项目已跑通讯飞录音文件转写标准版,签名/上传/轮询/解析全套逻辑可复用
- **主项目有 `api_credentials_inventory.md`**:凭证元信息登记表
- **主项目有跨子项目协作规则**:PRD 版本管理等,见 `跨子项目协作规则.md`
---
## 八、制片人待提供
- [ ] 拍词规则(责编拍词的具体 markdown 规则文档)
- [ ] 大洋 SRT 样本文件(一份能用的真实样本)
- [ ] 粗编音频样本(一期的真实音频,用于开发测试)
- [ ] A 稿样本(对应的编导 A 稿)
---
## 九、本 Brief 自身的修订规则
- 本 Brief 不在子项目内修改
- 红线/技术栈如有变更,**主项目这边发新版**
- 子项目可在自己的 chat 里建议调整,调整动作只能在主项目发生