Short answer
No. Kaldi does not provide built-in idempotent write retries or a general skip-if-output-exists guard. It is a speech-recognition training and decoding toolkit, not a transactional write manager, so repeated runs against the same artifact typically overwrite or fail rather than detect a prior successful write.
Confirmed facts versus assumptions
Confirmed: Kaldi has no single global retry or deduplication parameter. Output handling is per binary and per recipe. Many tools open outputs with create-or-truncate semantics, so an existing file can be replaced on the next invocation.
Assumption: This describes standard upstream Kaldi behavior. Patched forks or wrapper scripts may add their own guards, but that is not part of the core toolkit.
Steps for this case
- Identify the Kaldi binary or recipe stage generating the output.
- Check whether the recipe writes directly to the final path or to a temporary location first.
- Look for external guards such as
[ -f "$output" ] or stage-number checks around the call.
- Run the command twice against the same output path in a scratch directory and observe whether it skips, fails, or overwrites.
Recommended approach
Implement idempotency outside Kaldi. Write to a temporary path, confirm the command completed, then move the file into place. Wrap the invocation in a shell guard that checks for the expected artifact before retrying. Do not retry a Kaldi write while another job may be reading the same archive or lattice file.
Missing diagnostic detail
Which Kaldi binary or recipe stage is producing the output? Exact overwrite or failure behavior varies by tool, so this determines whether you need a file-existence guard, a temporary-path strategy, or a stage skip.