Skip to content

v25.12.33#1495

Merged
ROBERT-MCDOWELL merged 94 commits intoDrewThomasson:v25from
ROBERT-MCDOWELL:v25
Jan 4, 2026
Merged

v25.12.33#1495
ROBERT-MCDOWELL merged 94 commits intoDrewThomasson:v25from
ROBERT-MCDOWELL:v25

Conversation

@ROBERT-MCDOWELL
Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings January 4, 2026 19:06
@ROBERT-MCDOWELL ROBERT-MCDOWELL merged commit c006b73 into DrewThomasson:v25 Jan 4, 2026
4 checks passed
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps the version to 25.12.33 and introduces a major refactoring of the TTS Speech Markup Language (SML) system, transitioning from simple string tokens to a structured dictionary with compiled regex patterns and token values.

Key Changes

  • SML Structure Overhaul: Changed TTS_SML from simple string mappings to dictionaries containing 'match' (compiled regex) and 'token' (string value) keys, enabling more flexible pattern matching
  • Sentence Processing Refactor: Completely rewrote get_sentences() function in lib/core.py with new multi-pass splitting algorithm
  • TTS Engine Updates: All TTS engines (XTTS, YourTTS, VITS, Tacotron, Fairseq, Bark) refactored to use new SML handling with dedicated convert_sml() and set_voice() methods

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 23 comments.

Show a summary per file
File Description
pyproject.toml, VERSION.txt, docker-compose.yml, podman-compose.yml Version bumped to 25.12.33
Dockerfile Critical Issue: Version set to 26.1.3 instead of 25.12.33
lib/conf_models.py TTS_SML restructured with regex patterns and tokens; added default_sml_pattern
lib/conf_lang.py Removed double-quote character from chars_remove list
lib/core.py Major refactoring: rewrote get_sentences(), filter_sml(), updated chapter/sentence processing with new resume logic
lib/gradio.py Minor UI fixes for variable naming consistency
lib/classes/tts_engines/*.py All TTS engines refactored with new convert_sml() and set_voice() methods for SML token processing
lib/classes/tts_engines/common/headers.py Added default_sml_pattern to imports
lib/init.py Added default_sml_pattern to exports

Critical Issues Found: Multiple bugs including version mismatch, incorrect pattern matching, indexing errors, return type mismatches, and broken sentence/chapter numbering logic that will affect resume functionality and VTT generation.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/classes/tts_engines/vits.py
Comment thread lib/core.py
Comment thread lib/core.py
Comment on lines +1688 to +1697
start = sentence_num
if c in missing_chapters:
msg = f'********* Recovering missing block {c} *********'
print(msg)
elif resume_chapter == c and c > 0:
msg = f'********* Resuming from block {resume_chapter} *********'
print(msg)
msg = f'Block {chapter_idx} containing {len(sentences)} sentences…'
print(msg)
for i, sentence in enumerate(sentences):
for sentence_num, sentence in enumerate(sentences):
Copy link

Copilot AI Jan 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing initialization of sentence_num before the loop. Line 1697 uses sentence_num in an enumerate, but the variable sentence_num is initialized inside the loop as the loop variable. However, line 1688 references start = sentence_num before sentence_num is assigned in the enumerate. This should use a different variable name or be initialized to 0 before line 1684.

Copilot uses AI. Check for mistakes.
Comment thread lib/core.py
Comment thread lib/core.py
if chapter_num <= resume_chapter:
msg = f'**Recovering missing file block {chapter_num}'
print(msg)
if chapter_idx in missing_chapters or sentence_num > resume_sentence:
Copy link

Copilot AI Jan 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition on line 1724 checks if chapter_idx in missing_chapters, but missing_chapters contains 0-indexed chapter numbers (from the range check on lines 1638), while chapter_idx is 1-indexed (c + 1). This will cause incorrect detection of which chapters need to be combined.

Suggested change
if chapter_idx in missing_chapters or sentence_num > resume_sentence:
if c in missing_chapters or sentence_num > resume_sentence:

Copilot uses AI. Check for mistakes.
Comment thread lib/core.py
Comment thread lib/core.py
Comment thread lib/classes/tts_engines/yourtts.py
Comment thread lib/classes/tts_engines/yourtts.py
Comment thread lib/classes/tts_engines/yourtts.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants