agentsclimarketplace

Overcast voiceprint

Skill kdr/overcast/skills/overcast-voiceprint

Voice lineup — enroll a reference speaker into a local voice-print index, then rank WHERE that speaker talks inside a clip and WHICH recordings contain them, reading the anchored 0–100 rank score and its margin, and corroborating before naming anyone.From its SKILL.md

Install
npx -y skills add kdr/overcast --skill overcast-voiceprint

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.6 KB, 859 tokens by cl100k_base, as published. Nobody here has run it

overcast-voiceprint

Use this skill to answer "is this the same speaker, and where do they talk?" with the local voice-print DB (pyannote/wespeaker speaker embeddings — no media leaves the case, ungated windowed default). It verifies a VOICE, not a phrase. Use the broad overcast skill and overcast/reference/verbs.md for exact flags.

Prerequisites

overcast doctor --json                 # confirm uv + visual-db (pyannote) are ready
scripts/visual-db-uv.sh --voice        # install pyannote.audio (once per machine)
overcast case init --json
overcast index create voices --type voice-print --local --json

Workflow

  1. Enroll the reference speaker (and any known recordings). voice add embeds the clip's voiced windows into the index:
overcast voice add ./known-speaker.wav --index voices --json     # the reference person
overcast voice add ./interview.m4a --index voices --json          # other recordings to search
  1. Rank WHERE the reference speaker talks inside a clip (pairwise, windowed scan). voice match <clip> <sample> scans <clip> for the <sample> speaker; --diarize upgrades to overlap-aware diarize-then-match (HF_TOKEN + accepted pyannote license, windowed fallback if ungated):
overcast voice match ./call.wav ./known-speaker.wav --json                 # where in call.wav does the sample speaker talk?
overcast voice match ./call.wav ./known-speaker.wav --diarize --min-margin 10 --json  # overlap-aware; gate on margin
  1. Rank WHICH enrolled recordings contain the reference speaker (index search):
overcast voice match ./known-speaker.wav --index voices --json   # members ranked by the speaker's presence
  1. Read the score honestly and corroborate before concluding. similarity is an anchored-cosine 0–100 RANK score (never 0–1) plus a raw cosine; --min-margin gates best-vs-runner-up. Corroborate with content (a listen transcript) before naming anyone, then promote through triage:
overcast listen ./call.wav --json                                # what was said, to corroborate WHO
overcast finding list --state triage --json                      # a >=80 voice match auto-suggests a lead
overcast finding accept <id> --target <target-id> --json
overcast note "call.wav 00:38-01:12 ranks 87/100 for the known speaker (margin 22); transcript corroborates" --ref <voice-match-record-id> --at 38-72 --confidence medium --json
overcast brief --export ./voiceprint.html --json

Output

For each match: the reference sample, WHERE (time windows) or WHICH (member recordings) the speaker appears, the 0–100 rank score + raw cosine + margin, and the corroborating transcript content — every claim cited to a record.id + media.at. Report a time WINDOW, not a single frame.

Caveats

Not liveness. A cloned / TTS / impersonated voice can score high, so a voice match is a lead to corroborate, never an identification — every record carries payload.caveat; surface it verbatim. The same speaker scores LOWER across languages, heavy compression, or noise, so a miss isn't proof of a different person. --diarize LABELS overlapping speakers, it does not name them. Scores are 0–100 (percent), not 0–1 — set --min-similarity/--min-margin on that scale. Leads flow through finding triage; they stay out of ask/brief until accepted.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.