From 93f5a46485c96aa1461a41f7d8243648f61b06b9 Mon Sep 17 00:00:00 2001 From: Artem Akymenko Date: Wed, 22 Jul 2026 07:49:30 +0000 Subject: [PATCH] refactor: deduplicate synth params in executor - Compute use_spacy and effective_subtitle_mode once instead of 6x each - Reduces repeated ternary expressions across synthesize_text calls --- abogen/application/conversion_executor.py | 27 ++++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/abogen/application/conversion_executor.py b/abogen/application/conversion_executor.py index 53cde40..898424c 100644 --- a/abogen/application/conversion_executor.py +++ b/abogen/application/conversion_executor.py @@ -85,6 +85,9 @@ def execute_conversion( total_characters=total_characters, ) + # Compute subtitle flag once (used in every synthesize_text call) + use_spacy = request.subtitle_mode not in ("Disabled", "Line") + # Output paths output_layout = plan.output_layout if not output_layout: @@ -133,6 +136,8 @@ def execute_conversion( stack.callback(subtitle_writer.close) result.subtitle_paths.append(subtitle_writer.path) + effective_subtitle_mode = request.subtitle_mode if subtitle_writer else "Disabled" + # Chapter directory chapter_dir = None if request.save_chapters_separately and len(plan.chapters) > 1: @@ -159,10 +164,10 @@ def execute_conversion( chapter_sink=None, audio_sink=audio_sink, preview_callback=lambda text: events.log(f" {text[:80]}"), - subtitle_mode=request.subtitle_mode if subtitle_writer else "Disabled", + subtitle_mode=effective_subtitle_mode, max_subtitle_words=request.max_subtitle_words, lang_code=request.language, - use_spacy_segmentation=request.subtitle_mode not in ("Disabled", "Line"), + use_spacy_segmentation=use_spacy, ) intro_emitted = True events.log("Intro synthesized.") @@ -214,10 +219,10 @@ def execute_conversion( chapter_sink=chapter_sink, audio_sink=audio_sink, preview_callback=lambda text: events.log(f" Intro: {text[:80]}"), - subtitle_mode=request.subtitle_mode if subtitle_writer else "Disabled", + subtitle_mode=effective_subtitle_mode, max_subtitle_words=request.max_subtitle_words, lang_code=request.language, - use_spacy_segmentation=request.subtitle_mode not in ("Disabled", "Line"), + use_spacy_segmentation=use_spacy, ) intro_emitted = True if request.chapter_intro_delay > 0: @@ -244,10 +249,10 @@ def execute_conversion( chapter_sink=chapter_sink, audio_sink=audio_sink, preview_callback=lambda text: events.log(f" Title: {text[:80]}"), - subtitle_mode=request.subtitle_mode if subtitle_writer else "Disabled", + subtitle_mode=effective_subtitle_mode, max_subtitle_words=request.max_subtitle_words, lang_code=request.language, - use_spacy_segmentation=request.subtitle_mode not in ("Disabled", "Line"), + use_spacy_segmentation=use_spacy, ) if request.chapter_intro_delay > 0: _append_silence( @@ -287,10 +292,10 @@ def execute_conversion( chapter_sink=chapter_sink, audio_sink=audio_sink, preview_callback=lambda text: events.log(f" {text[:80]}"), - subtitle_mode=request.subtitle_mode if subtitle_writer else "Disabled", + subtitle_mode=effective_subtitle_mode, max_subtitle_words=request.max_subtitle_words, lang_code=request.language, - use_spacy_segmentation=request.subtitle_mode not in ("Disabled", "Line"), + use_spacy_segmentation=use_spacy, ) # Process subtitles @@ -301,7 +306,7 @@ def execute_conversion( subtitle_mode=request.subtitle_mode, max_subtitle_words=request.max_subtitle_words, lang_code=request.language, - use_spacy_segmentation=request.subtitle_mode not in ("Disabled", "Line"), + use_spacy_segmentation=use_spacy, fallback_end_time=stats.current_time, ) @@ -371,10 +376,10 @@ def execute_conversion( chapter_sink=None, audio_sink=audio_sink, preview_callback=lambda text: events.log(f" {text[:80]}"), - subtitle_mode=request.subtitle_mode if subtitle_writer else "Disabled", + subtitle_mode=effective_subtitle_mode, max_subtitle_words=request.max_subtitle_words, lang_code=request.language, - use_spacy_segmentation=request.subtitle_mode not in ("Disabled", "Line"), + use_spacy_segmentation=use_spacy, ) events.log("Outro synthesized.")