feat(ai-avatar): 前端对接 #1826 后端契约 — 模式A对口型/语速情绪/智能封面/标题字段映射 #1828

Merged
xiaoxia merged 1 commits from feat/ai-avatar-frontend-contract-1822 into fix/ai-avatar-v3-1797 2026-09-09 21:00:46 +08:00
Owner

背景

对接后端 PR #1826(已合入 fix/ai-avatar-v3-1797)的接口契约。仅前端改动,后端保持 #1826 不变。

改动内容

  1. 修 422 对口型(模式A TTS直生)video_url(素材 id 先经 /assets/{id}file_url,禁传 video_asset_id)+ voice_id + script_text + speed + emotion(英文枚举)。不先调 TTS 拿 audio_url。
  2. 语速/情绪生效:提交对口型与克隆试听 previewTts 均透传 speed;情绪中文 自然/兴奋/沉稳/亲切 → natural/excited/calm/friendlynormalizeEmotion 防御性映射)。
  3. 智能封面接通:按钮真实调 POST /ai-avatar/render/smart-cover,基于对口型成片 output_video_url MediaKit 抽帧评分,返回 cover_url 写入封面预览;未完成对口型时按钮禁用并提示。
  4. 标题字段映射(关键):提交 render 的 title_configpackages/domain/video_filter_builder.pybuild_title_drawtext_filter() 为唯一口径 → text/font_size/font_color(#RRGGBB)/position(top/center/bottom/custom,口播默认 bottom)/enabled/bold/stroke/shadow/pos_x/pos_y不传 文档误写的 titles[]/fontSize/frame/start/end。新增 utils/contract.ts 转换层。
  5. 标题默认位置 bottom:避免不传时后端默认 top 跑到画面顶部;预览覆盖层 top/bottom/center 三分支已对应。
  6. 保留全部既有前端修复:进度弹窗、标题 TextArea + 实时预览、TitleLibraryModal、getScripts 白屏修复、文案库、侧边栏缩窄等(本 PR 同步把 develop 上已验证的前端修复带入 fix 分支,相对 develop 真正新增的仅 ai-avatar 契约对接)。

验收链路

选视频 → 选音色(调语速/情绪) → 输文案 → 生成对口型(无422、轮询识别 running) → 标题在口播预览可见且位置正确 → 智能封面出图 → 提交渲染。

校验

  • npx tsc --noEmit:ai-avatar/contract 零错误(仅存 develop 本就有的 3 个测试类型包/baseUrl 环境噪声,非本次代码)。
  • 待 staging 部署后端 #1826 后全链路联调。
## 背景 对接后端 PR #1826(已合入 fix/ai-avatar-v3-1797)的接口契约。**仅前端改动**,后端保持 #1826 不变。 ## 改动内容 1. **修 422 对口型(模式A TTS直生)**:`video_url`(素材 id 先经 `/assets/{id}` 换 `file_url`,禁传 `video_asset_id`)+ `voice_id` + `script_text` + `speed` + `emotion`(英文枚举)。不先调 TTS 拿 audio_url。 2. **语速/情绪生效**:提交对口型与克隆试听 `previewTts` 均透传 `speed`;情绪中文 自然/兴奋/沉稳/亲切 → `natural/excited/calm/friendly`(`normalizeEmotion` 防御性映射)。 3. **智能封面接通**:按钮真实调 `POST /ai-avatar/render/smart-cover`,基于对口型成片 `output_video_url` MediaKit 抽帧评分,返回 `cover_url` 写入封面预览;未完成对口型时按钮禁用并提示。 4. **标题字段映射(关键)**:提交 render 的 `title_config` 以 `packages/domain/video_filter_builder.py` 的 `build_title_drawtext_filter()` 为唯一口径 → `text/font_size/font_color(#RRGGBB)/position(top/center/bottom/custom,口播默认 bottom)/enabled/bold/stroke/shadow/pos_x/pos_y`;**不传** 文档误写的 `titles[]/fontSize/frame/start/end`。新增 `utils/contract.ts` 转换层。 5. **标题默认位置 bottom**:避免不传时后端默认 top 跑到画面顶部;预览覆盖层 top/bottom/center 三分支已对应。 6. **保留全部既有前端修复**:进度弹窗、标题 TextArea + 实时预览、TitleLibraryModal、getScripts 白屏修复、文案库、侧边栏缩窄等(本 PR 同步把 develop 上已验证的前端修复带入 fix 分支,相对 develop 真正新增的仅 ai-avatar 契约对接)。 ## 验收链路 选视频 → 选音色(调语速/情绪) → 输文案 → 生成对口型(无422、轮询识别 running) → 标题在口播预览可见且位置正确 → 智能封面出图 → 提交渲染。 ## 校验 - `npx tsc --noEmit`:ai-avatar/contract 零错误(仅存 develop 本就有的 3 个测试类型包/baseUrl 环境噪声,非本次代码)。 - 待 staging 部署后端 #1826 后全链路联调。
xiaoxia added 1 commit 2026-09-09 20:34:13 +08:00
feat(ai-avatar): 前端对接 #1826 后端契约 — 对口型模式A/语速情绪透传/智能封面/标题字段映射
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m36s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 6m27s
9f8a772b4c
- 对口型模式A: video_url(素材换file_url,禁传video_asset_id)+voice_id+script_text+speed+emotion(英文枚举)
- 标题 title_config 按 build_title_drawtext_filter 真实口径映射(text/font_size/font_color/position默认bottom/enabled/bold/stroke/shadow), 弃用文档误写的 titles[]/fontSize/frame
- 封面按钮接通 POST /ai-avatar/render/smart-cover, 基于对口型成片MediaKit选帧
- 试听 previewTts 透传 speed + 情绪中文→英文(natural/excited/calm/friendly)
- 新增 utils/contract.ts 转换层; types 补 pos_x/pos_y、smart_cover_url, 标题默认位置 bottom
- 同步 develop 全部前端修复(进度弹窗/标题TextArea实时预览/白屏修复/文案库/侧边栏等)
xiaoxia merged commit f4cac1dc6e into fix/ai-avatar-v3-1797 2026-09-09 21:00:46 +08:00
Sign in to join this conversation.