diff --git a/backend/app/tasks/translate_and_synthesize.py b/backend/app/tasks/translate_and_synthesize.py index 5d2ab7a..5f9be81 100644 --- a/backend/app/tasks/translate_and_synthesize.py +++ b/backend/app/tasks/translate_and_synthesize.py @@ -312,8 +312,15 @@ async def _async_translate_and_synthesize(job_id: str, languages: list[str] | No if job_doc["requested_outputs"]["audio_description_mp3"]: # Get TTS preferences from job tts_preferences = job_doc["requested_outputs"].get("tts_preferences", {}) + # For retranslation, only regenerate TTS for the specific target languages — + # not all languages. Regenerating all is wasteful and triggers unwanted renders. + tts_outputs = ( + {lang: updated_outputs[lang] for lang in target_languages if lang in updated_outputs} + if retranslate + else updated_outputs + ) await _generate_tts_for_languages( - job_id, updated_outputs, db, source_language, tts_preferences, accessible_video_requested, + job_id, tts_outputs, db, source_language, tts_preferences, accessible_video_requested, user_id=_cost_ctx["user_id"], cost_project_id=_cost_ctx["project_id"], )