tonhowtf/omniget · error
modelo nao esta baixado
Error message
modelo {} nao esta baixado What it means
transcribe() builds the model path as models_dir/ggml-<model>.bin and checks existence before running. If the selected GGML model was never downloaded, this error is returned. Model ids must match the MODELS table (e.g. "large-v3-turbo-q5_0"); the file must have been fetched via download_model().
Solutions
- Call whisper::download_model(opts.model, progress) first, then transcribe.
- Check availability with whisper::list_models() (installed/size_bytes per model) or status().models.
- Make sure opts.model matches an id in the MODELS table exactly (e.g. "tiny-q5_1", not "tiny").
- Re-download if a previous download failed or the file was removed.
Example fix
// before
whisper::transcribe(opts, progress).await?;
// after
let installed = whisper::list_models().iter().any(|m| m.installed && m.id == opts.model);
if !installed {
whisper::download_model(&opts.model, progress.clone()).await?;
}
whisper::transcribe(opts, progress).await?; Defensive patterns
Strategy: validation
Validate before calling
let have_model = whisper::list_models()
.iter()
.any(|m| m.id == opts.model && m.installed);
if !have_model {
whisper::download_model(&opts.model, progress.clone()).await?;
} Try / catch
match whisper::transcribe(opts.clone(), progress.clone()).await {
Err(e) if e.to_string().contains("nao esta baixado") => {
whisper::download_model(&opts.model, progress).await?;
// then retry transcribe
}
other => other?,
} Prevention
- Use ids exactly from the MODELS table (e.g. "large-v3-turbo-q5_0").
- Download models via download_model before transcribing.
- Avoid clearing app data without re-downloading models.
When it happens
Trigger: Calling transcribe with opts.model set to an id whose ggml-<model>.bin is absent from the models directory — never downloaded, deleted via remove_model, or a typo in the id that doesn't match any downloaded file.
Common situations: User cleared app data (removing models) then tried to transcribe; passing a raw model name like "large-v3" from another tool's naming when the app uses quantized ids like "large-v3-q5_0"; a download_model call that failed partway leaving no/partial file (partial files also fail here because existence uses the exact name).
Understand the failure class
Background: "File not found" and ENOENT errors: why libraries can't find a file that should exist — this error's family across 50 libraries.
Related errors
- amostra
- arquivo não existe
- arquivo nao encontrado
- Deno binary not found after extraction
- download terminou mas nao achei o arquivo
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/1cb4a97ae38c8574.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/whisper.rs:324
text: t,
});
}
}
Ok((language, cues))
}
pub async fn transcribe(
opts: TranscribeOptions,
progress: ProgressFn,
) -> anyhow::Result<TranscribeResult> {
let (bin, _) = locate()
.await
.ok_or_else(|| anyhow!("whisper-cli nao esta instalado"))?;
let model_path = models_dir()
.ok_or_else(|| anyhow!("Could not determine data directory"))?
.join(format!("ggml-{}.bin", opts.model));
if !model_path.exists() {
return Err(anyhow!("modelo {} nao esta baixado", opts.model));
}
let input = PathBuf::from(&opts.input);
if !input.exists() {
return Err(anyhow!("arquivo nao encontrado: {}", opts.input));
}
let id = format!("transcribe:{}", opts.input);
report(&progress, &id, "convert", 0, Some(100), None);
let started = std::time::Instant::now();
let wav = to_wav16k(&input).await?;
let out_prefix = super::temp_dir().join(format!("whisper-{}", uuid::Uuid::new_v4()));
let mut cmd = crate::core::process::command(&bin);
cmd.arg("-m").arg(&model_path).arg("-f").arg(&wav);
cmd.args(["-oj", "-pp", "-np", "-of"]).arg(&out_prefix);
let lang = if opts.language.trim().is_empty() {
"auto"
} else {
opts.language.trim()View on GitHub (pinned to 8600b91f42)