| """Shared cut map: source intervals removed, and source->output time mapping.""" | |
| # (start, end) in SOURCE seconds to REMOVE (dead-air / loading / thinking pauses) | |
| REMOVED = [ | |
| (268.92, 269.70), # "fire this up." pause | |
| (271.58, 273.16), # model "thinking" dead-air (keep a beat, drop the rest) | |
| (315.70, 316.60), # loading pause before "20 tokens per second" | |
| ] | |
| SRC_DURATION = 393.79 | |
| def keep_segments(): | |
| """Complement of REMOVED over [0, SRC_DURATION].""" | |
| segs = [] | |
| cur = 0.0 | |
| for a, b in REMOVED: | |
| if a > cur: | |
| segs.append((cur, a)) | |
| cur = b | |
| if cur < SRC_DURATION: | |
| segs.append((cur, SRC_DURATION)) | |
| return segs | |
| def map_time(t: float) -> float: | |
| """Map a SOURCE timestamp to the OUTPUT (post-cut) timeline.""" | |
| removed_before = 0.0 | |
| for a, b in REMOVED: | |
| if t >= b: | |
| removed_before += (b - a) | |
| elif t > a: # inside a removed gap -> clamp to gap start | |
| return a - removed_before | |
| return t - removed_before | |
| def out_duration() -> float: | |
| return map_time(SRC_DURATION) | |
| if __name__ == "__main__": | |
| print("keep segments:", [(round(a, 2), round(b, 2)) for a, b in keep_segments()]) | |
| print("output duration:", round(out_duration(), 2)) | |