From f477703b1a78632fd660418123dc3b707f0a9ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deniz=20=C5=9Eafak?= Date: Wed, 19 Nov 2025 02:24:42 +0300 Subject: [PATCH] v1.2.3 --- CHANGELOG.md | 3 +++ abogen/VERSION | 2 +- abogen/conversion.py | 7 +++++-- abogen/gui.py | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d3f5bd..47d8bc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +# 1.2.3 +- Same as 1.2.2, re-released to fix an issue with subtitle timing when using timestamp-based text files. + # 1.2.2 - **You can now voice your subtitle files!** Simply add `.srt`, `.ass` or `.vtt` files to generate timed audio. Alternatively, add a text file with timestamps in `HH:MM:SS` or `HH:MM:SS,ms` format to generate audio that matches the timestamps. See [here](https://github.com/denizsafak/abogen?tab=readme-ov-file#about-timestamp-based-text-files) for detailed instructions. - New option: **"Use silent gaps between subtitles"**: Prevents unnecessary audio speed-up by letting speech continue into the silent gaps between subtitles. diff --git a/abogen/VERSION b/abogen/VERSION index d2d61a7..e2cac26 100644 --- a/abogen/VERSION +++ b/abogen/VERSION @@ -1 +1 @@ -1.2.2 \ No newline at end of file +1.2.3 \ No newline at end of file diff --git a/abogen/conversion.py b/abogen/conversion.py index 1c19a5b..356d147 100644 --- a/abogen/conversion.py +++ b/abogen/conversion.py @@ -1881,7 +1881,7 @@ class ConversionThread(QThread): int(start_time % 60), ) ms1 = int((start_time - int(start_time)) * 1000) - is_last = use_gaps and idx == len(subtitles) + is_last = is_timestamp_text or (use_gaps and idx == len(subtitles)) or end_time is None if is_last: time_str = ( f"{h1:02d}:{m1:02d}:{s1:02d}" @@ -1938,7 +1938,10 @@ class ConversionThread(QThread): audio_duration = len(full_audio) / rate # Use actual audio length for timing - if use_gaps: + if is_timestamp_text: + end_time = start_time + audio_duration + subtitle_duration = audio_duration + elif use_gaps: end_time = min(start_time + audio_duration, next_start) subtitle_duration = end_time - start_time elif subtitle_duration is None: diff --git a/abogen/gui.py b/abogen/gui.py index f10e6f7..c60123c 100644 --- a/abogen/gui.py +++ b/abogen/gui.py @@ -825,7 +825,7 @@ class abogen(QWidget): "use_gpu", True # Load GPU setting with default True ) self.replace_single_newlines = self.config.get("replace_single_newlines", False) - self.use_silent_gaps = self.config.get("use_silent_gaps", False) + self.use_silent_gaps = self.config.get("use_silent_gaps", True) self.subtitle_speed_method = self.config.get("subtitle_speed_method", "tts") self._pending_close_event = None self.gpu_ok = False # Initialize GPU availability status