Skip to main content
AIDiveForge AIDiveForge
🎚️

Speaker Diarization Cleanup

Voice & Audio · by AIDiveForge · Apr 20, 2026 · Advanced

Review speaker labels while preserving uncertain attribution and original timing.

Get a corrected transcript plus an explicit label-change ledger.

Free · 2 KB · SKILL.md, instructions and example files. Provide the diarized transcript and reliable identity cues or authorized reference audio.

A worked example

A small example to try before using your own data.

Input

00:00 S1: I am Alex, the host.
00:05 S2: I am Sam.
00:08 S3: Thanks for joining me today. [No audio or other cue supplied.]

Expected result

00:00 Alex: I am Alex, the host.
00:05 Sam: I am Sam.
00:08 Unknown speaker: Thanks for joining me today.
S3 remains unresolved; conversational likelihood is not identity evidence.

What to check: Map S1 and S2 using introductions; leave S3 unresolved without sufficient evidence.

Limits: This is a review workflow, not a bundled voice-identification model. Do not infer protected traits from a voice.

Worked example included. Model-specific performance and vendor compatibility have not been benchmarked.

Installation options and other formats

Install this skill

An agent skill starts with SKILL.md. The ZIP also includes its examples and any helper scripts. Drop the file into your tool of choice — or pick a different format if you use Cursor, Windsurf, Copilot, or something else.

Download SKILL.md
python3 - <<'ADF_SKILL_INSTALL'
import hashlib, io, os, stat, tempfile, urllib.request, zipfile
from pathlib import Path, PurePosixPath
folder = "speaker-diarization-cleanup"
root = Path(os.environ.get('ADF_SKILL_ROOT', str(Path.home() / '.claude' / 'skills'))).expanduser()
destination = root / folder
if destination.exists() or destination.is_symlink():
    raise SystemExit('An installation already exists. Back it up and merge the ZIP deliberately.')
root.mkdir(parents=True, exist_ok=True)
request = urllib.request.Request("https://aidiveforge.com/skill/speaker-diarization-cleanup.zip", headers={'User-Agent': 'AIDiveForge-Resource-Installer/1.0 (+https://aidiveforge.com/skills/)'})
with urllib.request.urlopen(request, timeout=30) as response:
    data = response.read(8 * 1024 * 1024 + 1)
if len(data) > 8 * 1024 * 1024 or hashlib.sha256(data).hexdigest() != "b19a8148695fd8a1e269495065a8d66e4b82ff51e49ece803434a223828ca5cb":
    raise SystemExit('The download did not match this reviewed bundle. No files were installed.')
with zipfile.ZipFile(io.BytesIO(data)) as archive, tempfile.TemporaryDirectory(prefix='.adf-skill-', dir=root) as temporary:
    members = archive.infolist()
    if len(members) > 100 or sum(m.file_size for m in members) > 16 * 1024 * 1024:
        raise SystemExit('Unexpected archive size')
    for member in members:
        name = PurePosixPath(member.filename)
        if name.is_absolute() or '..' in name.parts or not name.parts or name.parts[0] != folder or '\\' in member.filename or stat.S_ISLNK(member.external_attr >> 16):
            raise SystemExit('Unsafe archive entry; nothing was installed')
        target = Path(temporary).joinpath(*name.parts)
        if member.is_dir():
            target.mkdir(parents=True, exist_ok=True)
        else:
            target.parent.mkdir(parents=True, exist_ok=True)
            with target.open('xb') as stream:
                stream.write(archive.read(member))
    staged = Path(temporary) / folder
    if not (staged / 'SKILL.md').is_file() or destination.exists() or destination.is_symlink():
        raise SystemExit('The skill could not be installed without replacing existing data')
    os.rename(staged, destination)
print('Installed the complete skill folder:', destination)
ADF_SKILL_INSTALL

Claude Code: ~/.claude/skills/speaker-diarization-cleanup/SKILL.md. Codex: ~/.codex/skills/speaker-diarization-cleanup/SKILL.md. Keep the complete ZIP folder when helper scripts are included.

🧠 Why it works

Map S1 and S2 using introductions; leave S3 unresolved without sufficient evidence.

⚙️ How it works

  1. Keep the original transcript and timestamps intact as the reference version.
  1. Distinguish evidence-backed speaker changes from guesses based on writing style or topic.
  1. Correct a label only when a named introduction, verified reference or clear continuity supports it.
  1. Mark ambiguous overlaps and short turns for review instead of assigning a confident identity.
  1. Return the revised transcript and every label change with its supporting evidence.

Description

Get a corrected transcript plus an explicit label-change ledger.

Provide the diarized transcript and reliable identity cues or authorized reference audio.

Limits: This is a review workflow, not a bundled voice-identification model. Do not infer protected traits from a voice.

Recommended Use

Tools and workflow packs this skill pairs well with. Forge picks are auto-generated from category + capability signals; Community picks are added by people who've used the pairing.

No matches yet. Be the first to suggest a pairing, or the Forge will populate suggestions as signals align.