feat(#632): 配音素材库音频架构统一,迁移到audio图层混音 #750

Merged
auto-approve-bot merged 1 commits from feat/voice-library-audio-unified-arch into develop 2026-07-23 10:43:48 +08:00
Owner

背景

一键生成路径中配音素材库音频使用独立的后处理 _mux_audio_track(直接ffmpeg mux替换音轨),与 UnifiedRenderService 的 audio 图层混音架构不统一,无法与 BGM/TTS 做混音音量平衡。

改动

  1. UnifiedRenderService:新增 voiceover_audio_path 参数 + _maybe_add_voice_library_layer 方法,将配音素材库音频作为 audio 图层的 clip 加入统一混音链路
  2. RenderAdapter_do_renderrender_from_memory 透传 voiceover_audio_path 参数
  3. generation.py:删除后处理 _mux_audio_track 调用,配音音频直接传入渲染引擎

行为变化

  • 从「替换原音轨」改为「混音叠加」,与 TTS 配音行为一致
  • 支持配音 + BGM + 视频原声三者同时存在并正确混音
  • 有配音时自动禁用直通模式(与 TTS 配音行为一致)

验证

  • 162 个渲染单测全部通过
  • 35 个 generation 单测全部通过
  • 95 个 voice_library 单测全部通过
## 背景 一键生成路径中配音素材库音频使用独立的后处理 `_mux_audio_track`(直接ffmpeg mux替换音轨),与 UnifiedRenderService 的 audio 图层混音架构不统一,无法与 BGM/TTS 做混音音量平衡。 ## 改动 1. **UnifiedRenderService**:新增 `voiceover_audio_path` 参数 + `_maybe_add_voice_library_layer` 方法,将配音素材库音频作为 audio 图层的 clip 加入统一混音链路 2. **RenderAdapter**:`_do_render` 和 `render_from_memory` 透传 `voiceover_audio_path` 参数 3. **generation.py**:删除后处理 `_mux_audio_track` 调用,配音音频直接传入渲染引擎 ## 行为变化 - 从「替换原音轨」改为「混音叠加」,与 TTS 配音行为一致 - 支持配音 + BGM + 视频原声三者同时存在并正确混音 - 有配音时自动禁用直通模式(与 TTS 配音行为一致) ## 验证 - 162 个渲染单测全部通过 - 35 个 generation 单测全部通过 - 95 个 voice_library 单测全部通过
xiaoxia added 1 commit 2026-07-23 10:36:45 +08:00
feat(#632): 配音素材库音频架构统一,迁移到audio图层混音
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 25s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 21s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 19s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 32s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 1m41s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 37s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 42s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 33s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 38s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m44s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 23s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 6m29s
AI Code Review / AI Code Review (pull_request) Successful in 7m25s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 11m25s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 31m20s
cd8fb98c1b
- UnifiedRenderService 增加 voiceover_audio_path 参数
- 新增 _maybe_add_voice_library_layer 方法,配音素材库音频加到audio图层
- 与TTS配音、BGM共享统一混音链路,支持音量平衡
- RenderAdapter 透传 voiceover_audio_path 参数
- 删除一键生成路径中后处理 _mux_audio_track 调用
- 行为:从替换音轨改为混音叠加,与TTS配音行为一致
auto-approve-bot approved these changes 2026-07-23 10:42:13 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-23 10:42:13 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。

🚀 预览环境已部署

项目 详情
PR号 #750
预览链接 https://pr-750.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #750 | | 预览链接 | [https://pr-750.preview.xiaoxiajianji.com](https://pr-750.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot merged commit 72b62a60c4 into develop 2026-07-23 10:43:48 +08:00
auto-approve-bot deleted branch feat/voice-library-audio-unified-arch 2026-07-23 10:43:49 +08:00

🗑️ 预览环境已清理

PR #750 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #750 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Collaborator

代码审查结果 - PR #750

⚠️ 问题(0个需要修改)

💡 建议(1个可选)

  1. unified_render_service.py 第859行:建议优化导入方式,避免在方法内部使用 from video_processing.unified_render_service import _LAYER_Z_INDEX。虽然这能解决常量定义顺序问题,但属于循环导入规避技巧,不够优雅。建议将 _LAYER_Z_INDEX 移至文件顶部定义,或重构为类常量/配置类。

格式检查通过 | 逻辑审查通过 | 性能良好


🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 10:46:24 | 模型:

## 代码审查结果 - PR #750 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(1个可选) 1. `unified_render_service.py` 第859行:建议优化导入方式,避免在方法内部使用 `from video_processing.unified_render_service import _LAYER_Z_INDEX`。虽然这能解决常量定义顺序问题,但属于循环导入规避技巧,不够优雅。建议将 `_LAYER_Z_INDEX` 移至文件顶部定义,或重构为类常量/配置类。 --- ✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 10:46:24 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
Sign in to join this conversation.