label_speakers
Assign verified human-readable names to anonymous speaker labels on a diarized job, with optional evidence to document why each mapping is trusted.
Instructions
Persist VERIFIED human-readable names for anonymous S1/S2/… labels on one diarized job. labels is a patch: a 1-100 character name saves it; null or blank removes it. Optional evidence (max 500 characters per label) records why the mapping is trusted. Raw labels remain canonical in JSON; names appear separately and in text/SRT display. The write is atomic, locked, local, and idempotent. OCR name_candidates are raw hints only and are never saved automatically. A relabelled job can carry pending-review names with source-roster anchors. For a label still in the roster, an explicit patch confirms, replaces, or removes only that entry. For a stale pending label, only an explicit null removes its name, evidence, and context.
When NOT to use: before diarization, or when a name is only a guess without human/screen evidence.
Examples:
label_speakers(job_id="...", labels={"S1":"Vera"}) — save one verified mapping
label_speakers(job_id="...", labels={"S1":"Vera","S2":"Tom"}) — patch several labels
save evidence: label_speakers(job_id="...", labels={"S1":"Vera"}, evidence={"S1":"intro at 1200ms"})
screen name plate confirms S2 → save the name and cite its frame timestamp in evidence
label_speakers(job_id="...", labels={"S2":null}) — remove S2's name and evidence together
label_speakers(job_id="...", labels={"S2":" "}) — blank also removes the mapping
named S1, new proof → label_speakers(job_id="...", labels={}, evidence={"S1":"title card at 0ms"})
two Alexanders may map to S2 and S5 — duplicate names are allowed and search covers both
response roster carries speaker_name beside label; raw S labels are never replaced
name_candidates may be UI text or another person's name → inspect frames before deciding
unknown label or a name over 100 characters → error lists the valid roster labels
fresh session: get_transcript returns saved names; do not infer the mapping again
stale pending S3 → labels={"S3":null}; never assign a name while S3 is outside the roster
anti-example: uncertain identity → keep S anonymous until evidence verifies the name
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| labels | Yes | ||
| evidence | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||