Skip to content

Issue: Excessive pre‑Whisper candidate files are saved per chunk #44

Description

@enoky

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

  1. Open the UI and set:

    • Number of Candidates Per Chunk: 3
    • Max Attempts Per Candidate: 3
    • Bypass Whisper Checking: unchecked
  2. Generate audio for any prompt long enough to create multiple chunks.

  3. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions