SubtitleEdit/subtitleedit · error · FileNotFoundException
CrispASR executable not found. Install CrispASR via Video →
Error message
CrispASR executable not found. Install CrispASR via Video → Audio to text first.
What it means
FileNotFoundException from F5TtsCrispAsr.EnsureServerRunningAsync: GetCrispAsrExecutable() returned a path for which File.Exists is false. Like CosyVoice3, F5-TTS shares the crispasr binary with the ASR feature and expects it to be installed first via Video → Audio to text.
Source
Thrown at src/ui/Features/Video/TextToSpeech/Engines/F5TtsCrispAsr.cs:547
}
await ServerLock.WaitAsync(ct);
try
{
if (MatchesCurrent())
{
return;
}
if (_serverProcess != null)
{
StopServerInternal();
}
var exe = GetCrispAsrExecutable();
if (!File.Exists(exe))
{
throw new FileNotFoundException(
"CrispASR executable not found. Install CrispASR via Video → Audio to text first.", exe);
}
var talkerFileName = GetTalkerFileName(modelKey);
var talker = GetTalkerPath(modelKey);
var hasLocalTalker = IsValidLocalModelFile(talker, talkerFileName);
var port = FindFreeLoopbackPort();
var psi = new ProcessStartInfo
{
WorkingDirectory = Path.GetDirectoryName(exe) ?? GetSetFolder(),
FileName = exe,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true,
RedirectStandardOutput = true,
};
psi.ArgumentList.Add("--server");View on GitHub (pinned to 17a9f07487)
Solutions
- Open Video → Audio to text and run transcription once so the shared CrispASR binary downloads.
- Verify the path returned by GetCrispAsrExecutable() exists and is readable.
- Re-download CrispASR via Video → Audio to text → Engine settings → Re-download.
- If AV quarantined it, whitelist the CrispAsr folder and re-download.
Defensive patterns
Strategy: validation
Validate before calling
var exe = F5TtsCrispAsr.GetCrispAsrExecutable(); // assume exposed
if (!File.Exists(exe))
{
Se.WriteToolsLog("CrispASR not installed — run Video → Audio to text first.", true);
return; // or prompt the user to install
} Try / catch
try { await f5TtsEngine.Speak(text, out, voice, lang, region, model, ct); }
catch (FileNotFoundException ex) when (ex.Message.Contains("CrispASR executable not found", StringComparison.Ordinal))
{ Se.WriteToolsLog("Install CrispASR via Video → Audio to text, then retry.", true); } Prevention
- Gate the F5-TTS UI on CrispASR being installed (check File.Exists on the exe).
- Always run Audio-to-text once on a fresh install to populate the shared binary.
- Whitelist the CrispAsr folder in AV so the binary is not quarantined.
When it happens
Trigger: EnsureServerRunningAsync passes the MatchesCurrent cache check and the existing-server teardown, then File.Exists(exe) returns false for the crispasr path.
Common situations: Fresh install where the user went to TTS without ever running Audio to text; the binary was deleted/moved by AV; a portable install with a wrong relative exe path; permissions hiding the file.
Related errors
- CrispASR executable not found. Install CrispASR via Video →
- CrispASR executable not found. Install CrispASR via Video →
- Voice is not an F5TtsVoice
- F5-TTS (CrispASR) requires a reference voice WAV. Import one
- F5-TTS (CrispASR) — the crispasr server crashed during synth
AI-assisted analysis of SubtitleEdit/subtitleedit@17a9f07487 (2026-08-13).
Data as JSON: /api/errors/b08e2db7870225f2.
Report an issue: GitHub.