基于用户注册信息的关键词检测挑战赛「Datawhale AI 夏令营」 一、赛事背景在智能科技日新月异的当下语音关键词检测功能已深度融入大众生活。无论是清晨唤醒智能音箱播放新闻还是驾车途中唤醒车载语音助手导航语音关键词检测技术为人们带来极大便利。但现有技术以已知关键词的定制系统为主如果使用户能够定义自己的关键词提供更大程度的灵活性和更好的用户体验个性化成为更具挑战的目标。考虑到用户定义的关键字短语可能与训练数据的分布不一致导致检测性能的下滑使用示例查询Query-by-example技术成为用户自定义关键词检测功能的热门选择。二、赛事任务基于语音注册的关键词检测任务需要根据注册语音作为先验自适应的识别测试音频中同文本的关键词。本次大赛提供了多人文本-语音配对的关键词作为训练样本参赛选手需基于提供的样本构建模型并使用测试集的关键词注册语音预测关键词测试语音是否与注册语音文本相同。训练数据任何开源训练集含噪声集均可使用但须注明来源。外部模型允许使用开源模型权重进行特征提取如 whisper 等 严格禁止使用任何开源模型权重或 API 直接参与关键词检测判决开源模型的输出必须服务于训练选手自己的模型测试测试集声学场景大致涵盖 -10 ~ 5 dB将加入部分发音相似词如 hi – haier以模拟设备误唤醒痛点。三、评审规则数据说明本次比赛为参赛选手提供了以下数据【训练音频训练文本】信息二者相匹配以及【噪声音频】。参赛选手可以自行配对生成训练样本对相同关键词的唤醒标签为 1不同为 0并选择对音频进行加噪。每条标准训练样本可参考【①注册音频②注册文本③测试音频④唤醒标签】。在推理时需要判断【③测试音频】和注册信息包含①注册音频和②注册文本选手可自行决定使用哪些信息是否匹配来决定是否唤醒给出唤醒标签0 代表不唤醒1 代表唤醒然后与④唤醒标签进行比较计算指标。出于数据安全保证的考虑所有数据均为脱敏处理后的数据。数据集提供训练集的全部数据以及测试集的【注册文本注册音频测试音频】信息测试集不提供标签信息和测试音频对应的文本信息。数据字段说明数据集划分注对于训练集中的样本对选手可以基于标签自行配对更多样本此外开源数据和开源噪声也被允许使用但需要在最终结果中提交使用的数据集详情。评估指标本模型依据提交的结果文件采用 AUCmacro-average 进行评价比赛文件夹中提供了指标计算代码示例选手应提交每条测试样本的唤醒后验概率用于 AUC 计算。计算步骤1统计 TP正确唤醒数FP错将其他词预测为唤醒词FN漏唤醒数2通过第一步的统计值计算模型的召回率 TPR 和误警率 FPR计算公式如下3通过第二步计算结果计算离散 AUC得到最后评测结果计算方式如下根据 AUC 得分决定最后的模型得分score AUC训练结果rootdsw-2040063-54c995dd6-jn7d5:/mnt/workspace/keyword_detect/baseline# python train.py # 训练模型train:50000/50000pairs model params:22,978(0.02M)ep1100/390loss3.2576ep1200/390loss2.8155ep1300/390loss2.5900[epoch1]seen0.5760unseen0.5045mean0.5403(25s)saved -/mnt/workspace/keyword_detect/baseline/checkpoints/best.pt ep2100/390loss1.7608ep2200/390loss1.7095ep2300/390loss1.6690[epoch2]seen0.5865unseen0.5044mean0.5455(23s)saved -/mnt/workspace/keyword_detect/baseline/checkpoints/best.pt ep3100/390loss1.4723ep3200/390loss1.4363ep3300/390loss1.4289[epoch3]seen0.5848unseen0.5023mean0.5435(23s)ep4100/390loss1.2969ep4200/390loss1.3003ep4300/390loss1.2816[epoch4]seen0.5869unseen0.5024mean0.5446(22s)ep5100/390loss1.2193ep5200/390loss1.2098ep5300/390loss1.1897[epoch5]seen0.5847unseen0.4992mean0.5420(22s)ep6100/390loss1.1135ep6200/390loss1.1169ep6300/390loss1.1147[epoch6]seen0.5792unseen0.5091mean0.5442(23s)ep7100/390loss1.0586ep7200/390loss1.0718ep7300/390loss1.0582[epoch7]seen0.5833unseen0.5045mean0.5439(23s)ep8100/390loss1.0114ep8200/390loss1.0094ep8300/390loss1.0087[epoch8]seen0.5859unseen0.5009mean0.5434(23s)ep9100/390loss0.9752ep9200/390loss0.9809ep9300/390loss0.9672[epoch9]seen0.5868unseen0.4985mean0.5426(22s)ep10100/390loss0.9521ep10200/390loss0.9413ep10300/390loss0.9366[epoch10]seen0.5880unseen0.4982mean0.5431(23s)done. best dev mean AUC0.5455rootdsw-2040063-54c995dd6-jn7d5:/mnt/workspace/keyword_detect/baseline#推理结果rootdsw-2040063-54c995dd6-jn7d5:/mnt/workspace/keyword_detect/baseline# python infer.py # 推理loaded /mnt/workspace/keyword_detect/baseline/checkpoints/best.pt(dev meanAUC0.5454807083333333)total:100000rows wrote /mnt/workspace/keyword_detect/baseline/submission.csv提交文件赛题使用 AUC 作为评价指标AUC越高代表模型二分类判别能力越强排名越靠前 。提交记录