video-accessibility/backend/app/tasks
michael 3588d3fa14 refactor: rewrite pause point refinement algorithm with ordered logic
Completely rewrites the Whisper-based pause point refinement to use
a two-phase approach with explicit ordering:

Phase 1 - Individual refinement:
1. Check if pause point is "during speaking" (words within ±2s)
   - If NOT during speaking → use Gemini's exact point, no overlap
2. If during speaking, find nearest sentence boundary
3. Apply appropriate buffering based on context:
   - Case A: First sentence → pause 500ms before sentence starts
   - Case B: Last sentence → pause 500ms after sentence ends
   - Case C: Between sentences → full double buffer (overlap)

Phase 2 - Consolidation (after all refinements):
- Consolidate cues within 5s of each other to play back-to-back

Key changes:
- Add SentenceBoundary dataclass for tracking boundaries with context
- Add _is_during_speaking() helper to detect speech proximity
- Add _find_sentence_boundaries() with longest-gap fallback
- Rewrite snap_pause_point() with new ordered algorithm
- Update refine_all_pause_points() to pass words and use two phases

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 08:19:03 -06:00
..
__pycache__ removed mongodb change stream monitoring, added global websockets monitoring for notifications, broke symmetry between toasts and persistent notifications (and refined which notifications get sent and how) 2025-08-25 15:48:18 -05:00
__init__.py feat: add Whisper-based pause point refinement for audio descriptions 2025-12-27 08:27:48 -06:00
ffmpeg_operations.py feat: add dedicated ffmpeg queue to prevent server overload 2025-12-26 17:56:23 -06:00
ingest_and_ai.py fix: broadcast WebSocket updates for ingesting and ai_processing status 2025-12-27 07:38:25 -06:00
notify.py added websockets for live job status updates with toast notifications on job list page 2025-08-24 19:41:23 -05:00
render_accessible_video.py refactor: rewrite pause point refinement algorithm with ordered logic 2025-12-29 08:19:03 -06:00
translate_and_synthesize.py feat: add accessible video (MP4 with embedded audio descriptions) 2025-12-26 11:06:41 -06:00
whisper_transcribe.py fix: use dedicated whisper worker with FFmpeg dispatch pattern 2025-12-27 08:53:53 -06:00