SubtitleEdit/subtitleedit · error · InvalidOperationException

Chatterbox TTS "Turbo" does not load with CrispASR 0.8.0. Th

Error message

Chatterbox TTS "Turbo" does not load with CrispASR 0.8.0. The turbo model is fine — 0.8.0's tokenizer/vocab check was overly strict and rejected its benign embedding superset (50257-token tokenizer, text vocab size 50276). This is fixed upstream (CrispStrobe/CrispASR#181): a newer CrispASR loads Turbo normally, with no re-download. Until then, switch to the "Base" Chatterbox model, which works.

What it means

Server exited at startup and LooksLikeChatterboxTurboTokenizerMismatch matched: CrispASR 0.8.0's overly strict vocab check rejected the Turbo model's benign embedding superset (50257-token tokenizer vs text vocab size 50276). Fixed upstream in CrispStrobe/CrispASR#181. The message advises switching to the Base model until a newer CrispASR is installed.

Source

Thrown at src/ui/Features/Video/TextToSpeech/Engines/ChatterboxTtsCpp.cs:652

                    _serverLaunchCommand = null;
                    if (LooksLikeOutdatedCrispAsr(tail))
                    {
                        throw new InvalidOperationException(
                            "Chatterbox requires CrispASR v0.6.0 or newer. Re-download CrispASR via "
                            + "Video → Audio to text → Engine settings → Re-download, then try again."
                            + LaunchCmdSuffix(exitedLaunchCommand));
                    }
                    if (LooksLikeStaleModelCache(tail))
                    {
                        throw new InvalidOperationException(
                            "Chatterbox failed to load its model — the GGUFs in "
                            + GetSetModelsFolder() + " are likely stale or partially downloaded. "
                            + "Delete them and try again so they re-download. Original output: " + tail
                            + LaunchCmdSuffix(exitedLaunchCommand));
                    }
                    if (LooksLikeChatterboxTurboTokenizerMismatch(tail))
                    {
                        throw new InvalidOperationException(
                            "Chatterbox TTS \"Turbo\" does not load with CrispASR 0.8.0. The turbo model "
                            + "is fine — 0.8.0's tokenizer/vocab check was overly strict and rejected its "
                            + "benign embedding superset (50257-token tokenizer, text vocab size 50276). "
                            + "This is fixed upstream (CrispStrobe/CrispASR#181): a newer CrispASR loads "
                            + "Turbo normally, with no re-download. Until then, switch to the \"Base\" "
                            + "Chatterbox model, which works."
                            + Environment.NewLine + Environment.NewLine + tail
                            + LaunchCmdSuffix(exitedLaunchCommand));
                    }
                    if (LooksLikeChatterboxTurboStartupCrash(modelKey, tail))
                    {
                        throw new InvalidOperationException(
                            "Chatterbox TTS \"Turbo\" model crashed CrispASR during startup. This is a known "
                            + "upstream issue in the chatterbox-turbo backend (especially on macOS/CPU). "
                            + "Try the \"Base\" model instead, or file an issue at "
                            + "https://github.com/CrispStrobe/CrispASR/issues with the log below."
                            + Environment.NewLine + Environment.NewLine + tail
                            + LaunchCmdSuffix(exitedLaunchCommand));

View on GitHub (pinned to 17a9f07487)

Solutions

  1. Switch to the Base Chatterbox model, which loads on CrispASR 0.8.0 (as the message suggests).
  2. Upgrade CrispASR past 0.8.0 once the upstream fix (#181) ships.
  3. Stay on an older CrispASR if you must use Turbo.
Defensive patterns

Strategy: validation

Validate before calling

if (modelKey == ChatterboxModel.Turbo && DetectCrispAsrVersion(exe) == new Version(0, 8, 0))
    return Invalid("Turbo + CrispASR 0.8.0 is unsupported (CrispStrobe/CrispASR#181); use Base or upgrade CrispASR");

Try / catch

try { EnsureServerRunningAsync(modelKey, ct).Wait(); }
catch (InvalidOperationException ex) when (ex.Message.Contains("Turbo\" does not load with CrispASR 0.8.0"))
{ /* switch modelKey to Base, or upgrade CrispASR past 0.8.0 */ }

Prevention

When it happens

Trigger: Server startup loop sees process.HasExited; the model key is the Turbo variant; LooksLikeChatterboxTurboTokenizerMismatch true. Requires the exact CrispASR 0.8.0 + Turbo combination.

Common situations: User updated to CrispASR 0.8.0 and then selected the Turbo Chatterbox model.

Related errors


AI-assisted analysis of SubtitleEdit/subtitleedit@17a9f07487 (2026-08-13). Data as JSON: /api/errors/df0ed3c5992a3c40. Report an issue: GitHub.