{"record":{"id":"df0ed3c5992a3c40","repo":"SubtitleEdit/subtitleedit","slug":"chatterbox-tts-turbo-does-not-load-with-crispasr","errorCode":null,"errorMessage":"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.","messagePattern":"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\\.","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"src/ui/Features/Video/TextToSpeech/Engines/ChatterboxTtsCpp.cs","lineNumber":652,"sourceCode":"                    _serverLaunchCommand = null;\n                    if (LooksLikeOutdatedCrispAsr(tail))\n                    {\n                        throw new InvalidOperationException(\n                            \"Chatterbox requires CrispASR v0.6.0 or newer. Re-download CrispASR via \"\n                            + \"Video → Audio to text → Engine settings → Re-download, then try again.\"\n                            + LaunchCmdSuffix(exitedLaunchCommand));\n                    }\n                    if (LooksLikeStaleModelCache(tail))\n                    {\n                        throw new InvalidOperationException(\n                            \"Chatterbox failed to load its model — the GGUFs in \"\n                            + GetSetModelsFolder() + \" are likely stale or partially downloaded. \"\n                            + \"Delete them and try again so they re-download. Original output: \" + tail\n                            + LaunchCmdSuffix(exitedLaunchCommand));\n                    }\n                    if (LooksLikeChatterboxTurboTokenizerMismatch(tail))\n                    {\n                        throw new InvalidOperationException(\n                            \"Chatterbox TTS \\\"Turbo\\\" does not load with CrispASR 0.8.0. The turbo model \"\n                            + \"is fine — 0.8.0's tokenizer/vocab check was overly strict and rejected its \"\n                            + \"benign embedding superset (50257-token tokenizer, text vocab size 50276). \"\n                            + \"This is fixed upstream (CrispStrobe/CrispASR#181): a newer CrispASR loads \"\n                            + \"Turbo normally, with no re-download. Until then, switch to the \\\"Base\\\" \"\n                            + \"Chatterbox model, which works.\"\n                            + Environment.NewLine + Environment.NewLine + tail\n                            + LaunchCmdSuffix(exitedLaunchCommand));\n                    }\n                    if (LooksLikeChatterboxTurboStartupCrash(modelKey, tail))\n                    {\n                        throw new InvalidOperationException(\n                            \"Chatterbox TTS \\\"Turbo\\\" model crashed CrispASR during startup. This is a known \"\n                            + \"upstream issue in the chatterbox-turbo backend (especially on macOS/CPU). \"\n                            + \"Try the \\\"Base\\\" model instead, or file an issue at \"\n                            + \"https://github.com/CrispStrobe/CrispASR/issues with the log below.\"\n                            + Environment.NewLine + Environment.NewLine + tail\n                            + LaunchCmdSuffix(exitedLaunchCommand));","sourceCodeStart":634,"sourceCodeEnd":670,"githubUrl":"https://github.com/SubtitleEdit/subtitleedit/blob/17a9f0748781032255db3526b7215d2fb891e3af/src/ui/Features/Video/TextToSpeech/Engines/ChatterboxTtsCpp.cs#L634-L670","documentation":"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.","triggerScenarios":"Server startup loop sees process.HasExited; the model key is the Turbo variant; LooksLikeChatterboxTurboTokenizerMismatch true. Requires the exact CrispASR 0.8.0 + Turbo combination.","commonSituations":"User updated to CrispASR 0.8.0 and then selected the Turbo Chatterbox model.","solutions":["Switch to the Base Chatterbox model, which loads on CrispASR 0.8.0 (as the message suggests).","Upgrade CrispASR past 0.8.0 once the upstream fix (#181) ships.","Stay on an older CrispASR if you must use Turbo."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (modelKey == ChatterboxModel.Turbo && DetectCrispAsrVersion(exe) == new Version(0, 8, 0))\n    return Invalid(\"Turbo + CrispASR 0.8.0 is unsupported (CrispStrobe/CrispASR#181); use Base or upgrade CrispASR\");","typeGuard":null,"tryCatchPattern":"try { EnsureServerRunningAsync(modelKey, ct).Wait(); }\ncatch (InvalidOperationException ex) when (ex.Message.Contains(\"Turbo\\\" does not load with CrispASR 0.8.0\"))\n{ /* switch modelKey to Base, or upgrade CrispASR past 0.8.0 */ }","preventionTips":["Track known-bad model/engine version combinations and block them at selection time.","Default new installs to the Base Chatterbox model until CrispASR is past 0.8.0.","Watch the upstream CrispStrobe/CrispASR#181 fix and lift the guard when shipped."],"tags":["chatterbox","crispasr","version-mismatch","tokenizer","text-to-speech"],"backgroundTag":null,"analyzedSha":"17a9f0748781032255db3526b7215d2fb891e3af","analyzedAt":"2026-08-13T18:11:43.374Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}