显式配音与时间窗
默认政策与触发
普通正式后期保留原片原声;无音轨也不会自动补台词。只有用户或已定制作请求明确选择配音、TTS、音色替换时才调用 voicewrite.speak / dub。成功渲染镜头不因“没有念全台词”、嘴型不准、声音不好听或响度值再拒收。
克隆音色的真实授权、使用范围与当前声纹档案仍保留。独立 voicewrite.verify 是明确诊断入口,不在合成、混流或母版默认验收中调用。
一、输入与参数表
| 项 | 实际用途 | 边界 |
|---|---|---|
| video / out | 原视频与新配音版 | 真实文件、允许路径,禁止覆盖源片 |
| profile | 已授权的音色档案 | 不得假设注册成功等于所有外发授权 |
| text / text_file | 一段请求文字 | 不静默改稿、缩写或凭 ASR 替换 |
| segments | 分段起点、文字与时间窗 | 起点有限且非负,时窗合法,保持声明顺序 |
| policy | 原声保留与明确混流策略 | 丢原声需要 allow_discard_original 授权 |
| lufs / duck_db / original_gain_db | 请求的处理参数 | 不是原声品质放行分数 |
| allow_overflow | 明确允许超窗的兼容项 | 不能用它隐藏真实越窗或改动未声明文字 |
二、工艺决策
- 用户要求保留原声:原 program 保留,可明确加旁白或音乐;不自动分离、重录或降噪。
- 用户要求配音:按给定正文、音色、段落时间窗执行一次引擎合成,再一次混流;视频编码包 copy。
- 配音句子放不进明确时间窗:作为请求处理错误上报,不自动加速台词、改稿或循环试语速冒充完成。
- 旧视频原音轨含对白与环境声时,它是完整 program,不能假称已经获得独立 dialogue / ambient stems。
- 无音轨时,明确配音可以生成新请求声音;普通原片交付仍保留无轨事实,不自动 TTS。
三、可执行入口
node bundles/ai-video/connectors/voice-bridge/cli.mjs voices
node bundles/ai-video/connectors/voice-bridge/cli.mjs speak --profile authorized-voice --file script.txt --out narration.wav
node bundles/ai-video/connectors/voice-bridge/cli.mjs dub --in master.mp4 --out dubbed.mp4 --profile authorized-voice --segments segments.json --policy keep-dialogue
本技能展示接口,执行前仍需本任务明确配音授权;不要把“默认后期包含 voice 阶段”解释为新 TTS 请求。
四、SOP 与证据口径
- 触发:收到明确配音请求。读取授权音色、原视频与逐段正文。回执:profile、授权范围、源视频哈希与段落清单。失败:授权、文件、时窗或作用域错误停止。
- 触发:合成条件满足。调用一次已授权引擎,再按原声策略混流。回执:真实引擎、调用参数、段落音频与混流命令。失败:引擎、解码、混流或时间窗错误传播,不改稿或补第二套声音。
- 触发:输出完成。核对文件、音轨、视频 copy 与源片保持。回执:输出 SHA-256、字节数、qualityReviewed=false、未测 asr/lufs/peak 字段。失败:缺产物或视频编码包改变停止出口,保留真实失败日志。
五、参数边界
- 必须保留原片与历史文件,禁止输入输出同路径。
- 必须有明确的音色使用许可;不自动申请更宽范围或替换未经授权的声音。
- 禁止以人声活动、台词相似率、嘴型、LUFS 或峰值品质阈值触发重 TTS。
- 禁止把实际处理失败用静音或旧音轨兜底后声明配音完成。
六、失败模式(原因 → 处置)
| 症状 | 原因 / 检测器 | 处置 |
|---|---|---|
| 引擎不可用 | 实际进程、网络或模型加载错误 | 保留错误与已生成段落,停止,不切未授权引擎 |
| 音色授权不足 | consent 范围、有效期或档案不符 | 停止该调用,指出实际授权缺项 |
| 句子越窗 | 请求时窗与真实段落处理冲突 | 报具体段落与时间,不自动改台词或重合成 |
| 视频被重新编码 | video packet SHA 不一致 | 停止交付,定位混流参数,原片保持 |
| 原声意外消失 | policy / allow_discard_original 与实际映射不符 | 报真实错误,不把原声丢失记为默认成功 |
| 用户要求换音色 | 明确新请求 | 新授权、新版本,仅处理声音层,镜头复用 |
输出契约
每次明确配音请求交付新音频或新视频文件及其当前 SHA-256、实际时长、采样率和声道;记录采用的音色档案、授权范围、原稿、逐段时间窗、实际引擎与混流参数。原视频编码包与原片来源保持,丢弃原声仅在明确授权时记录。工具、来源或时窗失败必须保留错误,不交付旧文件冒充本次产物。
回执注明本次是否执行了请求响度处理,qualityReviewed=false,未测 ASR、嘴型、LUFS 或音色品质保持 null/未核实。版本只增不覆盖,用户后续换音色或改一句话形成新的明确请求,不触发画面重生成。