# Subtitle Timing From Voice-Over

This document defines subtitle timing from voice-over for
`TODOS.phase-72.72.11.2.10`. The pipeline uses VO clip length metadata to
auto-generate subtitle display duration while preserving each localized dialogue
line's subtitle timing ID.

The tracked contract is
`V2/ue/Content/Localization/V2/SubtitleTimingFromVoiceOver_V2_Contract.json`.
The deterministic timing output lives at
`V2/ue/Content/Localization/V2/VoiceOver/SubtitleTiming/SubtitleTimingFromVoiceOver_V2.json`,
and the summary report lives at
`V2/ue/Content/Localization/V2/VoiceOver/SubtitleTiming/SubtitleTimingFromVoiceOverReport_V2.json`.

## Timing Rules

`V2/ue/Tools/generate-v2-subtitle-timing-from-voice-over.py` reads the
voice-over integration pipeline and recording script export. When a localized VO
clip is available, the generator reads `durationMs` from the `.voasset.json`
metadata sidecar and sets subtitle display time to the larger of the localized
reading floor and the VO duration plus a 0.35 second post-voice hold.

The current repository has no committed localized source WAV files, so the
tracked output records twelve waiting rows. The checker creates temporary VO
files and metadata to prove subtitle timing is generated from VO clip length
once recordings are present.

`V2/ue/Tools/check-v2-subtitle-timing-from-voice-over.py` validates the
contract, deterministic output, report, CI and Horde wiring, missing-audio
detection, temporary-audio timing generation, and the phase-72 checklist.
