heygen-com/hyperframes · error
Parakeet did not produce output.
Error message
Parakeet did not produce output.
What it means
Thrown by transcribeWithParakeet when the parakeet-mlx process ran without throwing an error (execFileSync returned normally) but the expected output JSON file was not created in the work directory. The output file is named after the input (stem + .json) in a temp directory. Its absence means parakeet-mlx ran but produced no transcription — a silent failure.
Source
Thrown at packages/cli/src/whisper/parakeet.ts:141
}
const model = options?.model ?? DEFAULT_MODEL;
// First run pulls the model from HuggingFace (~600MB) — cue it so the wait
// doesn't read as a hang. HF caches at ~/.cache/huggingface/hub/models--<slug>.
const cached = existsSync(
join(homedir(), ".cache", "huggingface", "hub", `models--${model.replace(/\//g, "--")}`),
);
options?.onProgress?.(
cached ? "Transcribing with Parakeet..." : "Downloading Parakeet model (first run, ~600MB)...",
);
const workDir = mkdtempSync(join(tmpdir(), "hyperframes-parakeet-"));
try {
const argv = [inputPath, "--model", model, "--output-format", "json", "--output-dir", workDir];
if (options?.language) argv.push("--language", options.language);
execFileSync(runner, argv, { stdio: ["ignore", "pipe", "pipe"], timeout: 1_800_000 });
const produced = join(workDir, `${basename(inputPath, extname(inputPath))}.json`);
if (!existsSync(produced)) throw new Error("Parakeet did not produce output.");
const words = mergeTokensToWords(JSON.parse(readFileSync(produced, "utf-8")) as ParakeetJson);
const transcriptPath = join(dir, "transcript.json");
writeFileSync(transcriptPath, JSON.stringify(words, null, 2));
const durationSeconds = words.length > 0 ? words[words.length - 1]!.end : 0;
return { transcriptPath, wordCount: words.length, durationSeconds, speechOnsetSeconds: null };
} finally {
rmSync(workDir, { recursive: true, force: true });
}
}
View on GitHub (pinned to c2996c8626)
Solutions
- Verify the input audio/video file is valid and contains audible speech.
- Check that the Parakeet model is fully downloaded (~/.cache/huggingface/hub/models--mlx-community/parakeet-tdt-0.6b-v3).
- Run parakeet-mlx manually with the same arguments to see its actual output and any stderr warnings.
- Update parakeet-mlx to the latest version in case of output-path changes.
- Fall back to the whisper engine (--engine whisper) if Parakeet consistently fails.
Defensive patterns
Strategy: try-catch
Try / catch
try {
return transcribeWithParakeet(inputPath, dir, options);
} catch (err) {
if (err instanceof Error && err.message === "Parakeet did not produce output.") {
// Check input validity, then fall back to whisper
console.warn("Parakeet produced no output. Check audio validity or use --engine whisper.");
return transcribeWithWhisper(inputPath, dir, options);
}
throw err;
} Prevention
- Verify the input audio/video file is valid and contains speech before transcription.
- Ensure the Parakeet model is fully downloaded before transcription runs.
- Run parakeet-mlx manually with the same args to diagnose silent output failures.
- Always have the whisper engine as a fallback for when Parakeet silently fails.
When it happens
Trigger: parakeet-mlx exits 0 but writes to a different output path or format; the model isn't downloaded yet and parakeet exits without error but produces no output; the input audio file is empty or has no detectable speech; a parakeet-mlx version change altered the output naming convention.
Common situations: First run where the model download silently fails or is interrupted; an empty or corrupt audio file that parakeet processes without error but yields no transcription; an output directory permissions issue; a version mismatch in parakeet-mlx's CLI flags.
Related errors
- parakeet-mlx not found. Enable the Parakeet engine with: $
- Whisper did not produce output. Check the input file.
- whisper-cpp build failed. Ensure cmake and a C compiler are
- Build completed but whisper-cli not found
- WHISPER_UNAVAILABLE
AI-assisted analysis of heygen-com/hyperframes@c2996c8626 (2026-08-12).
Data as JSON: /api/errors/63e8053e23c7f309.
Report an issue: GitHub.