fix(ai-avatar): 修复B-roll文案时长全为0.0s的问题 #1871

Merged
auto-approve-bot merged 2 commits from fix/ai-avatar-broll-timing-zero into develop 2026-09-12 15:00:56 +08:00
Collaborator

根因

TTS 任务步骤 2.5 重新从 OSS 下载音频做静音检测,但 OSS 私有桶 URL 未签名导致下载失败,异常被静默吞掉,sentence_timings 永远为 null。前端拿到 null 后降级估算,但 outputDuration 依赖 MediaKit 返回的视频时长(对口型完成前为0),导致时间全是 0。

修复

  • 后端: 直接复用步骤 2 已下载到内存的 audio_data,不再重新下载 OSS
  • 后端: 增加详细日志(ffprobe输出、异常详情),方便后续排查
  • 后端: 增加空数据防御检查
  • 前端: hasBackendTimings 判断增加长度匹配检查,防御异常数据
## 根因 TTS 任务步骤 2.5 重新从 OSS 下载音频做静音检测,但 OSS 私有桶 URL 未签名导致下载失败,异常被静默吞掉,`sentence_timings` 永远为 null。前端拿到 null 后降级估算,但 `outputDuration` 依赖 MediaKit 返回的视频时长(对口型完成前为0),导致时间全是 0。 ## 修复 - **后端**: 直接复用步骤 2 已下载到内存的 `audio_data`,不再重新下载 OSS - **后端**: 增加详细日志(ffprobe输出、异常详情),方便后续排查 - **后端**: 增加空数据防御检查 - **前端**: `hasBackendTimings` 判断增加长度匹配检查,防御异常数据

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1871 | | 预览链接 | [https://pr-1871.preview.xiaoxiajianji.com](https://pr-1871.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
Collaborator

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.
frontend-dev added 2 commits 2026-09-12 14:53:05 +08:00
根因: TTS任务步骤2.5重新从OSS下载音频做静音检测,但OSS私有桶URL未签名导致下载失败,
异常被静默吞掉,sentence_timings 永远为 null。前端拿到null后降级估算,
但outputDuration依赖MediaKit返回的视频时长(对口型完成前为0),导致时间全是0。

修复:
- 后端: 直接复用步骤2已下载到内存的audio_data,不再重新下载OSS
- 后端: 增加详细日志,方便排查静音检测异常
- 后端: 增加空数据防御检查
- 前端: hasBackendTimings判断增加长度匹配检查,防御异常数据
style: auto-format with black + isort [skip ci-format-check]
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 41s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 42s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 1m7s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m10s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m22s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m51s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m44s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m9s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 3m17s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m18s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 3m32s
AI Code Review / AI Code Review (pull_request) Successful in 6m18s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 7m1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 4s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 5m3s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 5s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 51s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 96h23m39s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 96h30m32s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 96h30m38s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 96h29m58s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 96h30m12s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 96h30m12s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 96h30m17s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 96h30m18s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 96h30m24s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 96h29m56s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 96h23m16s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 96h23m16s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 96h23m19s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 96h23m19s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 96h29m57s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 97h5m19s
e9a9133e02
frontend-dev force-pushed fix/ai-avatar-broll-timing-zero from 67efbb95e0 to e9a9133e02 2026-09-12 14:53:05 +08:00 Compare
auto-approve-bot merged commit 774dd27844 into develop 2026-09-12 15:00:56 +08:00
auto-approve-bot deleted branch fix/ai-avatar-broll-timing-zero 2026-09-12 15:00:56 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #1871 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.