Issue: Excessive pre‑Whisper candidate files are saved per chunk
Summary
When running TTS with Candidates Per Chunk = 3, Max Attempts Per Candidate = 3, and Bypass Whisper Checking = OFF, the script saves 9 WAV files per chunk before Whisper validation. This appears to treat “Max Attempts Per Candidate” as pre‑validation attempts rather than retries upon Whisper failure.
Steps to Reproduce
-
Open the UI and set:
- Number of Candidates Per Chunk:
3
- Max Attempts Per Candidate:
3
- Bypass Whisper Checking: unchecked
-
Generate audio for any prompt long enough to create multiple chunks.
-
Inspect the output directory.
Expected Behavior
- Initial pass should emit 3 files per chunk (one per candidate).
- Only chunks that fail Whisper validation should be regenerated in additional
tryN rounds.
Actual Behavior
- 9 files per chunk are written pre‑Whisper (filenames like
gen1_chunk_XXX_cand_Y_try1_seed*.wav).
- Whisper validation then runs on those 9 files; subsequent retries may create even more files.
Environment
- UI build with Whisper validation enabled
- Model: any (reproducible across sizes)
Suspected Cause
process_one_chunk_deterministic(...) loops over candidates × attempts and saves every attempt. The inner loop only breaks early when Bypass Whisper Checking is enabled, so with it OFF the code persists all attempts prior to validation.
Proposed Fix
Short‑circuit after the first successful attempt per candidate in the deterministic path; keep the multi‑round retry logic for Whisper failures.
# In Chatter.py -> process_one_chunk_deterministic(...)
- if bypass_whisper_checking:
- break
+ # Only one pre‑validation attempt per candidate; Whisper retries handle failures
+ break
(Optional) Add the inner attempt index to filenames if multiple attempts are ever kept:
..._cand_{cand_idx+1}_attempt{attempt+1}_try{retry_attempt_number}_seed{candidate_seed}.wav
Impact
- Large, unnecessary I/O and disk usage
- Slower first pass before validation
Request
Please confirm whether the above behavior is intentional. If not, adopting the proposed short‑circuit would align output with the UI’s intent: N candidates first, then retries only on validation failure.
Issue: Excessive pre‑Whisper candidate files are saved per chunk
Summary
When running TTS with Candidates Per Chunk = 3, Max Attempts Per Candidate = 3, and Bypass Whisper Checking = OFF, the script saves 9 WAV files per chunk before Whisper validation. This appears to treat “Max Attempts Per Candidate” as pre‑validation attempts rather than retries upon Whisper failure.
Steps to Reproduce
Open the UI and set:
33Generate audio for any prompt long enough to create multiple chunks.
Inspect the output directory.
Expected Behavior
tryNrounds.Actual Behavior
gen1_chunk_XXX_cand_Y_try1_seed*.wav).Environment
Suspected Cause
process_one_chunk_deterministic(...)loops over candidates × attempts and saves every attempt. The inner loop only breaks early when Bypass Whisper Checking is enabled, so with it OFF the code persists all attempts prior to validation.Proposed Fix
Short‑circuit after the first successful attempt per candidate in the deterministic path; keep the multi‑round retry logic for Whisper failures.
(Optional) Add the inner attempt index to filenames if multiple attempts are ever kept:
Impact
Request
Please confirm whether the above behavior is intentional. If not, adopting the proposed short‑circuit would align output with the UI’s intent: N candidates first, then retries only on validation failure.