{
  "schemaVersion": "1.0",
  "item": {
    "slug": "percept-speaker-id",
    "name": "Percept Speaker ID",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/jarvis563/percept-speaker-id",
    "canonicalUrl": "https://clawhub.ai/jarvis563/percept-speaker-id",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/percept-speaker-id",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=percept-speaker-id",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/percept-speaker-id"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/percept-speaker-id",
    "agentPageUrl": "https://openagent3.xyz/skills/percept-speaker-id/agent",
    "manifestUrl": "https://openagent3.xyz/skills/percept-speaker-id/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/percept-speaker-id/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "percept-speaker-id",
        "body": "Speaker identification and management for multi-person conversations."
      },
      {
        "title": "What it does",
        "body": "Tracks who said what in conversations. Maps anonymous speaker labels (SPEAKER_0, SPEAKER_1) to real names, maintains speaker profiles, and gates voice command authorization."
      },
      {
        "title": "When to use",
        "body": "User asks \"who said that?\" or wants speaker-attributed transcripts\nUser wants to configure which people can trigger voice commands\nAgent needs to know who is speaking in a multi-person conversation"
      },
      {
        "title": "Requirements",
        "body": "percept-listen skill installed and running\nOmi pendant (provides is_user flag for primary speaker)"
      },
      {
        "title": "How it works",
        "body": "Omi sends transcript segments with speaker labels (SPEAKER_0, SPEAKER_1, etc.)\nPercept resolves labels to names using the speakers registry\nis_user flag from Omi identifies the pendant wearer as the primary speaker\nSpeaker profiles track first/last seen timestamps and authorization status"
      },
      {
        "title": "Speaker registry",
        "body": "Located at percept/data/speakers.json:\n\n{\n  \"SPEAKER_00\": {\n    \"name\": \"David\",\n    \"is_owner\": true,\n    \"approved\": true\n  },\n  \"SPEAKER_01\": {\n    \"name\": \"Rob\",\n    \"is_owner\": false,\n    \"approved\": true\n  }\n}\n\nManage via Percept dashboard (port 8960) → Settings → Speakers."
      },
      {
        "title": "Authorization levels",
        "body": "Owner (is_owner: true): Full command access, always authorized\nApproved (approved: true): Can trigger wake word commands\nUnknown: Logged only, commands not executed"
      },
      {
        "title": "Future: Voice embeddings",
        "body": "Planned: pyannote speaker diarization with 192-dim voice embeddings for automatic speaker recognition via cosine similarity. Currently speaker mapping is manual."
      },
      {
        "title": "Links",
        "body": "GitHub: https://github.com/GetPercept/percept"
      }
    ],
    "body": "percept-speaker-id\n\nSpeaker identification and management for multi-person conversations.\n\nWhat it does\n\nTracks who said what in conversations. Maps anonymous speaker labels (SPEAKER_0, SPEAKER_1) to real names, maintains speaker profiles, and gates voice command authorization.\n\nWhen to use\nUser asks \"who said that?\" or wants speaker-attributed transcripts\nUser wants to configure which people can trigger voice commands\nAgent needs to know who is speaking in a multi-person conversation\nRequirements\npercept-listen skill installed and running\nOmi pendant (provides is_user flag for primary speaker)\nHow it works\nOmi sends transcript segments with speaker labels (SPEAKER_0, SPEAKER_1, etc.)\nPercept resolves labels to names using the speakers registry\nis_user flag from Omi identifies the pendant wearer as the primary speaker\nSpeaker profiles track first/last seen timestamps and authorization status\nSpeaker registry\n\nLocated at percept/data/speakers.json:\n\n{\n  \"SPEAKER_00\": {\n    \"name\": \"David\",\n    \"is_owner\": true,\n    \"approved\": true\n  },\n  \"SPEAKER_01\": {\n    \"name\": \"Rob\",\n    \"is_owner\": false,\n    \"approved\": true\n  }\n}\n\n\nManage via Percept dashboard (port 8960) → Settings → Speakers.\n\nAuthorization levels\nOwner (is_owner: true): Full command access, always authorized\nApproved (approved: true): Can trigger wake word commands\nUnknown: Logged only, commands not executed\nFuture: Voice embeddings\n\nPlanned: pyannote speaker diarization with 192-dim voice embeddings for automatic speaker recognition via cosine similarity. Currently speaker mapping is manual.\n\nLinks\nGitHub: https://github.com/GetPercept/percept"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jarvis563/percept-speaker-id",
    "publisherUrl": "https://clawhub.ai/jarvis563/percept-speaker-id",
    "owner": "jarvis563",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/percept-speaker-id",
    "downloadUrl": "https://openagent3.xyz/downloads/percept-speaker-id",
    "agentUrl": "https://openagent3.xyz/skills/percept-speaker-id/agent",
    "manifestUrl": "https://openagent3.xyz/skills/percept-speaker-id/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/percept-speaker-id/agent.md"
  }
}