mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 13:40:27 +02:00
v1.2.3
This commit is contained in:
@@ -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
@@ -1 +1 @@
|
|||||||
1.2.2
|
1.2.3
|
||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user