业务目标
把原片整理、词级转录、口癖/停顿/重复句候选、人工剪辑、审核锁版和导出清单纳入一个闭环。核心约束是建议可解释、误删可恢复、导出与批准版本一致。
- 先保证事实和语义完整,再减少机械剪辑时间。
- 质量观察包含关键内容保留、误删、可用初稿与主动工时。
AI TALKING VIDEO / PRODUCT REQUIREMENTS
将示例转录、词句时间码、人工剪辑决策和审核版本串为可追溯的工作流。
GOAL / USERS
把原片整理、词级转录、口癖/停顿/重复句候选、人工剪辑、审核锁版和导出清单纳入一个闭环。核心约束是建议可解释、误删可恢复、导出与批准版本一致。
MVP / SCOPE
记录素材完整性、音频时长、词句文本和毫秒级起止时间;转录结果形成版本。
展示口癖、停顿、重复句及理由;候选默认待审,支持保留、删除、恢复和上下文定位。
空素材、错误转录、待确认项或空保留集均阻断;审核动作绑定不可变版本。
列出素材hash、转录版本、决策、时间线、字幕和输出规格;导出只允许引用当前批准版本。
相关工作流包括字幕映射、B-roll候选、自然语言修改请求和虚拟形象配音;配音合成与口型驱动分别定义交付范围。
DATA CONTRACT
| 对象 | 字段 | 约束 |
|---|---|---|
| Project | project_id, name, owner_id, status, active_revision_id | 项目标识由服务端生成;当前修订引用明确。 |
| Asset | asset_id, original_uri, sha256, size_bytes, duration_ms, media_status | 声明分片、大小与hash校验通过后才可用;保留原素材引用。 |
| TranscriptWord | word_id, asset_id, start_ms, end_ms, text, asr_version, manual_text | 统一毫秒;起点小于终点且在素材范围内。 |
| EditDecision | revision_id, word_ids, action, reason, source, review_status | KEEP/DELETE语义固定,决策保留历史,不覆盖转录。 |
| Revision | revision_id, parent_id, transcript_version, decisions, timeline, checksum | 锁定后不可变;改动创建新修订并使旧批准不适用于新版本。 |
| Review | review_id, revision_id, reviewer_id, decision, reason, created_at | 批准或退回绑定一个revision_id。 |
| ExportManifest | manifest_id, revision_id, asset_hashes, output_spec, checksum, status | 仅从当前批准版本创建;记录输入与输出规格引用。 |
| Job | job_id, revision_id, stage, status, attempt, error_code, retryable | 任务成功与内容批准分别表示,不以进程启动判定成功。 |
原片时间与成片时间是两个坐标系。删除原片0–5秒后,源片5–12秒映射到成片0–7秒;字幕和辅助画面按映射定位。
PAGE FLOW
查看上传完整性、音频信息、识别覆盖和词句时间码;错误结果隔离,不覆盖既有确认版本。
逐条定位并定位原句上下文,确认保留/删除/待定;短句、数字和否定词默认保守处理。
检查待定项、剪辑映射和变更摘要;审核人批准具体revision,或记录理由退回。
选择规格并引用批准revision;校验文件、checksum和版本一致后记录结果。
STATE / VERSION
DRAFT → UPLOADING → READY → PROCESSING → REVIEW_REQUIRED → APPROVED → EXPORTING → SUCCEEDED / FAILED
失败记录stage、error_code、retryable与输入版本;失败不覆盖已确认内容。UNREVIEWED → IN_REVIEW → APPROVED / RETURNED → INVALIDATED
审核绑定revision;任何内容变更生成新revision,旧批准不对新版本生效。异常阻断:空素材不创建可审核转录;ASR零词/覆盖异常隔离候选结果;仍有待确认决策时拒绝锁版和导出;错误退出、不可解码文件或版本不匹配标记失败。
API CONTRACT EXAMPLE
以下路径与字段用于产品和研发对齐,展示请求结构、版本约束与错误回执。
POST /api/projects/{project_id}/assets/{asset_id}/transcripts
{ "source_hash": "sha256:…", "language": "zh-CN" }
→ 202 { "job_id": "job_123", "status": "PROCESSING" }
POST /api/revisions/{revision_id}/decisions
{ "word_ids": ["w_12"], "action": "DELETE", "reason": "重复录制" }
→ 200 { "revision_id": "rev_4", "status": "DRAFT", "pending_count": 0 }
POST /api/revisions/{revision_id}/approve
{ "expected_checksum": "sha256:…" }
→ 409 { "error_code": "REVIEW_REQUIRED", "pending_word_ids": ["w_18"] }
POST /api/exports
{ "revision_id": "rev_4", "output_spec": "standard_1080p" }
→ 409 { "error_code": "APPROVAL_REQUIRED", "approved_revision_id": null }
GET /api/jobs/{job_id}
→ 200 { "status": "FAILED", "stage": "ASR", "error_code": "ASR_TIMEOUT", "retryable": true }契约要求幂等键、revision与输入hash校验、结构化错误和可重试标识;成功导出要求媒体可读性与版本校验。
ACCEPTANCE / TEST CASES
| 用例 | 操作 | 预期 |
|---|---|---|
| AC-01 空素材 | 无素材或无有效音频时启动转录。 | 阻断任务;显示原因,不生成可审核空版本。 |
| AC-02 时间码合法 | 导入起止倒置、越界或零词结果。 | 隔离错误结果,保留上一确认版本。 |
| AC-03 候选人工确认 | 生成口癖、停顿和重复句建议。 | 候选默认待定;人工可保留、删除、撤销与恢复原句。 |
| AC-04 语义保护 | 两句仅差数字、单位或否定词。 | 并列展示并默认保留,须人工确认才可删除。 |
| AC-05 版本失效 | 批准V03后修改决策并生成V04。 | V03批准失效;新版本重新审核,不能沿用旧清单。 |
| AC-06 未审核导出 | 未批准revision请求导出。 | 服务端拒绝并返回APPROVAL_REQUIRED。 |
| AC-07 导出校验 | 进程失败、文件不可解码或版本不符。 | FAILED,无成功下载入口,可查看错误并按策略重试。 |
| AC-08 清单一致 | 预览V03、修改生成V04后请求V03清单。 | 清单严格对应不可变V03,不能用V04内容替代。 |