Skills for Real Engineers. Straight from my .agents directory.
Multimodal Fusion for Speaker Diarization
Agent skill frombenchflow-ai/skillsbench
Combine visual features (face detection, lip movement analysis) with audio features to improve speaker diarization accuracy in video files. Use OpenCV for face detection and lip movement tracking, then fuse visual cues with audio-based speaker embeddings. Essential when processing video files with multiple visible speakers or when audio-only diarization needs visual validation.
How to install Multimodal Fusion for Speaker Diarization
npx skills add benchflow-ai/skillsbench# or add only this skill to Claude Code: copy the folder
tasks-extra/speaker-diarization-subtitles/environment/skills/multimodal-fusion/
# into
~/.claude/skills/multimodal-fusion/ (all projects)
.claude/skills/multimodal-fusion/ (one project)
tasks-extra/speaker-diarization-subtitles/environment/skills/multimodal-fusion/SKILL.md
Apache-2.0Full file1# Multimodal Fusion for Speaker Diarization23## Overview45When working with video files, you can significantly improve speaker diarization by combining audio features with visual features like face detection and lip movement analysis.67## When to Use89- Processing video files (not just audio)10- Multiple speakers visible on screen11- Need to disambiguate speakers with similar voices12- Improve accuracy by leveraging visual cues1314## Visual Feature Extraction1516### Face Detection1718```python19import cv220import numpy as np2122# Initialize face detector23face_cascade = cv2.CascadeClassifier(24 cv2.data.haarcascades + 'haarcascade_frontalface_default.xml'25)2627# Process video frames28cap = cv2.VideoCapture(video_path)29fps = cap.get(cv2.CAP_PROP_FPS)30faces_by_time = {}3132frame_count = 033frame_skip = max(1, int(fps / 2)) # Process every other frame3435while cap.isOpened():36 ret, frame = cap.read()37 if not ret:38 break3940 if frame_count % frame_skip == 0:41 timestamp = frame_count / fps42 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)43 faces = face_cascade.detectMultiScale(gray, 1.1, 4)44 faces_by_time[timestamp] = len(faces)4546 frame_count += 14748cap.release()49```5051### Lip Movement Detection5253```python54lip_movement_by_time = {}55prev_mouth_roi = None5657while cap.isOpened():58 ret, frame = cap.read()59 if not ret:60 break6162 if frame_count % frame_skip == 0:63 timestamp = frame_count / fps64…
Excerpt shown under the repository's Apache-2.0 license.
More skills in skillsbench
Similar skill repositories
An agentic skills framework & software development methodology that works.
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
Public repository for Agent Skills
Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Production-grade engineering skills for AI coding agents.
