Add WhisperX configuration contract

This commit is contained in:
2026-05-03 15:23:47 -05:00
parent 598584cf2d
commit c2a715d3f6
8 changed files with 227 additions and 10 deletions

View File

@@ -102,10 +102,15 @@ Key behavior:
- Strict YAML decoding via `yaml.Decoder.KnownFields(true)`.
- Unknown fields are rejected.
- Combined resolved config type keeps source paths (`PipelinePath`, `SessionPath`) for provenance/errors.
- WhisperX optional fields are defaulted during load for deterministic resolved config values.
Validation currently enforces:
- `pipeline.workspace.root` is required.
- `pipeline.whisperx.transcribe_url` is required and must be a valid URL.
- `pipeline.whisperx.timeout` and `pipeline.whisperx.retry_delay` must parse as Go durations.
- `pipeline.whisperx.retries` must be `>= 0`.
- `pipeline.whisperx.concurrency` must be `> 0`.
- `session.session_id` is required.
- `session.inputs.speakers_file`, `autocorrect_file`, `glossary_file` are required.
- At least one audio source: `session.inputs.audio_dir` or non-empty `session.inputs.audio_files`.