Add WhisperX configuration contract
This commit is contained in:
@@ -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`.
|
||||
|
||||
Reference in New Issue
Block a user