fix: 上传的配音素材直接使用 file_url,不调 TTS 合成 #1499
Closed
xiaoxia
wants to merge 1 commits from
fix/voice-preview-materials-v2 into develop
pull from: fix/voice-preview-materials-v2
merge into: xiaoxia:develop
xiaoxia:main
xiaoxia:develop
xiaoxia:fix/1718-callback-error-observability
xiaoxia:feature/wechat-bind-unbind-1719
xiaoxia:feature/wechat-state-redis-1718
xiaoxia:feature/celery-queue-isolation-1714
xiaoxia:fix/1677-review-followups
xiaoxia:feat/1677-canvas-batch-preview
xiaoxia:feat/1677-batch-generation
xiaoxia:fix/dedup-exclude-self-1702
xiaoxia:fix/dedup-zero-rate-1702
xiaoxia:fix/style-main-sync
xiaoxia:release/sync-develop-20260904
xiaoxia:fix/voice-duration-filter-and-warning-removal
xiaoxia:feature/clip-duration-voice-alignment
xiaoxia:fix/title-position-fallback-wrap-consistency
xiaoxia:fix/dedup-coverage-and-retry-bug
xiaoxia:feature/1659-dynamic-keyframe-sliding-window
xiaoxia:fix/ai-badge-overflow
xiaoxia:feat/cross-video-avoidance-1670
xiaoxia:feat/fingerprint-chunks-1657
xiaoxia:fix/ai-badge-fallback
xiaoxia:fix/extract-voice-api-path
xiaoxia:fix/ruff-b904-voices
xiaoxia:feat/segment-random-shuffle-1663
xiaoxia:fix/tts-duration-and-video-extract
xiaoxia:feat/extract-video-voice-and-source-label
xiaoxia:fix/auto-merge-race-condition
xiaoxia:diag/ref-env-test
xiaoxia:fix/upload-asset-not-visible-immediately
xiaoxia:infra/fix-main-workflows
xiaoxia:fix/ci-mypy-integ
xiaoxia:fix/disable-pr-auto-scan-schedule
xiaoxia:ci/canary-workflow
xiaoxia:fix/playwright-base-image
xiaoxia:feat/config-phase4-env-render
xiaoxia:fix/ci-production-deploy-skip
xiaoxia:fix/remove-duplicate-034-migration
xiaoxia:feat/ci-base-image-autobuild
xiaoxia:fix/preset-4items
xiaoxia:feat/smart-match-integration
xiaoxia:fix/video-duration-mismatch
xiaoxia:fix/title-preset-t-render
xiaoxia:fix/web-duplicate-rate-mapping
xiaoxia:feat/auto-duplicate-rate-user-scope
xiaoxia:fix/title-drag-pointer-events-and-size
xiaoxia:fix/smart-match-empty-results
xiaoxia:feat/title-drag-position
xiaoxia:fix/smart-match-limit-algorithm
xiaoxia:feat/title-drag-custom
xiaoxia:fix/from-assets-400-clip-config-fallback
xiaoxia:chore/pr-auto-scan-cron-15min
xiaoxia:sync/develop-to-main-v2
xiaoxia:fix/auto-merge-contexts-v2
xiaoxia:fix/psycopg2-to-psycopg3
xiaoxia:fix/prebake-ffmpeg-ci-image
xiaoxia:fix/cache-continue-on-error
xiaoxia:fix/auto-approve-contexts
xiaoxia:fix/buildx-web-cache-bust
xiaoxia:fix/ci-cache-robustness
xiaoxia:fix/check-push-paths-no-checkout
xiaoxia:fix/ci-check-push-paths-checkout
xiaoxia:fix/deploy-staging-skip-bug
xiaoxia:ci/pipeline-speedup-batch2
xiaoxia:feat/product-inline-player
xiaoxia:ci/transient-fault-auto-retry
xiaoxia:ci/image-content-verification
xiaoxia:ci/selfcheck-zombie-run-and-dedupe
xiaoxia:ci/fix-scheduled-jobs-zombie-timeout
xiaoxia:fix/test-hevc-mock-no-sysmodules
xiaoxia:fix/ingest-jobs-404-not-found
xiaoxia:feat/segment-duplication-control
xiaoxia:feat/persist-used-segments
xiaoxia:chore/remove-random-asset-mode
xiaoxia:fix/e2e-6step-generate-flow
xiaoxia:fix/audio-mime-inference
xiaoxia:fix/cover-from-final-video
xiaoxia:feat/merge-step4-step5
xiaoxia:fix/asset-thumbnails
xiaoxia:fix/thumbnail-v2
xiaoxia:fix/thumbnail-url-not-saved
xiaoxia:fix/title-position-default-top
xiaoxia:feat/from-assets-by-template-segments
xiaoxia:feat/mediakit-smart-clip-selection
xiaoxia:fix/restore-backend-files
xiaoxia:fix/cross-task-segment-dedup
xiaoxia:fix/ui-template-thumb-and-material-grid
xiaoxia:fix/cover-title-consistency
xiaoxia:fix/voice-library-id-passthrough
xiaoxia:fix/mark-clips-ready-after-from-assets
xiaoxia:fix/ass-fontsize-compensation-1.35
xiaoxia:fix/call-clips-from-assets
xiaoxia:fix/font-name-map-noto-sans-sc
xiaoxia:fix/restore-preview-step4-5-step7-video
xiaoxia:fix/editor-clips-random-start-time
xiaoxia:fix/remove-preview-and-generate-count
xiaoxia:fix/title-line-height
xiaoxia:fix/title-margin-top-120
xiaoxia:fix/title-size-max-128
xiaoxia:fix/preview-coord-system
xiaoxia:fix/title-fullwidth-slash
xiaoxia:fix/voice-preview-materials
xiaoxia:fix/preview-resolution
xiaoxia:feat/server-rendered-preview
xiaoxia:fix/source-edit-plan-id-v2
xiaoxia:chore/cleanup-template-editor-generation
xiaoxia:feat/sync-edit-plan-clips
xiaoxia:refactor/worker-use-edit-plan-clips
xiaoxia:fix/cover-title-style-e2
xiaoxia:fix/batch-writeback-once
xiaoxia:fix/edit-flow-data-chain
xiaoxia:fix/cover-ffmpeg-title-overlay
xiaoxia:fix/mediakit-completed-status
xiaoxia:fix/cover-mediakit-timeout
xiaoxia:fix/cover-extract-from-source-asset
xiaoxia:fix/webcodecs-decode-failure-fallback
xiaoxia:feat/hevc-auto-transcode
xiaoxia:fix/ai-code-review-blocking-v2
xiaoxia:fix/ai-code-review-blocking
xiaoxia:fix/hevc-description
xiaoxia:fix/infinity-samples
xiaoxia:fix/all-canvas-issues
xiaoxia:fix/promise-timeout
xiaoxia:fix/demux-async
xiaoxia:fix/optional-chaining-safety
xiaoxia:fix/frontend-segment-extraction
xiaoxia:fix/canvas-description-cache-and-keyframe
xiaoxia:fix/fullbox-offset-and-title-split
xiaoxia:fix/preview-player-4-issues
xiaoxia:fix/canvas-black-screen-voice-validation
xiaoxia:fix/canvas-player-issues
xiaoxia:fix/preview-player-v8
xiaoxia:fix/preview-player-v7
xiaoxia:fix/preview-player-v5
xiaoxia:fix/preview-player-v4
xiaoxia:fix/preview-player-v3
xiaoxia:fix/preview-player-v2
xiaoxia:fix/preview-player-playback-and-title
xiaoxia:fix/assets-batch-endpoint
xiaoxia:fix/usePreviewAssets-infinite-loop
xiaoxia:fix/token-refresh-bugs
xiaoxia:cleanup/remove-unused-preview-props
xiaoxia:refactor/frontend-preview-player
xiaoxia:fix/cover-url-in-finalize
xiaoxia:feat/upload-cover-and-title-in-generate
xiaoxia:fix/batch-download-session-flaky-v2
xiaoxia:fix/test-clip-mock-fields
xiaoxia:feat/title-style-panel-to-step5
xiaoxia:fix/flaky-batch-download-session-test
xiaoxia:fix/clips-api-response-structure
xiaoxia:fix/proactive-token-refresh
xiaoxia:fix/token-refresh-test-fix
xiaoxia:feat/clips-asset-url
xiaoxia:fix/canvas-video-resolution-match
xiaoxia:fix/worker-cjk-fonts
xiaoxia:fix/preview-title-render
xiaoxia:fix/cover-extract-frames
xiaoxia:fix/render-bool-config-crash
xiaoxia:fix/restore-showTitlePreview-prop
xiaoxia:fix/ts-errors-pr1382
xiaoxia:fix/bool-config-crash
xiaoxia:fix/e2e-step-order-adapt
xiaoxia:feat/title-preview-right-panel
xiaoxia:fix/title-config-param-mapping
xiaoxia:feat/title-preview-canvas-v2
xiaoxia:fix/auto-merge-ai-review-check
xiaoxia:fix/cover-title-overlay
xiaoxia:fix/cover-title-asr-path
xiaoxia:fix/cover-500-logger-and-source-plan-fallback
xiaoxia:fix/flaky-test-batch-download
xiaoxia:fix/auto-format-merge-commit-consistency
xiaoxia:fix/cover-generation-unify
xiaoxia:fix/custom-title-render
xiaoxia:fix/video-ratio-resolution-parsing
xiaoxia:fix/cover-templates-double-encoded-config
xiaoxia:fix/api-ffmpeg-missing
xiaoxia:fix/double-slash-oss-path
xiaoxia:fix/cover-types-import-paths
xiaoxia:refactor/decouple-cover-types-from-editing-planner
xiaoxia:optimize/cover-generation-speed
xiaoxia:fix/cover-issues-1341
xiaoxia:fix/confirm-api-path-1341
xiaoxia:fix/cover-error-logging-1347
xiaoxia:fix/remove-unused-useRef-import
xiaoxia:fix/cover-generation-issues-1341
xiaoxia:fix/totalDuration-duplicate-develop
xiaoxia:feat/cover-generation-ui-1341
xiaoxia:fix/cover-generation-progress-modal
xiaoxia:fix/remove-selected-template-text
xiaoxia:feature/unify-preview-confirm-render-path
xiaoxia:fix/generate-fallback-user-assets
xiaoxia:fix/worker-entrypoint-w-flag
xiaoxia:fix/cover-stub-placeholder-url
xiaoxia:fix/cover-field-name-1317
xiaoxia:fix/thumbnail-yuv-format
xiaoxia:fix/cover-templates-error-handling
xiaoxia:feat/cover-templates-api-integration
xiaoxia:feat/cover-settings-redesign
xiaoxia:fix/audio-only-clips-in-filter-complex
xiaoxia:fix/preview-voice-ids-fallback
xiaoxia:fix/confirm-generation-api-develop
xiaoxia:fix/sync-confirm-api-to-develop
xiaoxia:fix/issue-1294-preview-voiceover-asr-fallback
xiaoxia:fix/issue-1294-preview-voiceover-asr-init
xiaoxia:fix/worker-concurrency-default-4
xiaoxia:fix/auto-approve-skipped-status
xiaoxia:fix/e2e-title-input-timing
xiaoxia:bugfix/1294-preview-voice-injection
xiaoxia:fix/e2e-title-placeholder-v2
xiaoxia:fix/ci-lower-coverage-threshold
xiaoxia:fix/e2e-title-placeholder
xiaoxia:fix/preview-improvements
xiaoxia:feature/1286-preview-count-validation-and-worker-concurrency
xiaoxia:bugfix/1286-staging-ci-shell-quoting
xiaoxia:feature/1286-can-generate-auto-repair
xiaoxia:bugfix/1286-staging-ci-tests-fix
xiaoxia:fix/ci-concurrency-lock
xiaoxia:feature/1280-preview-generation-speedup
xiaoxia:fix/staging-tests-npm-retry
xiaoxia:feature/1256-random-asset-selection-preview
xiaoxia:feat/issue-1256-auto-smart-match
xiaoxia:fix/quota-test-wave78-pro-sync
xiaoxia:feat/upload-voice-modal-visual
xiaoxia:feat/remove-result-panel-and-plan-info
xiaoxia:fix/quota-pro-tier-fallback
xiaoxia:fix/asset-create-optional-project-id
xiaoxia:feature/integrate-cover-generation
xiaoxia:fix/step6-cover-ratio-label
xiaoxia:feat/step4-title-autocomplete
xiaoxia:fix/canvas-titlecentering-v2
xiaoxia:fix/skip-source-audio-in-mix
xiaoxia:feat/no-video-cleanup-and-centering-fix
xiaoxia:feat/title-preview-canvas
xiaoxia:feat/unify-asset-selection
xiaoxia:fix/pip-removal-and-title-wrap
xiaoxia:fix/preset-font-preview
xiaoxia:fix/preview-strategy-id-from-template
xiaoxia:fix/title-preview-overlay
xiaoxia:fix/preview-generation-3-issues
xiaoxia:fix/1221-auth-401-interceptor
xiaoxia:feat/preset-voice-previews-round2
xiaoxia:feat/preset-voice-previews
xiaoxia:feat/mediakit-ai-cover-1208
xiaoxia:fix/download-assets-allow-asset-ids-only
xiaoxia:feat/preview-generation-1197
xiaoxia:feat/voice-clone-preview-1195
xiaoxia:refactor/bind-contact-modal-split
xiaoxia:test/wave207-inmemory-small-repos
xiaoxia:test/wave219-template-clip-config
xiaoxia:refactor/asset-selector-split
xiaoxia:test/wave218-batch-download
xiaoxia:test/wave214-text-splitter
xiaoxia:test/wave213-bind-contact
xiaoxia:test/wave212-login-use-case
xiaoxia:test/wave211-password-reset
xiaoxia:test/wave210-verification-code
xiaoxia:test/wave209-jwt-auth
xiaoxia:test/wave203-bgm-mixer-pure
xiaoxia:test/wave202-multi-track-mixer-pure
xiaoxia:test/wave200-pip-engine-pure
xiaoxia:test/wave191-edit-template
xiaoxia:test/wave208-password-auth
xiaoxia:test/wave206-inmemory-repos
xiaoxia:test/wave205-path-security
xiaoxia:test/wave204-text-splitter-pagination
xiaoxia:test/wave201-concat-engine-pure
xiaoxia:refactor/generate-video-split
xiaoxia:test/wave199-sticker-engine-pure
xiaoxia:refactor/video-player-hook
xiaoxia:test/wave198-shared-ai-service
xiaoxia:test/wave196-auth-session-store
xiaoxia:test/wave197-asset-compat
xiaoxia:test/wave195-verification-code
xiaoxia:test/wave194-tts-config
xiaoxia:test/wave193-video-share
xiaoxia:test/wave192-media-validation
xiaoxia:refactor/generate-form-state
xiaoxia:test/wave190-preset-voices
xiaoxia:test/wave189-preset-bgm
xiaoxia:test/wave188-video-concat
xiaoxia:test/wave187-speed-config
xiaoxia:test/wave186-subtitle
xiaoxia:refactor/task-table
xiaoxia:test/wave185-audio-track-config
xiaoxia:test/wave184-intro-outro-config
xiaoxia:test/wave183-voice-presets
xiaoxia:test/wave182-config-schemas
xiaoxia:fix/develop-unit-tests-failure
xiaoxia:fix/frontend-unit-test-smoke-test
xiaoxia:fix/ci-unit-test-coverage-threshold
xiaoxia:fix/tts-panel-voices-api-v2
xiaoxia:fix/voice-clone-preview-play-1195
xiaoxia:test-branch-123
xiaoxia:fix/main-deploy-staging-manual
xiaoxia:merge/develop-ci-scripts
xiaoxia:fix/vitest-exclude-e2e
xiaoxia:test/wave173-pip-config
xiaoxia:fix/ci-staging-deploy-and-notify-0728
xiaoxia:fix/ci-production-build-bugs-0728
xiaoxia:fix/preview-cleanup-ssh-default
xiaoxia:fix/daily-check-outputs
xiaoxia:fix/auto-merge-short-job
xiaoxia:fix/build-production-needs-tests
xiaoxia:fix/pr-path-filter-skip
xiaoxia:fix/code-review-ci-gate
xiaoxia:test/wave164-filter-presets
xiaoxia:fix/pr-automation-concurrency
xiaoxia:fix/ci-pr-automation-optimization-0728
xiaoxia:refactor/generate-result-panel
xiaoxia:test/wave163-watermark-config
xiaoxia:refactor/step6-cover-settings
xiaoxia:test/wave162-asset-scoring
xiaoxia:refactor/use-product-actions
xiaoxia:test/wave161-domain-entities
xiaoxia:test/wave160-job-domain
xiaoxia:refactor/use-timeline-menus
xiaoxia:refactor/step7-confirm
xiaoxia:refactor/use-step5-voice
xiaoxia:test/wave140-watermark-config
xiaoxia:test/wave139-url-security
xiaoxia:test/wave159-template-clip-config
xiaoxia:test/wave158-edit-plan
xiaoxia:test/wave157-domain-small-modules
xiaoxia:test/wave156-generation-task
xiaoxia:test/wave155-generated-video
xiaoxia:test/wave154-classification
xiaoxia:test/wave153-edit-plan-clip
xiaoxia:fix/ci-p1-p2-optimizations-0728
xiaoxia:test/wave152-duplication
xiaoxia:test/wave151-quota
xiaoxia:fix/clone-upload-422-and-types-path
xiaoxia:test/wave172-color-grade-config
xiaoxia:test/wave171-subtitle-style
xiaoxia:test/wave170-chroma-key-config
xiaoxia:test/wave169-ass-subtitle-builder
xiaoxia:test/wave168-transition-presets
xiaoxia:test/wave167-sticker-config
xiaoxia:test/wave166-plan-generator-utils
xiaoxia:refactor/green-screen-panel
xiaoxia:test/wave165-trim-config
xiaoxia:refactor/clip-mutations
xiaoxia:fix/ci-p0-bugs-0728
xiaoxia:refactor/material-form
xiaoxia:refactor/clone-voice-card
xiaoxia:refactor/tag-selector
xiaoxia:fix/voice-material-types-path
xiaoxia:refactor/use-voice-material-actions
xiaoxia:fix/ruff-config-pyproject
xiaoxia:test/wave144-tts-job
xiaoxia:test/wave142-transition-presets
xiaoxia:fix/ci-gate-exit-code-develop
xiaoxia:fix/ci-gate-exit-code-main
xiaoxia:fix/auto-fix-loop-detection
xiaoxia:refactor/asset-selector
xiaoxia:refactor/generate-video-hook
xiaoxia:test/auto-format-verify-0727
xiaoxia:refactor/voice-materials-p4
xiaoxia:feature/ai-review-status
xiaoxia:refactor/use-voice-materials-split
xiaoxia:refactor/voice-library-deepen
xiaoxia:refactor/generate-page-phase1
xiaoxia:refactor/router-split
xiaoxia:refactor/my-voices
xiaoxia:refactor/clone-modal
xiaoxia:refactor/title-library
xiaoxia:refactor/timeline-panel-phase3-pr
xiaoxia:feature/ai-review-status-develop
xiaoxia:feature/auto-fix-all-prs-develop
xiaoxia:test/wave132-wechat-oauth-unit
xiaoxia:test/ci-format-auto-fix-0727
xiaoxia:test/wave131-password-hasher
xiaoxia:test/wave130-jwt-service
xiaoxia:test/wave129-asset-scoring
xiaoxia:test/wave128-url-security
xiaoxia:test/wave127-template-data-unit
xiaoxia:test/wave126-small-domain-unit
xiaoxia:test/wave125-entities-unit
xiaoxia:test/wave124-quota-unit
xiaoxia:test/wave123-job-unit
xiaoxia:refactor/asset-operations-hook
xiaoxia:test/wave117-speed-config
xiaoxia:feature/auto-fix-all-prs
xiaoxia:test/wave118-chroma-key-config
xiaoxia:test/wave119-noise-reduction-config
xiaoxia:test/wave120-ass-subtitle-builder
xiaoxia:test/wave121-xfade-builder
xiaoxia:test/wave122-trim-config
xiaoxia:test/wave91-generation-plan-builder
xiaoxia:test/wave92-asset-scoring
xiaoxia:test/wave93-duplication-domain
xiaoxia:test/wave94-media-validation
xiaoxia:test/wave95-domain-entities
xiaoxia:test/wave96-job-domain
xiaoxia:test/wave97-quota-domain
xiaoxia:test/wave98-preset-bgm
xiaoxia:test/wave99-small-domain-modules
xiaoxia:refactor/duplication-detail
xiaoxia:refactor/upload-voice-modal-split
xiaoxia:refactor/product-detail
xiaoxia:refactor/task-history
xiaoxia:refactor/bgm-selector-split
xiaoxia:refactor/use-clip-operations-split
xiaoxia:refactor/template-management-hook
xiaoxia:refactor/asset-library-deepen
xiaoxia:refactor/duplication-results-split
xiaoxia:refactor/clip-detail-section-split
xiaoxia:refactor/layer-config-split
xiaoxia:refactor/cover-selector-split
xiaoxia:refactor/template-editor-api
xiaoxia:refactor/assets-api
xiaoxia:refactor/editing-planner-api
xiaoxia:refactor/voice-clone-api
xiaoxia:refactor/tts-api
xiaoxia:refactor/products-api
xiaoxia:refactor/templates-api
xiaoxia:refactor/voices-api
xiaoxia:refactor/tasks-api
xiaoxia:refactor/titles-api
xiaoxia:refactor/subscription-api
xiaoxia:refactor/duplication-api
xiaoxia:refactor/bgm-projects-tags-api
xiaoxia:refactor/task-center
xiaoxia:refactor/voice-clone-page
xiaoxia:refactor/home-page
xiaoxia:refactor/template-library
xiaoxia:refactor/step5-voice-hook
xiaoxia:refactor/editing-drawers
xiaoxia:refactor/use-step4-title-split
xiaoxia:refactor/use-edit-plan-clips-split
xiaoxia:refactor/editing-planner-deepen
xiaoxia:refactor/editing-planner-types-split
xiaoxia:refactor/product-library-deepen
xiaoxia:refactor/upgrade-subscription-split
xiaoxia:fix/test-agent-docs-path
xiaoxia:fix/ci-daily-check-dood-mount
xiaoxia:fix/ci-daily-check-shell-bash
xiaoxia:refactor/my-templates-split
xiaoxia:fix/ci-format-cleanup-20260727
xiaoxia:test/wave116-trim-config
xiaoxia:test/wave115-watermark-config
xiaoxia:test/wave114-color-grade-config
xiaoxia:test/wave113-transition-config
xiaoxia:test/wave112-intro-outro-config
xiaoxia:test/wave111-audio-track-config
xiaoxia:test/wave110-pip-config
xiaoxia:test/wave90-plan-generator-utils
xiaoxia:test/wave88-streaming-service
xiaoxia:test/wave109-sticker-config
xiaoxia:test/wave108-ai-parsing
xiaoxia:test/wave107-subtitle-style
xiaoxia:test/wave106-video-concat-config
xiaoxia:test/wave105-render-layer-utils
xiaoxia:test/wave104-template-clip-converter
xiaoxia:test/wave100-application-modules
xiaoxia:test/wave103-clip-operations
xiaoxia:test/wave101-video-filter-builder
xiaoxia:pr-932
xiaoxia:test/wave102-template-effect-mapper
xiaoxia:sync/ci-scripts-to-main-20260726
xiaoxia:fix/frontend-lint-clip-type-import
xiaoxia:test/wave89-asset-analyzer-split
xiaoxia:test/wave87-worker-deep-coverage
xiaoxia:refactor/editing-planner-round2
xiaoxia:fix/ci-monitor-workflows-909-910-911
xiaoxia:fix/ci-daily-check-hardcoded-creds-912
xiaoxia:fix/ci-acr-cleanup-pr-days-908
xiaoxia:fix/ci-code-quality-905-914
xiaoxia:fix/ci-preview-deploy-907
xiaoxia:refactor/timeline-panel-phase1-pr
xiaoxia:refactor/timeline-panel-phase1
xiaoxia:refactor/product-library-phase3-final
xiaoxia:fix/ci-unit-tests-collection-906
xiaoxia:refactor/product-library-phase2-pr
xiaoxia:refactor/product-library-phase1
xiaoxia:refactor/editing-planner-phase3
xiaoxia:refactor/editing-planner-phase1
xiaoxia:test/wave86-worker-layer-coverage
xiaoxia:test/wave80-module-registry-subtitle-more
xiaoxia:test/wave85-exceptions-bgm-utils-subtitle-deep
xiaoxia:test/wave84-classification-tts-config-entities-more
xiaoxia:test/wave83-generated-video-verification-video-share-more
xiaoxia:test/wave82-exceptions-template-generated-video-more
xiaoxia:test/wave81-filter-transition-voice-presets-more
xiaoxia:test/wave79-subtitle-generator-text-splitter-more
xiaoxia:test/wave78-duplication-domain
xiaoxia:test/wave75-more-domain-utils
xiaoxia:test/wave77-generation-task-more-domain
xiaoxia:test/wave76-tts-job-state-machine
xiaoxia:test/wave74-classification-bgm-utils-subtitle
xiaoxia:refactor/asset-library-phase2
xiaoxia:fix/052-generation-task-bgm-config-migration
xiaoxia:fix/dedup-pure-test-db-import
xiaoxia:refactor/voice-library-phase3
xiaoxia:feat/ci-canary-release
xiaoxia:feat/ci-sync-renovate-to-main
xiaoxia:test/wave70-dedup-render-subtitles-tts-engine
xiaoxia:test/wave56-worker-more-engines
xiaoxia:refactor/voice-library-phase1
xiaoxia:chore/ci-acr-cleanup-main-sync
xiaoxia:chore/ci-acr-cleanup-enhance
xiaoxia:chore/ci-migration-upgrade-sync-main
xiaoxia:chore/ci-migration-validation-upgrade
xiaoxia:test/wave61-title-library-config-base
xiaoxia:test/wave58-in-memory-repositories
xiaoxia:fix/ci-preview-deploy-npm-ci
xiaoxia:fix/ci-worker-cache-optimization
xiaoxia:fix/staging-shell-sh-to-bash-main
xiaoxia:fix/staging-shell-sh-to-bash
xiaoxia:fix/ruff-f841-b007-detector
xiaoxia:fix/ruff-f401-cleanup
xiaoxia:test/unit-test-wave35
xiaoxia:ci/port-env-cleanup
xiaoxia:chore/sync-main-ci-config
xiaoxia:refactor/unified-enums
xiaoxia:fix/staging-e2e-container-cleanup
xiaoxia:fix/ci-systematic-p0-round2
xiaoxia:fix/jwt-tampered-test-flaky
xiaoxia:fix/black-format-ai-files
xiaoxia:fix/ci-staging-e2e-dood
xiaoxia:fix/wechat-callback-token-order
xiaoxia:fix/ci-systematic-p0-fix
xiaoxia:fix/ci-worker-base-registry
xiaoxia:fix/code-quality-black-format
xiaoxia:fix/ruff-format-2files
xiaoxia:feat/p3-1-tts-job-tests
xiaoxia:feat/p3-1-auth-handlers-tests
xiaoxia:feat/p3-1-wechat-oauth-tests
xiaoxia:feat/video-share-backend
xiaoxia:fix/ai-review-critical-match
xiaoxia:emergency-disk-cleanup
xiaoxia:fix/ci-simplify-merge-speed
xiaoxia:fix/ci-integration-oom-workers
xiaoxia:fix/flaky-jwt-tampered-test
xiaoxia:fix/462-pass-through-watermark
xiaoxia:test/p3-1-wave29-template-use-cases-tests
xiaoxia:fix/633-virtual-clip-transition-duration
xiaoxia:test/p3-1-wave26-tts-workflow-tests
xiaoxia:test/p3-1-wave23-cosyvoice-service-tests
xiaoxia:test/p3-1-wave24-register-password-reset-tests
xiaoxia:test/p3-1-wave28-cosyvoice-service-tests
xiaoxia:fix/login-token-order-bug
xiaoxia:fix/ci-architecture-bugs-3items
xiaoxia:test/p3-1-wave9-auth-service-tests
xiaoxia:test/p3-1-wave7-entities-domain-tests
xiaoxia:feat/ci-pytest-xdist-parallel
xiaoxia:feat/p3-1-validation-utils-tests
xiaoxia:feat/p3-1-module-registry-tests
xiaoxia:feat/p3-1-text-splitter-tests
xiaoxia:fix/ci-auto-merge-short-job-mode
xiaoxia:fix/auto-merge-no-approval-needed
xiaoxia:fix/vitest-related-flag-bug
xiaoxia:fix/worker-build-dood-fallback
xiaoxia:ci/repeated-failure-detection
xiaoxia:ci/validate-parallelization-phase2
xiaoxia:fix/auto-fix-ci-skip
xiaoxia:ci/failure-diagnosis-enhanced
xiaoxia:ci/validate-parallelization
xiaoxia:ci/worker-layered-cache
xiaoxia:fix/check-ci-status-order
xiaoxia:ci/autofix-distinguish-agent
xiaoxia:ci/cache-optimization-plus
xiaoxia:fix/558-wechat-login-fixes
xiaoxia:feat/558-wechat-login-polish
xiaoxia:test/unit-test-coverage-p3-batch2
xiaoxia:opt/restore-registry-cache-to
xiaoxia:p2-6-ci-health-daily
xiaoxia:fix/frontend-ts-error-message-type
xiaoxia:fix/ci-autoapprove-match-branch-protection
xiaoxia:fix/ci-autofix-checkout-force
xiaoxia:fix/ci-p02-checkout-retry
xiaoxia:fix/ci-black-format-worker
xiaoxia:fix/549-preset-voice-one-click-gen
xiaoxia:fix/ci-p01-preview-ssh-key
xiaoxia:fix/ci-pg-container-ip
xiaoxia:feature/agentloop-ci-trace
xiaoxia:feat/smart-edit-flow-restructure
xiaoxia:feat/smart-edit-cover-migration
xiaoxia:feat/frontend-coverage-phase3
xiaoxia:feat/frontend-coverage-phase2
xiaoxia:fix/p1-preset-voice-no-sound
xiaoxia:ci/fix-frontend-test-exclude-e2e
xiaoxia:fix/p1-asset-list-status-and-pagination
xiaoxia:fix/asset-batch-delete-crash
xiaoxia:test/cleanup-verify
xiaoxia:test/preview-e2e-verify
xiaoxia:fix/hevc-encoding-filter-and-auto-select
xiaoxia:ci/p1-4-preview-environment
xiaoxia:fix/download-asset-storage-key
xiaoxia:ci/p1-3-coverage-gate
xiaoxia:ci/fix-auto-approve-sha-and-scheduling
xiaoxia:ci/fix-scheduling-and-sha
xiaoxia:ci/fix-scheduling-label-mismatch
xiaoxia:ci/fix-build-review-prompt
xiaoxia:fix/docker-login-v2
xiaoxia:fix/docker-login-yaml
xiaoxia:feature/p1-2-edit-plan-render-link
xiaoxia:test/auto-merge-verify
xiaoxia:test/ci-trigger-rebase-verify
xiaoxia:test/auto-approve-validation
xiaoxia:feat/ci-auto-approve
xiaoxia:fix/buildx-builder-name-conflict
xiaoxia:fix/auto-merge-token
xiaoxia:fix/registry-login-v3
xiaoxia:fix/registry-login-v2
xiaoxia:fix/ci-build-registry-login
xiaoxia:feature/ai-code-review
xiaoxia:feat/ci-frontend-path-filter
xiaoxia:fix/migration-safety-push-event
xiaoxia:feat/runner-layered-scheduling
xiaoxia:feat/staging-auto-rollback
xiaoxia:feat/registry-retry-stability
xiaoxia:feat/ci-deploy-concurrency
xiaoxia:feat/ci-concurrency-fix
xiaoxia:fix/ci-validate-pg-container
xiaoxia:feat/ci-validate-isolated-pg
xiaoxia:feat/save-plan-as-template
xiaoxia:feat/frontend-ci-speedup
xiaoxia:ci/runner-diagnose
xiaoxia:feat/edit-plan-clips-api
xiaoxia:fix/voice-clone-ssrf
xiaoxia:fix/migration-safety-reliability
xiaoxia:fix/edit-plan-resume-editing
xiaoxia:fix/mypy-hardgate
xiaoxia:feat/mypy-incremental
xiaoxia:fix/task-id-prefix-polling
xiaoxia:fix/generation-put-status-restriction
xiaoxia:debug/ci-build-runs-on
xiaoxia:fix/ci-disable-registry-cache-to
xiaoxia:fix/ci-build-checkout-print
xiaoxia:debug/ci-build-schedule
xiaoxia:fix/runner-build-verify
xiaoxia:test/runner-build-verify
xiaoxia:test/build-farm-label
xiaoxia:fix/ci-build-checkout-parser
xiaoxia:fix/ci-build-checkout-syntax
xiaoxia:fix/ci-build-yaml
xiaoxia:feat/split-build-workflow-v2
xiaoxia:chore/cleanup-main-workflows
xiaoxia:feat/acr-registry-migration
xiaoxia:feat/split-build-workflow
xiaoxia:feat/ci-runner-saas-label
xiaoxia:fix/add-result-count-migration
xiaoxia:fix/matrix-run-newline
xiaoxia:ci/matrix-build-parallelism
xiaoxia:feature/product-center-ui-upgrade
xiaoxia:fix/hard-cut-use-concat
xiaoxia:fix/b007-unused-loop-var
xiaoxia:fix/b011-assert-false
xiaoxia:ci/local-cache-optimization
xiaoxia:fix/migration-diff-ci
xiaoxia:fix/frontend-lint-cache-validation
xiaoxia:ci/registry-cache-stability-fix
xiaoxia:fix/edit-plan-p0-asset-ids-and-p1-fixes
xiaoxia:fix/incremental-scan-api-based
xiaoxia:fix/unified-render-black-format
xiaoxia:fix/ci-incremental-scan-api-based
xiaoxia:fix/edit-plan-result-count-and-logs
xiaoxia:fix/prettier-format-frontend
xiaoxia:fix/ci-trigger-branch-patterns
xiaoxia:perf/web-build-cache-p1
xiaoxia:fix/eslint-npx-version-mismatch
xiaoxia:feat/ci-incremental-lint
xiaoxia:feat/ruff-replace-flake8
xiaoxia:fix/frontend-lint-npx-local
xiaoxia:fix/worker-pythonpath
xiaoxia:feat/worker-image-slimming
xiaoxia:fix/staging-ssh-deploy-call
xiaoxia:fix/staging-ssh-syntax
xiaoxia:feat/staging-ssh-deploy
xiaoxia:fix/code-quality-batch1
xiaoxia:fix/ci-bot-fix-pr
xiaoxia:feat/production-healthcheck
xiaoxia:fix/tech-debt-security-round2
xiaoxia:feat/staging-healthcheck-ci-v2
xiaoxia:temp-clean-npm-cache
xiaoxia:feat/ci-notify-final
xiaoxia:fix/frontend-type-debt-round2
xiaoxia:fix/deploy-notify-continue-on-error
xiaoxia:fix/render-engine-security-p0-p1
xiaoxia:feat/ci-notify-card-and-cache
xiaoxia:feature/task-center-page
xiaoxia:feat/ci-p2-optimization
xiaoxia:fix/pr312-security-debt-p1
xiaoxia:feat/ci-runner-layered
xiaoxia:feat/staging-healthcheck-ci
xiaoxia:fix/ci-buildx-builder
xiaoxia:feat/ci-parallel-build
xiaoxia:feat/multi-track-mix-subtitle-concat
xiaoxia:feat/changelog-auto-generate
xiaoxia:docs/audit-report-20260714
xiaoxia:feat/runner-label-routing
xiaoxia:ops/runner-labels
xiaoxia:feat/release-scripts-clean
xiaoxia:fix/deploy-production-ssh-key
xiaoxia:feat/ci-security-scans
xiaoxia:feat/release-scripts
xiaoxia:feat/video-speed-control
xiaoxia:fix/e2e-unroute-all-stability
xiaoxia:feat/cover-reverse-sticker
xiaoxia:feat/transition-engine
xiaoxia:fix/stub-generation-task-repository-filtered-methods
xiaoxia:feat/video-trimming
xiaoxia:feat/chroma-key-and-noise-reduction
xiaoxia:feat/watermark-intro-outro
xiaoxia:feat/bgm-mixing
xiaoxia:feat/picture-in-picture
xiaoxia:feat/tts-voiceover
xiaoxia:feat/template-and-plan-backend
xiaoxia:fix/build-script-grep-set-e
xiaoxia:feat/color-grading-engine
xiaoxia:feat/asr-auto-subtitles
xiaoxia:feat/video-center-backend
xiaoxia:feat/asset-batch-operations
xiaoxia:fix/build-cache-to-driver
xiaoxia:fix/e2e-disable-gpu
xiaoxia:fix/build-cache-tag
xiaoxia:fix/delete-204-response-body
xiaoxia:fix/ci-quick-fix
xiaoxia:ops/downgrade-runners
xiaoxia:cleanup/phase4-backend-p0
xiaoxia:bugfix/pip-break-system-packages-env
xiaoxia:cleanup/phase4-frontend-p2
xiaoxia:test-ci-verification
xiaoxia:fix/format-all-black-isort-flake8
xiaoxia:feature/ci-verification
xiaoxia:cleanup/phase4-frontend-p0p1
xiaoxia:ops/register-saas-runners
xiaoxia:fix/ci-runs-on-label
xiaoxia:fix/black-isort-format-fix
xiaoxia:fix/ci-pip-and-concurrency
xiaoxia:fix/pip-break-system-packages-compat
xiaoxia:ops/install-cmd-agent
xiaoxia:fix/pip-compatibility-all-runners
xiaoxia:cleanup/phase3-frontend
xiaoxia:feat/ci-security-scanning
xiaoxia:feat/frontend-build-gate
xiaoxia:fix/black-format-check-migration-safety
xiaoxia:ci/migration-safety-mypy
xiaoxia:ci/unify-cicd-config
xiaoxia:docs/ci-runner-planning
xiaoxia:feat/npm-audit-frontend
xiaoxia:cleanup/phase3-backend
xiaoxia:cleanup/phase2-backend
xiaoxia:fix/runner-labels
xiaoxia:cleanup/phase2-frontend
xiaoxia:ci/deploy-script-versioning
xiaoxia:feat/ci-vulture-dead-code
xiaoxia:feat/build-optimization
xiaoxia:feat/frontend-cache-optimization
xiaoxia:fix/redis-url-config
xiaoxia:feat/render-metrics
xiaoxia:cleanup/phase1-backend-v2
xiaoxia:cleanup/frontend-phase1-v2
xiaoxia:fix/develop-black-format
xiaoxia:cleanup/phase1-backend
xiaoxia:fix/generation-task-feature-flag
xiaoxia:cleanup/frontend-phase1
xiaoxia:feat/docker-cache-branch-isolation
xiaoxia:feat/ci-pr-gate-optimization
xiaoxia:feat/stream-copy-optimization
xiaoxia:fix/ffmpeg-timeout-protection
xiaoxia:feat/internal-render-download-api
xiaoxia:fix/dedup-float32-json
xiaoxia:fix/render-compare-p1
xiaoxia:fix/render-edit-plan-bugs
xiaoxia:feature/fix-format-render-adapter
xiaoxia:feat/unified-render-phase2
xiaoxia:feat/unified-render-phase1
xiaoxia:feat/ci-notify-all-jobs-v2
xiaoxia:feat/ci-notify-all-jobs
xiaoxia:fix/asset-status-enum-compat
xiaoxia:fix/generation-project-asset-download
xiaoxia:ci/runner-fix
xiaoxia:fix/classification-status-done-enum
xiaoxia:ci/runner-label-fix
xiaoxia:debug/cmd-agent
xiaoxia:temp/runner-expander
xiaoxia:temp/cmd-agent-fix
xiaoxia:temp/expand-runner
xiaoxia:feat/ci-split-v2
xiaoxia:feat/ci-split-integration-tests
xiaoxia:fix/voice-clone-source-audio-url-sign
xiaoxia:feat/task-queue-rate-limit
xiaoxia:fix/voice-clone-integration-test-assertions
xiaoxia:feat/ci-coverage-gate-and-notify
xiaoxia:fix/ci-validate-cache-exclude
xiaoxia:debug/cosyvoice-418-request-logging
xiaoxia:fix/cosyvoice-v3-flash-model
xiaoxia:fix/generation-task-enqueue-failure
xiaoxia:fix/cosyvoice-v3-voice-names
xiaoxia:fix/cosyvoice-full-rewrite
xiaoxia:feature/generation-logging-minimal
xiaoxia:fix/p02-deep-root-cause
xiaoxia:fix/p03-fps-setpts-order
xiaoxia:fix/p02-oss-credential-validation
xiaoxia:feat/worker-concurrency-env
xiaoxia:fix/p02-p03-deep-fix
xiaoxia:fix/generated-video-url-403
xiaoxia:fix/oneclick-gen-p0-fixes
xiaoxia:fix/ingest-job-library-id-length
xiaoxia:feat/app-version-in-dockerfile
xiaoxia:fix/cryptography-version
xiaoxia:fix/generation-task-status
xiaoxia:feature/ci-optimization
xiaoxia:feature/test-quality
xiaoxia:feature/ci-full-audit-fix
xiaoxia:feature/optimize-docker-tags
xiaoxia:feat/use-local-registry-mirrors
xiaoxia:feat/add-p1-api-tests
xiaoxia:feat/add-p1-e2e-tests
xiaoxia:feat/add-daily-health-check
xiaoxia:feat/add-performance-baseline
xiaoxia:feat/add-p0-e2e-tests
xiaoxia:fix/chunked-upload-route-order
xiaoxia:feat/add-p0-api-tests
xiaoxia:fix/config-standardization
xiaoxia:feat/editing-planner-frontend
xiaoxia:fix/editing-planner-mock-data
xiaoxia:feat/video-editing-modes-design
No Reviewers
Dismiss Review
Are you sure you want to dismiss this review?
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: xiaoxia/xiaoxia-saas#1499
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "fix/voice-preview-materials-v2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题
Step3 选择上传的配音素材后,预览错误地调用 previewTts 接口,导致预览无声音。
根因
配音预览逻辑没有区分上传素材和预设/克隆音色,统一调用了 TTS 合成接口。
修复方案
修改
GeneratePage.tsx的配音预览 useEffect:selectedVoice是否为已上传素材(通过查询 voiceMaterials)file_url作为预览音频previewTts接口合成改动文件
apps/web/src/pages/generate/GeneratePage.tsxvoiceMaterials查询(复用 Step3 的缓存)previewVoiceAudioUrlstate 和ttsAbortRef验收标准
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
getAssetsByKind("voice", { limit: 50 })获取配音素材列表,并在useEffect中通过voiceMaterials.find查找当前选中的selectedVoice。如果用户上传的配音素材数量超过 50 个,且当前选中的素材不在前 50 个之内,find方法将返回undefined。此时代码会错误地回退到调用previewTts接口。由于用户上传的素材 ID 通常不支持直接作为 TTS 的voice_id参数(TTS 仅支持系统预设音色或克隆音色),这将导致预览失败或报错,无法播放用户已上传的音频文件。limit: 50限制(如果数据量可控),或者增加limit值(如 1000)。更稳健的方案是:当selectedVoice符合特定 ID 格式(如用户上传素材)时,不依赖列表查找,或者确保列表查询能覆盖当前选中的 ID。💡 改进建议(不阻塞合并)
useEffect的依赖数组中包含了voiceMaterials(数组对象)。虽然react-query通常会返回稳定的引用,但在数据更新时引用仍会变化。如果素材列表频繁更新(例如后台有其他用户上传),会导致该 effect 频繁执行,触发不必要的 TTS 请求或状态设置。建议仅在selectedVoice变化时触发查找逻辑,或确保仅在必要时更新previewVoiceAudioUrl。✅ 良好实践
AbortController处理了异步请求的竞态问题,避免了组件卸载或状态更新导致的内存泄漏。voiceAsset?.file_url进行安全访问,防止空指针异常。useQuery管理数据获取,符合 React 最佳实践。🤖 由 AI 代码审查机器人自动生成 | 2026-08-25 08:17:09 | 模型:
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1499 已关闭或合并,对应的预览环境已被清理。
Pull request closed