From c2de565e09b12949639d7843308752271ebb658e Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sun, 13 Sep 2026 04:06:20 +0800 Subject: [PATCH] =?UTF-8?q?fix(ai-avatar):=20=E4=BF=AE=E5=A4=8D=E9=85=8D?= =?UTF-8?q?=E9=9F=B3=E5=89=8D=E7=BD=AEPR=E7=9A=84CI=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E2=80=94=E2=80=94test=20import=E8=B7=AF=E5=BE=84/TS=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B/eslint=20warning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - test_sentence_timings.py 改为从 packages.domain.sentence_timings 导入(函数已提取) - AiAvatarPage.tsx payload类型改为Parameters[0]消除TS2345 - 去掉useCallback中重复的state.ttsPreview.status依赖(state已覆盖) --- apps/web/src/pages/ai-avatar/AiAvatarPage.tsx | 7 ++++--- tests/unit/test_sentence_timings.py | 10 +++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/web/src/pages/ai-avatar/AiAvatarPage.tsx b/apps/web/src/pages/ai-avatar/AiAvatarPage.tsx index 1e9fb4759..8f899817f 100644 --- a/apps/web/src/pages/ai-avatar/AiAvatarPage.tsx +++ b/apps/web/src/pages/ai-avatar/AiAvatarPage.tsx @@ -190,7 +190,7 @@ const AiAvatarPage: React.FC = () => { if (state.ttsPreview.status === "generating") { state.resetTtsPreview() } - }, [_clearTtsProgressTimer, state.ttsPreview.status, state]) + }, [_clearTtsProgressTimer, state]) /* ── 上一步(返回步骤1,不会丢失 TTS 预合成结果) ── */ const handlePrevStep = useCallback(() => { @@ -235,12 +235,13 @@ const AiAvatarPage: React.FC = () => { return } - let payload: Record + type LipsyncPayload = Parameters[0] + let payload: LipsyncPayload if (isPreSynth) { // 预合成模式:传 audio_url + audio_duration + sentence_timings(后端直接提交 MediaKit,~2-3s) payload = { video_url: videoUrl, - audio_url: state.ttsPreview.audioUrl, + audio_url: state.ttsPreview.audioUrl!, audio_duration: state.ttsPreview.duration, sentence_timings: state.ttsPreview.sentenceTimings, enable_video_loop: false, diff --git a/tests/unit/test_sentence_timings.py b/tests/unit/test_sentence_timings.py index c9a00979e..119d68cc1 100644 --- a/tests/unit/test_sentence_timings.py +++ b/tests/unit/test_sentence_timings.py @@ -1,4 +1,4 @@ -"""Tests for sentence timing functions in lipsync_tts.""" +"""Tests for sentence timing functions (now in packages/domain/sentence_timings.py).""" import os import subprocess @@ -6,10 +6,10 @@ import tempfile import unittest from unittest.mock import MagicMock, patch -from apps.api.app.tasks.lipsync_tts import ( - _compute_sentence_timings, - _estimate_sentence_timings_by_chars, - _split_script_into_sentences, +from packages.domain.sentence_timings import ( + compute_sentence_timings as _compute_sentence_timings, + estimate_sentence_timings_by_chars as _estimate_sentence_timings_by_chars, + split_script_into_sentences as _split_script_into_sentences, )