cjpais/Handy · error · anyhow::Error
GigaAM transcription failed
Error message
GigaAM transcription failed: {} What it means
The GigaAM branch calls gigaam_engine.transcribe(&audio, &TranscribeOptions::default()); this error wraps the ONNX Runtime failure from the GigaAM Int8 graph, with the library error chained after the colon.
Solutions
- Read the chained ORT error and switch accelerator to CPU if provider-related
- Retry with longer audio
- Re-download the GigaAM model
- Check system stability (GPU driver, thermals) if failures are intermittent
Defensive patterns
Strategy: retry
Try / catch
match manager.transcribe(audio.clone()) {
Err(e) if e.to_string().contains("GigaAM transcription failed") => manager.transcribe(audio),
other => other,
} Prevention
- Discard near-zero-length audio before transcription
- Monitor GPU stability; switch to CPU accelerator for triage
- Re-download the model if errors are reproducible
When it happens
Trigger: ORT inference fails during GigaAM transcription: provider runtime error, invalid input from too-short/empty-after-trim audio, or corrupted model graph.
Common situations: Accelerator/driver issues; short utterances; model file corruption after interrupted download or disk issues.
Related errors
- Canary transcription failed
- Cohere transcription failed
- Failed to load gigaam model
- Moonshine streaming transcription failed
- Moonshine transcription failed
AI-assisted analysis of cjpais/Handy@ba10ce1943 (2026-08-17).
Data as JSON: /api/errors/ac8ed26e2a82d693.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/src/managers/transcription.rs:1397
"ja" => Some("ja".to_string()),
"ko" => Some("ko".to_string()),
"yue" => Some("yue".to_string()),
_ => None,
};
applied_language_hint = language.clone();
let params = SenseVoiceParams {
language,
use_itn: Some(true),
};
sense_voice_engine
.transcribe_with(&audio, ¶ms)
.map(|r| r.text)
.map_err(|e| anyhow::anyhow!("SenseVoice transcription failed: {}", e))
}
LoadedEngine::GigaAM(gigaam_engine) => gigaam_engine
.transcribe(&audio, &TranscribeOptions::default())
.map(|r| r.text)
.map_err(|e| anyhow::anyhow!("GigaAM transcription failed: {}", e)),
LoadedEngine::Canary(canary_engine) => {
output_was_translated = settings.translate_to_english;
let lang = if validated_language == "auto" {
None
} else {
Some(validated_language.clone())
};
applied_language_hint = lang.clone();
let options = TranscribeOptions {
language: lang,
translate: settings.translate_to_english,
..Default::default()
};
canary_engine
.transcribe(&audio, &options)
.map(|r| r.text)
.map_err(|e| anyhow::anyhow!("Canary transcription failed: {}", e))
}View on GitHub (pinned to ba10ce1943)