feat(ai-avatar): #1822 TTS直生对口型 + 语速/情绪透传 + MediaKit智能封面 #1826

Merged
xiaoxia merged 3 commits from feat/ai-avatar-contract-1822 into fix/ai-avatar-v3-1797 2026-09-09 20:03:34 +08:00
Owner

背景

基于 fix/ai-avatar-v3-1797,对齐 AI 数字人前后端接口契约(#1797/#1822),不动其他功能和现有 UI。

改动

  1. TTS→对口型打通:POST /lipsync/jobs 支持 TTS 直生模式(voice_id+script_text+speed+emotion),后端内部先 CosyVoice 合成音频→转存 OSS→提交 MediaKit;保留 audio_url 直接音频模式。前端无需先调 TTS。
  2. 语速/情绪透传:cosyvoice_service 新增 emotion + normalize_emotion(自然/兴奋/沉稳/亲切 → natural/excited/calm/friendly);TTS schema→use_case(metadata)→workflow(单段/分段/重合成)→preview 全链路透传 speed(rate)/emotion。
  3. 智能封面:新增 POST /ai-avatar/render/smart-cover 独立接口,复用 generation_cover 同款 MediaKit extract_frames + cover_frame_scorer 评分选帧(非 FFmpeg 首帧);渲染管线封面也优先智能选帧,MediaKit 不可用回退 FFmpeg。
  4. 标题字段:输出 title_config 字段清单(见契约文档)。
  5. 顺手修复 lipsync/ai_avatar 路由 current_user.id → current_user.user.id。
  6. lipsync refresh 中间状态同步 DB + 成片转存自家 OSS 防过期。

迁移

073_add_lipsync_tts_fields(voice_id/script_text/speed/emotion;audio_url 改可空)

测试

新增 11 单测,lipsync/cosyvoice/tts 相关 82 测试全绿。

文档

docs/ai-avatar-api-contract-1822.md(接口契约 + title_config 字段清单)

## 背景 基于 fix/ai-avatar-v3-1797,对齐 AI 数字人前后端接口契约(#1797/#1822),不动其他功能和现有 UI。 ## 改动 1. **TTS→对口型打通**:POST /lipsync/jobs 支持 TTS 直生模式(voice_id+script_text+speed+emotion),后端内部先 CosyVoice 合成音频→转存 OSS→提交 MediaKit;保留 audio_url 直接音频模式。前端无需先调 TTS。 2. **语速/情绪透传**:cosyvoice_service 新增 emotion + normalize_emotion(自然/兴奋/沉稳/亲切 → natural/excited/calm/friendly);TTS schema→use_case(metadata)→workflow(单段/分段/重合成)→preview 全链路透传 speed(rate)/emotion。 3. **智能封面**:新增 POST /ai-avatar/render/smart-cover 独立接口,复用 generation_cover 同款 MediaKit extract_frames + cover_frame_scorer 评分选帧(非 FFmpeg 首帧);渲染管线封面也优先智能选帧,MediaKit 不可用回退 FFmpeg。 4. **标题字段**:输出 title_config 字段清单(见契约文档)。 5. 顺手修复 lipsync/ai_avatar 路由 current_user.id → current_user.user.id。 6. lipsync refresh 中间状态同步 DB + 成片转存自家 OSS 防过期。 ## 迁移 073_add_lipsync_tts_fields(voice_id/script_text/speed/emotion;audio_url 改可空) ## 测试 新增 11 单测,lipsync/cosyvoice/tts 相关 82 测试全绿。 ## 文档 docs/ai-avatar-api-contract-1822.md(接口契约 + title_config 字段清单)
xiaoxia added 1 commit 2026-09-09 19:13:37 +08:00
feat(ai-avatar): TTS直生对口型 + 语速/情绪透传 + MediaKit智能封面 + 契约文档
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m52s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 6m37s
a27ed596b4
- 对口型支持 TTS 直生模式:POST /lipsync/jobs 传 voice_id+script_text(+speed/emotion),
  后端内部调 CosyVoice 合成音频→转存OSS→提交 MediaKit;保留 audio_url 直接音频模式
- cosyvoice_service: 新增 emotion 参数 + normalize_emotion(中文 自然/兴奋/沉稳/亲切
  映射 natural/excited/calm/friendly),空值不透传
- TTS 链路 speed/emotion 全链路透传:schema→use_case(metadata)→workflow(单段/分段/重合成)
  →submit_synthesize_task(rate/emotion);preview 即时试听同步
- lipsync refresh: 中间状态(running/processing)同步DB;completed 输出视频转存自家OSS防过期
- 修复 lipsync/ai-avatar 路由 current_user.id → current_user.user.id(AuthenticatedUser 无 .id)
- 新增 POST /ai-avatar/render/smart-cover 独立封面接口:复用 MediaKit extract_frames
  + cover_frame_scorer 评分选最佳帧(非 FFmpeg 首帧),渲染管线封面同样优先智能选帧
- 迁移 073: lipsync_jobs 增加 voice_id/script_text/speed/emotion 列,audio_url 改可空
- docs/ai-avatar-api-contract-1822.md: 前后端接口契约 + title_config 字段清单
- 新增 11 个单测(情绪归一化/payload透传/TTS直生/中间状态/智能封面),相关 82 测试全绿

Refs #1797 #1822
xiaoxia added 2 commits 2026-09-09 19:55:04 +08:00
将健康检查命令直接写入 Docker 镜像,确保 Watchtower 重建容器时使用正确的健康检查。
修复 Worker 容器持续显示 unhealthy 的问题。
fix(ai-avatar): 契约文档标题字段纠正 + script_id 改为可选
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m37s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been skipped
AI Code Review / AI Code Review (pull_request) Successful in 6m25s
4d09bd630e
- 文档 §5/§6:标题是单个 title_config dict(非 titles[] 数组),字段以
  build_title_drawtext_filter() 为准:text/content、font_size/size、
  font_color/color、position(top/center/bottom/custom)、pos_x/pos_y、bold、
  stroke、shadow、enabled;删除不存在的 titles[]/fontSize/frame/start/end 描述
- script_id 改为可选:手动输入文案/TTS 直生场景不关联文案库条目,留空不校验,
  避免手动文案用户被 ScriptNotFound 卡住;选了文案库时仍做归属校验
- 迁移 074:ai_avatar_render_jobs.script_id 默认空串
- 新增 schema 单测(script_id 空/空白/title_config 单 dict),94 测试全绿

Refs #1797 #1826
xiaoxia merged commit 6e99e64f73 into fix/ai-avatar-v3-1797 2026-09-09 20:03:34 +08:00
Sign in to join this conversation.