Audit malformed Ego4D voice segments

This commit is contained in:
Xin Wang
2026-09-15 13:48:29 +08:00
parent a8a09d8fc5
commit af4817004b
3 changed files with 85 additions and 11 deletions
+15 -1
View File
@@ -129,10 +129,24 @@ class Ego4DAVCandidateTests(unittest.TestCase):
def test_large_terminal_endpoint_overrun_is_rejected(self) -> None:
clip = fixture_clip()
clip["clip_end_sec"] = 11.95
clip["camera_wearer"]["voice_segments"].append(segment("wearer", 11.8, 12.2))
clip["camera_wearer"]["voice_segments"].append(segment("wearer", 11.8, 13.2))
with self.assertRaisesRegex(ValueError, "exceeds the audited limit"):
derive_clip_candidates(clip, split="val", config=CandidateConfig())
def test_zero_duration_voice_segment_is_ignored_with_explicit_audit(self) -> None:
clip = fixture_clip()
clip["persons"][1]["voice_segments"].append(segment("p2", 9.0, 9.0))
audit: dict[str, object] = {}
rows, timeline = derive_clip_candidates(
clip, split="val", config=CandidateConfig(), audit_out=audit
)
self.assertEqual(audit["zero_duration_voice_segment_count"], 1)
self.assertFalse(any(row["start_seconds"] == 9.0 for row in timeline))
self.assertTrue(all(
row["temporal_evidence"]["zero_duration_voice_segment_count"] == 1
for row in rows
))
if __name__ == "__main__":
unittest.main()