Skip to content

Add Engine settings dialogs for Qwen3, Kokoro, and Chatterbox TTS#11046

Merged
niksedk merged 3 commits into
mainfrom
add-tts-engine-settings-dialogs
May 19, 2026
Merged

Add Engine settings dialogs for Qwen3, Kokoro, and Chatterbox TTS#11046
niksedk merged 3 commits into
mainfrom
add-tts-engine-settings-dialogs

Conversation

@niksedk
Copy link
Copy Markdown
Member

@niksedk niksedk commented May 19, 2026

Summary

  • Add a settings icon button (and dialog) next to the TTS engine picker for Qwen3 TTS, Kokoro TTS, and Chatterbox TTS — mirroring the existing OmniVoice dialog. Each shows install location, backend, install/update status, and re-download / open-folder actions.
  • Track SHA-256 download hashes for Qwen3 TTS and Kokoro TTS in DownloadHashManager (with sidecar writes on install) so the dialogs can report up-to-date vs. update-available. Chatterbox reuses CrispASR's existing hash tracking plus a Base/Turbo model installed check.

Test plan

  • Open Video → Text to speech, switch the engine to Qwen3 TTS / Kokoro TTS / Chatterbox TTS and confirm the settings icon appears next to the engine dropdown.
  • Click each settings icon and verify the dialog shows backend, status, release tag (where applicable), and install folder.
  • Trigger Re-download from each dialog and verify the existing download flow runs to completion and the dialog status refreshes afterwards.
  • Verify Open folder / Close behave as expected.

🤖 Generated with Claude Code

niksedk and others added 3 commits May 19, 2026 08:51
Mirror the OmniVoice TTS engine settings dialog for the other local
TTS engines so users can see install status / re-download from the TTS
window. Track download SHA-256s for Qwen3 TTS and Kokoro TTS in
DownloadHashManager and write .installed.sha256 sidecars so update
status can be reported. Chatterbox reuses CrispASR's already-tracked
hashes and reports model install status for Base/Turbo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The button label ("Re-download Base/Turbo") was misleading when the
model wasn't actually installed yet — the dialog can be opened before
any models are downloaded. Switch to "Download" / "Re-download" based
on install status, and mirror the same in the confirmation prompt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ZipArchive(stream, mode) defaults to leaveOpen=false, so UnpackZipStream
was disposing the caller's MemoryStream when the archive went out of
scope. WriteInstalledHashSidecar (called right after extraction) then
hit ObjectDisposedException on .Length and silently swallowed it — so
the .installed.sha256 sidecar was never written for the engine archive,
and Kokoro / Qwen3 / OmniVoice engine status stayed at "no install
record" even after a successful re-download.

Pass leaveOpen: true and let callers manage stream lifetime — they all
use MemoryStream and dispose it themselves immediately after.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@niksedk niksedk merged commit 267249b into main May 19, 2026
3 checks passed
@niksedk niksedk deleted the add-tts-engine-settings-dialogs branch May 19, 2026 13:22
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.

1 participant