docs: per-segment edit plan template, context-based ASR inference, remove copywriting pitfall

This commit is contained in:
2026-07-15 08:26:20 +08:00
parent e9922c28c7
commit ea9312767b
2 changed files with 160 additions and 7 deletions
+56
View File
@@ -0,0 +1,56 @@
# 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 ±510 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:3552:40 visually — a 712 second offset.
- "鸟追着打" (bird chase) had zero visual evidence in the 55:0056: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.