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, )