56 lines
3.4 KiB
Markdown
56 lines
3.4 KiB
Markdown
# Spot-Verification Workflow
|
||
|
||
When verifying ASR transcript claims against actual video visuals, use this lightweight protocol instead of full clip extraction.
|
||
|
||
## When to use
|
||
|
||
- You have a transcript with timestamps and need to confirm what's visually happening at specific moments.
|
||
- You need to upgrade/downgrade segment priority based on visual evidence.
|
||
- You want to check whether a transcript-claimed event (boss fight, chest opening, character death) actually has corresponding on-screen visuals.
|
||
|
||
## Procedure
|
||
|
||
1. **Extract frames at ASR-mentioned timestamps.** For each key transcript claim, extract a single frame:
|
||
|
||
```bash
|
||
ffmpeg -y -ss <TIMESTAMP_IN_SECONDS> -i <VIDEO_PATH> -frames:v 1 -q:v 3 /tmp/frames/frame_<MM_SS>.jpg
|
||
```
|
||
|
||
Use `-ss` before `-i` for fast keyframe seeking. This takes <1s per frame.
|
||
|
||
2. **Send frames to vision analysis with targeted questions.** For each frame, ask about the specific transcript claim:
|
||
- "The transcript says 'X' at this time. Can you see X happening?"
|
||
- "Is there a boss/enemy visible? Is combat happening?"
|
||
- "Is there a [specific item/UI] visible?"
|
||
|
||
3. **Handle timestamp discrepancies.** If the frame doesn't match the transcript claim:
|
||
- Try ±5–10 seconds around the timestamp.
|
||
- ASR timestamps can lag or lead the visual event by several seconds.
|
||
- If still no match after ±10s, the claim may be about off-screen action or voice-only commentary.
|
||
|
||
4. **Record verification results.** For each verified segment, note:
|
||
- Confirmed: visual matches transcript claim → keep or upgrade priority
|
||
- Discrepancy: visual differs from transcript (e.g., menu open instead of combat) → downgrade or reclassify
|
||
- Not found: no visual evidence for the claimed content → mark as "voice-only" or "needs Premiere manual check"
|
||
|
||
5. **Distinguish in the edit plan.** Label each segment as:
|
||
- **Visually confirmed** — frames show the claimed content
|
||
- **Transcript-grounded** — only ASR evidence; visual not yet checked
|
||
- **Needs manual check** — frames inconclusive; must be verified in Premiere
|
||
|
||
## Concrete example (Romestead session 2026-07-14)
|
||
|
||
| ASR timestamp | Transcript claim | Frame result | Verification |
|
||
|---|---|---|---|
|
||
| 49:08 | "他跟第一关的boss怎么一样" (boss comparison) | Boss "沙漠巨凤" visible with health bar, combat active | ✅ Confirmed S |
|
||
| 50:56 | "他二阶段了" (phase 2) | Boss visible, health bar nearly depleted, intense effects | ✅ Confirmed |
|
||
| 51:26 | "他打我有点疼" (hits hard) | Boss visible, player HP low (~20-30%), damage numbers | ✅ Confirmed |
|
||
| 52:28 | "打死了" (killed) | Boss still visible at 52:28; boss gone by 52:40 | ⚠️ Kill ~52:30-52:40 |
|
||
| 55:35 | "鸟追着打" (bird chasing) | Player in base/village with inventory open, no bird visible | ❌ Not confirmed |
|
||
|
||
## Key lessons
|
||
|
||
- ASR segment `start`/`end` are in **milliseconds**, not seconds. Convert before filtering.
|
||
- ASR proper nouns are phonetic hints: "沙漠巨凤" (Phoenix) was transcribed as "沙漠巨风" (Wind). Verify names against on-screen UI.
|
||
- "打死了" (killed it) at 52:28 was actually ~52:35–52:40 visually — a 7–12 second offset.
|
||
- "鸟追着打" (bird chase) had zero visual evidence in the 55:00–56:00 range — the player was in a menu. The "凤凰之翼" (Phoenix Wing) item existed in inventory, but the chase itself was voice-only commentary or happened earlier. |