speaker-recognizer

Solid

Self-enroll a voice for speaker recognition. Activate ONLY when (a) a mic `Unknown Speaker:` turn carries a clear self-introduction ("I'm X", "my name is X", "tôi là X"...), (b) prior same-tag `[voice:voice_N]` turns can be combined with a now-named turn, (c) a Telegram voice-note carries an intro, OR (d) the user asks to list / forget / identify voices. Do NOT activate on bare `Unknown Speaker:` turns with no name and no prior same-tag history — those need only a short ack. Self-enrollment only.

AI & Automation 147 stars 18 forks Updated today Apache-2.0

Install

View on GitHub

Quality Score: 83/100

Stars 20%
72
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Speaker Recognizer Each mic transcript is prefixed `Speaker - Name:` when recognized, or `Unknown Speaker: [voice:voice_N] ... (audio save[d] at <path>...)` otherwise. The audio path is the WAV of whoever spoke this turn — use it (with paths from prior same-tag turns when needed) to enroll on `POST /speaker/enroll`. **Self-enrollment only** — never enroll one person's voice under another person's name. ## Decision matrix — pick ONE action per turn | Signals in current turn | Prior same-tag turns? | Action | |---|---|---| | `Unknown Speaker:` + path + name + ≥25 words | — | **Enroll now** with current path only. | | `Unknown Speaker:` + path + name + <25 words | ≥1 prior path same `[voice:N]` | **Enroll now** with all same-tag paths (oldest→newest). | | `Unknown Speaker:` + path + name + <25 words | none | Ask one follow-up: "say your name + ~25–30 words". | | `Unknown Speaker:` + path + NO name + <25 words | none | Ask one follow-up. | | `Unknown Speaker:` + path + NO name | ≥1 prior path same `[voice:N]` (still no name) | Reply with a SHORT ack ("Mm, nghe rồi" / "Got it"). NEVER NO_REPLY. Don't re-ask. | | `Speaker - <Name>:` | — | Already identified — skill not needed. | | "who do you know?" / "list voices" | — | `GET /speaker/list`. | | "forget my voice" / "remove Alex" | — | `POST /speaker/remove`. | | Telegram voice note + intro | — | Convert to WAV + enroll with Telegram fields. | | Telegram voice note + "who is this?" | — | `POST /speaker/recognize`. | When in d...

Details

Author
autonomous-ai
Repository
autonomous-ai/autonomous-os
Created
2 months ago
Last Updated
today
Language
Python
License
Apache-2.0

Similar Skills

Semantically similar based on skill content — not just same category