← Pi Artifacts | Pi Team

Voice Stem Audit

Pi Team — "Time Theft"

Voice Stem Duration Audit — Time Theft (Pi Team)

Author: pi-editor Date: 2026-05-19 Status: PASS (with timeline adjustments)

Methodology

All 18 stems independently verified with ffprobe. Durations match tech lead’s report.

Editorial Decisions

The timing “hints” in the scene list were aspirational guides, not hard constraints. TTS output is inherently unpredictable. My editorial decision: let VO fill more of the shot duration rather than cramming into narrow windows. The narration IS the show — the audience needs to hear every word.

Severe Overruns — Resolved

ShotStemActualShot DurDecision
19shot19_vo.wav5.88s4sApply atempo 1.30 -> ~4.5s. Place at 0s, clip at shot boundary. The stuttering “Company time!” SHOULD sound rushed in Act IV.
22shot22_vo.wav5.40s4sApply atempo 1.30 -> ~4.2s. Same treatment — glitchy repetition benefits from speed.
26shot26_vo.wav9.04s8sApply atempo 1.13 -> ~8.0s. Very natural speed-up for the cold, authoritative conclusion.

Moderate Overruns — Resolved via Window Expansion

Most “overruns” are only overruns against the narrow hint window, NOT against the total shot duration. Simply expanding the VO placement window resolves them:

ShotStemActualShot DurAdjusted Windowatempo
2shot02_vo.wav10.04s8s0s-8s1.26 (bring to 8s)
3shot03_vo.wav7.80s8s0s-8sNone needed
4shot04_vo.wav9.56s10s0s-8s1.20 (bring to ~8s, leaves 2s gap before dialogue)
5shot05_vo.wav6.00s8s1s-7sNone needed
8shot08_vo.wav6.36s8s1s-8sNone needed
9shot09_vo.wav4.88s7s1s-6sNone needed
11shot11_vo.wav4.12s6s1s-5sNone needed
24 VOshot24_vo.wav2.28s5s0s-2.3sNone needed
29shot29_vo.wav6.24s8s1s-7sNone needed

Dialogue Stems — All OK

ShotStemActualWindowDecision
4shot04_dialogue.wav2.36s8s-9sPlace at 8s, fits within shot
14shot14_dialogue.wav2.68s2s-4sPlace at 2s, extends to 4.7s — OK
24shot24_dialogue.wav2.04s3s-4sPlace at 3s — OK
28shot28_dialogue.wav2.60s5s-7sPlace at 5s — OK

Atempo Processing Needed

Before timeline assembly, these stems need speed processing:

# Act IV frantic VO — intentionally rushed
ffmpeg -y -i voice/shot19_vo.wav -af "atempo=1.30" voice/shot19_vo_fitted.wav
ffmpeg -y -i voice/shot22_vo.wav -af "atempo=1.30" voice/shot22_vo_fitted.wav

# Act I opening narration — natural speed-up
ffmpeg -y -i voice/shot02_vo.wav -af "atempo=1.26" voice/shot02_vo_fitted.wav

# Act I approach narration
ffmpeg -y -i voice/shot04_vo.wav -af "atempo=1.20" voice/shot04_vo_fitted.wav

# Act V conclusion — very gentle speed-up
ffmpeg -y -i voice/shot26_vo.wav -af "atempo=1.13" voice/shot26_vo_fitted.wav

Music Stems

StemDurationCoverageStatus
act1_muzak.wav2:25Act I (45s) + overflow✅ Long enough
act2_3_muzak_fast.wav2:37Acts II+III (75s) + overflow✅ Long enough
act4_muzak_frantic.wav31sAct IV (30s)✅ Just covers
act5_muzak_mournful.wav29sAct V opening✅ OK
finale_muzak_brassy.wav31sAct V closing✅ OK
clock_ticking.wav31sEntire film (needs looping)⚠️ Will need segments + atempo for acceleration

Clock Tick Strategy

The 31s ticking stem will be used as source material:

GATE DECISION: VOICE AUDIT — CLEARED

All stems are usable with the documented adjustments.