This document defines the text-to-speech fallback for missing VO required by
TODOS.phase-72.72.11.2.13. The fallback uses platform TTS when recorded
voice-over is missing, while still preferring recorded VO whenever source WAV
coverage is present. This covers accessibility playback and incomplete
localizations without hiding the missing recording from production reports.
The tracked contract is
V2/ue/Content/Localization/V2/TTSFallbackForMissingVO_V2_Contract.json. The
generated fallback plan is
V2/ue/Content/Localization/V2/VoiceOver/TTSFallback/TTSFallbackForMissingVO_V2.json,
with summary coverage in
V2/ue/Content/Localization/V2/VoiceOver/TTSFallback/TTSFallbackForMissingVOReport_V2.json.
Runtime Path#
UV2DialogueRuntimeLibrary::BuildDialogueVoiceOverTtsFallbackViewModel accepts
the line ID, locale, localized text, speaker name, source voice cue, and
platform TTS voice ID for a dialogue line. It keeps recorded VO when audio is
available, queues platform TTS when a localization is incomplete, and can also
queue TTS for accessibility even when recorded VO exists.
The helper returns a view model with:
bUseRecordedVoiceOverwhen the localized source WAV and voice cue are present.bUsePlatformTextToSpeechwhen platform TTS should be queued.bFallbackBecauseMissingVoiceOverwhen TTS is specifically replacing missing VO.TextToSpeechUtterancebuilt from speaker name plus localized line text.PlatformTextToSpeechVoiceIdmatching the selected locale.
Generated Fallback Plan#
V2/ue/Tools/generate-v2-tts-fallback-for-missing-vo.py reads
VoiceOverIntegrationPipeline_V2.json and the recording script export. Each
integration row that reports missing audio becomes a platform TTS fallback row.
Rows with matched audio stay on recorded VO so temporary TTS does not mask
finished localization work.
V2/ue/Tools/check-v2-tts-fallback-for-missing-vo.py validates deterministic
generation, the all-missing VO case, an all-recorded VO case with temporary
source WAVs, missing text rejection, runtime helper coverage, CI wiring, Horde
gates, and this document.