HyperFrames Media Use
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
Name anonymous diarized SRT speakers from a persistent local voiceprint library and repair speaker drift; local, CPU-only, no API key.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard speaker-id --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/video-transcription/.pi/skills/speaker-id .claude/skills/speaker-id && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "speaker-id" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/packages/video-transcription/.pi/skills/speaker-id into .claude/skills/speaker-id/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "speaker-id", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/packages/video-transcription/.pi/skills/speaker-idType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard speaker-id --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/video-transcription/.pi/skills/speaker-id .agents/skills/speaker-id && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "speaker-id" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/packages/video-transcription/.pi/skills/speaker-id into .agents/skills/speaker-id/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "speaker-id", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard speaker-id --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/video-transcription/.pi/skills/speaker-id .cursor/skills/speaker-id && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "speaker-id" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/packages/video-transcription/.pi/skills/speaker-id into .cursor/skills/speaker-id/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "speaker-id", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/BlackBeltTechnology/pi-agent-dashboard.git --path packages/video-transcription/.pi/skills/speaker-id--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard speaker-id --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/video-transcription/.pi/skills/speaker-id .gemini/skills/speaker-id && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "speaker-id" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/packages/video-transcription/.pi/skills/speaker-id into .gemini/skills/speaker-id/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "speaker-id", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard speaker-idInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/video-transcription/.pi/skills/speaker-id .github/skills/speaker-id && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "speaker-id" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/packages/video-transcription/.pi/skills/speaker-id into .github/skills/speaker-id/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "speaker-id", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard speaker-id --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/video-transcription/.pi/skills/speaker-id .opencode/skills/speaker-id && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "speaker-id" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/packages/video-transcription/.pi/skills/speaker-id into .opencode/skills/speaker-id/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "speaker-id", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
speaker-idName anonymous diarized SRT speakers from a persistent local voiceprint library and repair speaker drift; local, CPU-only, no API key.
Speaker Id is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Name anonymous diarized SRT speakers from a persistent local voiceprint library and repair speaker drift; local, CPU-only, no API key. Triggers "who is speaker 2", "put names on the transcript", "label the meeting SRT", "the diarization split one person into three", "enroll my voice". Backed by the pi-voiceid CLI.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `AGENTS.md` and `BENCHMARK.md`).
It sits in Media & Creative, covering Transcription. The repository describes itself as: Real-time web dashboard for pi coding-agent sessions. Multi-session view, live chat mirroring, integrated terminal, diff viewer, pi-flows execution, and mobile-first remote… The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7a2d171. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Speaker Id loads about 1.8k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 819 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from BlackBeltTechnology/pi-agent-dashboard at commit 7a2d171, republished under its MIT licence (© BlackBeltTechnology). 819 words, ~1,808 tokens.
.claude/skills/speaker-id/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Give diarized transcripts real names, and repair the drift that clustering diarizers produce on long recordings. Post-hoc relabeling — it does not create diarization, it relabels an existing one.
pi-voiceid analyze --srt talk.srt # drift report, no enrollment needed
pi-voiceid enroll --name "Alice" --srt talk.srt --label "Speaker 1"
pi-voiceid label --srt talk.srt --dry-run # always dry-run first
pi-voiceid label --srt talk.srt # writes talk.named.srtThe source SRT is never overwritten. Everything runs locally on CPU via
sherpa-onnx; no audio or embedding leaves the machine.
The embedding model is not vendored. On first enroll/label it is fetched
into ~/.pi/models/speaker/ (28 MB). Model choice is the single biggest
accuracy factor — see BENCHMARK.md. Do not "upgrade" to a
bigger model without re-running the benchmark: the 114 MB VoxCeleb leader
scored worse than the 28 MB default on real meeting audio.
The native binding sherpa-onnx-node is an optional dependency. When it is
absent, transcription still works and pi-voiceid fails with an actionable
message naming the dependency and the install command.
Default store: ~/.pi/voiceprints/voiceprints.json. Override with --store or
the PI_VOICEPRINT_STORE env var. This is biometric-derived data about
identifiable people: it lives outside the repo by default, it is overridable,
and it must never be committed. If you point --store inside a repository, add
it to that repo's .gitignore.
enroll also embeds the source recording's other speakers, so the centering
mean stays multi-speaker (centering one speaker by their own mean cancels the
signal). Those third parties therefore end up in the store as unnamed
contributions. Erase with forget:
pi-voiceid forget --name "Alice" # drops Alice's voiceprint + her contributions
pi-voiceid forget --recording <id> # drops a whole recording's contributions
pi-voiceid list # shows the cohort and which clusters are unnamedA never-enrolled speaker swept into the pool has no name, so only
forget --recording <id> reaches them. list makes that visible.
pi-voiceid analyze --srt talk.srtPrints per-cluster coherence and a channel-centered cluster-to-cluster cosine
matrix. Pairs at or above --drift-threshold (default 0.55) are flagged as
likely the same person split in two. analyze needs no library. The 0.55
default is weakly calibrated (n = 2) — treat it as a starting point.
Best: from a cluster you have already identified in an SRT (plenty of audio).
pi-voiceid enroll --name "Csákány Róbert" --srt talk.srt --label "Speaker 1"From a standalone clip:
pi-voiceid enroll --name "Kovács Dániel" --audio sample.m4a --start 12 --end 75Re-running the same name merges into the existing voiceprint (segment-count
weighted); --replace resets it instead. Enroll the same person from several
recordings — the cheapest accuracy win.
pi-voiceid label --srt talk.srt --dry-run
pi-voiceid label --srt talk.srtAlways read the dry-run decision table. --output overrides the sibling
*.named.srt (and is required for the same-file refusal to be reachable).
--relabel allows an already-named transcript and leaves clusters whose name is
already in the library untouched, so the iterative workflow (label, enroll one
more person, label again) is safe.
| Column | Meaning |
|---|---|
cos | centered cosine of the cluster centroid to the best voiceprint |
2nd / margin | runner-up and the gap — a small gap means "could be either" |
vote | share of individual segments agreeing with the centroid's pick |
space | whether the cohort mean or the recording fallback produced the score |
Healthy cross-recording match: cos 0.6–0.9, margin > 0.5, vote > 80 %.
Correct rejection of an un-enrolled person looks like cos ≈ 0.0–0.25.
--min-seg defaults to 1.2 s; do not lower it).pi-voiceid needs the source media beside the SRT (or --audio). Media
shorter than the last cue is refused — never embed ranges that do not exist.This is approach (A): post-hoc cluster relabeling. It cannot:
analyze coherence —
below ~0.55 the cluster itself is impure);Those need approach (B), true TS-VAD / personal VAD, where the enrollment embedding feeds a frame-level model. Requires training; out of scope.
Accuracy on real audio is a lower bound: it was measured against another diarizer's labels, not human annotation. Do not quote the segment-level figure as the product's accuracy.
pi-voiceid label --srt "<enrollment source>.srt" --dry-run # expect a 1:1 map, high cos
pi-voiceid label --srt "<unrelated recording>.srt" --dry-run # expect mostly UNKNOWN
pi-voiceid list # enrolled voices must not resemble each otherMeasured on the reference archive: self-consistency 3/3 at cos 0.89–0.99 with a 4th un-enrolled cluster rejected at 0.252; cross-recording matches at cos 0.72–0.89. Full numbers and the six-model comparison are in BENCHMARK.md.
© BlackBeltTechnology, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in packages/video-transcription/.pi/skills/speaker-id of BlackBeltTechnology/pi-agent-dashboard.
Open the folder on GitHubat commit 7a2d171
Speaker Id next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Speaker Id this skillBlackBeltTechnology/pi-agent-dashboard | 315 | — | ~1.8k | Automated safety check: Pass | MIT | |
| HyperFrames Media Useheygen-com/hyperframes | 60k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Native Subtitle Quote Imagechengyi-ai/native-subtitle-quote-image | 2.6k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Edu Chem Videowy51ai/edulab | 1.4k | — | ~2.1k | Automated safety check: Notes | Apache-2.0 | |
| Transcription Memory ReconstructionNxcoreAI/EverRoom | 3k | — | ~714 | Automated safety check: Pass | Custom licence | |
| Edu Math Videowy51ai/edulab | 1.4k | — | ~2.5k | Automated safety check: Notes | Apache-2.0 |
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
chengyi-ai/native-subtitle-quote-image
将本地视频或用户有权处理的在线视频,经过来源获取、文字稿定位、选题选句、精确取帧、紧凑裁切、拼图和逐张质检,制作成 3:4 或保留画面原比例的视频字幕长图。支持两种明确分开的输出:保留画面内已烧录字幕的原生字幕模式,以及把已审核的时间点与台词绘制到真实视频帧上的脚本字幕模式。用户要求原生字幕截图、字幕帧拼图、YouTube…
wy51ai/edulab
A skill your agent uses when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a chemistry problem (化学题: 氧化还原配平 双线桥 电子守恒, 物质的量计算, 化学平衡 三段式 平衡常数 转化率 反应速率, 离子反应, 电化学, 溶液 滴定…
NxcoreAI/EverRoom
Reconstruct a complete, searchable memory from an untrusted meeting or conversation transcript.
wy51ai/edulab
A skill your agent uses when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a math problem (数学题, geometry, algebra, functions, motion/行程 problems), from a problem screenshot…
JetBrains/skills
Transcribe audio files to text with optional diarization and known-speaker hints.
BlackBeltTechnology/pi-agent-dashboard
Browser automation via the agent-browser CLI. An agent skill from BlackBeltTechnology/pi-agent-dashboard.
BlackBeltTechnology/pi-agent-dashboard
Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…
BlackBeltTechnology/pi-agent-dashboard
Diagnose problems in the running pi-agent-dashboard system: server.log, /api/health, bridge WebSocket connectivity, vitest triage, known-issue FAQ entries.
BlackBeltTechnology/pi-agent-dashboard
Disciplined implementation in pi-agent-dashboard: the rebuild matrix (extension→reload, server→restart, client→build+restart, openspec-apply→full rebuild) plus the project's code discipline rules.
BlackBeltTechnology/pi-agent-dashboard
Monitor and control the pi-dashboard server. An agent skill from BlackBeltTechnology/pi-agent-dashboard.
BlackBeltTechnology/pi-agent-dashboard
Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…
Categories
Name anonymous diarized SRT speakers from a persistent local voiceprint library and repair speaker drift; local, CPU-only, no API key. Speaker Id is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Name anonymous diarized SRT speakers from a persistent local voiceprint library and repair speaker drift; local, CPU-only, no API key.
Speaker Id fits situations like: who is speaker 2; put names on the transcript; label the meeting SRT; the diarization split one person into three.
Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a claude-code`. Or copy the skill folder (packages/video-transcription/.pi/skills/speaker-id in BlackBeltTechnology/pi-agent-dashboard) into .claude/skills/speaker-id in your project. Claude Code loads it when a task matches its description.
Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a codex`. Or copy the skill folder (packages/video-transcription/.pi/skills/speaker-id in BlackBeltTechnology/pi-agent-dashboard) into .agents/skills/speaker-id in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill speaker-id -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/speaker-id, .gemini/skills/speaker-id, .github/skills/speaker-id and .opencode/skills/speaker-id in your project.
SKILL.md names no scripts, command-line tools or credentials: Speaker Id is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Speaker Id is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Speaker Id: HyperFrames Media Use (heygen-com/hyperframes, 60k stars), Native Subtitle Quote Image (chengyi-ai/native-subtitle-quote-image, 2.6k stars), Edu Chem Video (wy51ai/edulab, 1.4k stars) and Transcription Memory Reconstruction (NxcoreAI/EverRoom, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
BlackBeltTechnology (a GitHub organization) maintains it in BlackBeltTechnology/pi-agent-dashboard, which has 315 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 10, 2026.
Source: BlackBeltTechnology/pi-agent-dashboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.