This commit is contained in:
Deniz Şafak
2025-11-19 02:24:42 +03:00
parent 6b3125b624
commit f477703b1a
4 changed files with 10 additions and 4 deletions
+3
View File
@@ -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 # 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. - **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. - New option: **"Use silent gaps between subtitles"**: Prevents unnecessary audio speed-up by letting speech continue into the silent gaps between subtitles.
+1 -1
View File
@@ -1 +1 @@
1.2.2 1.2.3
+5 -2
View File
@@ -1881,7 +1881,7 @@ class ConversionThread(QThread):
int(start_time % 60), int(start_time % 60),
) )
ms1 = int((start_time - int(start_time)) * 1000) 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: if is_last:
time_str = ( time_str = (
f"{h1:02d}:{m1:02d}:{s1:02d}" f"{h1:02d}:{m1:02d}:{s1:02d}"
@@ -1938,7 +1938,10 @@ class ConversionThread(QThread):
audio_duration = len(full_audio) / rate audio_duration = len(full_audio) / rate
# Use actual audio length for timing # 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) end_time = min(start_time + audio_duration, next_start)
subtitle_duration = end_time - start_time subtitle_duration = end_time - start_time
elif subtitle_duration is None: elif subtitle_duration is None:
+1 -1
View File
@@ -825,7 +825,7 @@ class abogen(QWidget):
"use_gpu", True # Load GPU setting with default True "use_gpu", True # Load GPU setting with default True
) )
self.replace_single_newlines = self.config.get("replace_single_newlines", False) 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.subtitle_speed_method = self.config.get("subtitle_speed_method", "tts")
self._pending_close_event = None self._pending_close_event = None
self.gpu_ok = False # Initialize GPU availability status self.gpu_ok = False # Initialize GPU availability status