用途:将 EdgeSpeak 已分离说话人的转写 JSON 中的匿名标签(如 speaker_0)替换为有证据支持的真实姓名,生成可追溯的命名副本。它不负责说话人分离,也不做声学身份识别;来源标题或参与者名单只提供候选,不能证明某个匿名声音对应谁。
主要能力:校验主转写是否含 segments 与 speaker 字段;用名单 JSON(name 必填,role、affiliation、kind、aliases 可选)生成紧凑证据视图,包含各标签发言统计、开场对话、自我介绍与称呼候选、名单姓名/别名全文出现位置、前后相邻不同说话人片段、强/中/弱匹配计数、同角色歧义风险、保守的 speaker_lead 候选分数、未归属计数等。
使用方式:先确认输入转写、参与者元数据与新输出路径(通常 <stem>.named.json,不覆盖匿名主稿)。生成证据:python3 <skill-dir>/scripts/speaker_names.py inspect /path/to/transcript.json --roster /path/to/participants.json > /path/to/transcript.speaker-evidence.json。应用映射:python3 <skill-dir>/scripts/speaker_names.py apply /path/to/transcript.json -o /path/to/transcript.named.json --map 'speaker_0=Joon Sung Park' --map 'speaker_1=Sonya Huang'。测试:python3 -m unittest discover -s <skill-dir>/scripts -p 'test_*.py'。
适用场景:播客、访谈、会议等已有分离转写、需要把匿名标签对应到真实参与者的场合。
限制:证据分级为已确认、强、未解决;同角色多候选时须严格歧义门控,不得仅凭话题熟悉度、发言占比、风格或顺序区分。ASR 拼写只作搜索别名,输出用权威拼写。speaker_0 仅限单个媒体文件,不得跨集复用。不做生物识别。来源 URL、标题、公开名单属元数据;Cookie、私密会议链接、令牌与私密参与者信息不得打印、持久化或提交。若一个标签含两人或一人被拆成多标签,应报告聚类问题并重跑分离。