尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

WeKws 进阶实战:多唤醒词与个性化唤醒(唤醒词+声纹)场景应用

WeKws 进阶实战:多唤醒词与个性化唤醒(唤醒词+声纹)场景应用 WeKws 进阶实战多唤醒词与个性化唤醒唤醒词声纹场景应用【免费下载链接】wekwsProduction First and Production Ready End-to-End Keyword Spotting Toolkit项目地址: https://gitcode.com/gh_mirrors/we/wekwsWeKws 是一款「Production First and Production Ready」的端到端关键词唤醒KWS工具包由 WeNet 社区开源维护官方定位就是面向生产环境的唤醒词识别工具箱。相比市面上大多数只能识别单一唤醒词的方案WeKws 从一开始就规划了四类典型场景单唤醒词、多唤醒词、可定制唤醒词、个性化唤醒唤醒词检测 声纹验证。本文带你从零上手重点讲透多唤醒词与个性化唤醒这两大进阶场景的落地思路、训练配置与部署路径。一、为什么你需要「多唤醒词」和「个性化唤醒」智能家居、车机、儿童手表等 IoT 设备上唤醒词系统常年在本地运行用户诉求早已不只是「喊一声就响应」多唤醒词一台设备要同时响应多个指令比如智能音箱同时支持「你好小问」「你好文文」两个唤醒词或「小爱同学」「天猫精灵」这类品牌词 通用词并存。可定制唤醒词企业客户想换成自己的品牌词模型需要支持低成本定制。个性化唤醒唤醒词声纹只允许特定家庭成员唤醒设备避免陌生人喊「小爱同学」也能解锁这是智能家居安全、隐私场景的刚需。WeKws 的模型输出层天然支持多类别配合声纹说话人验证模块就能把「认词」升级为「认词又认人」。二、多唤醒词实现原理一行 dict 决定唤醒词数量WeKws 的多唤醒词能力核心是输出维度 关键词数量 1FILLER 非关键词这个配置从一行词典文件开始。以 examples/hi_xiaowen/s0/run.sh 为例脚本开头就定义了num_keywords2训练前生成词典FILLER -1 HI_XIAOWEN 0 NIHAO_WENWEN 1每个唤醒词对应一个独立的输出节点模型对每帧音频输出每个词的置信度。在 wekws/model/loss.py 中的max_pooling_loss里正样本目标词取帧级最大后验负样本其他词/填充取帧级最小后验这样只要任意一帧命中关键词即可触发同时抑制误唤醒。而 wekws/model/kws_model.py 中的init_model则负责把 CMVN 归一化、特征预处理、主干网络、分类器组装成完整模型output_dim就是按num_keywords 1计算的。三、多唤醒词训练实战两条最快上手路径WeKws 官方提供了三套可直接跑通的数据集示例多唤醒词场景首推「你好小问Hi Xiaowen」下载数据并准备运行local/mobvoi_data_download.sh下载 Mobvoi 热词数据集再通过local/prepare_data.py生成 wav.scp / text 标注。提取特征tools/compute_cmvn_stats.py计算全局 CMVNtools/make_list.py打包训练清单。开始训练torchrun拉起多卡训练--num_keywords 2指定双唤醒词配置文件见 conf/ds_tcn.yaml。评测导出average_model.py做模型平均score.pycompute_det.py计算 FRR/FAR 并绘制 DET 曲线最后用export_jit.py/export_onnx.py导出部署模型。如果想体验「一次训练识别 10 个指令词」的多分类效果可以跑 examples/speechcommand_v1/s0/run.shnum_keywords11对应 yes/no/up/down 等 11 类指令模型使用 conf/mdtc.yaml 中的 MDTC 主干。模型选型建议小内存设备选 DS-TCN深度可分离卷积 时序卷积追求更高精度可选 MDTC 或 FSMN常规唤醒用 Sigmoid max_pooling 损失指令分类用 Softmax 交叉熵连续多词识别可切到 CTC 损失参考 conf/ds_tcn_ctc.yaml。四、个性化唤醒唤醒词声纹场景怎么落地个性化唤醒的典型架构是两阶段串联第一阶段WeKws 唤醒词模型做低功耗、常开的「守门员」检测到目标唤醒词后唤醒系统第二阶段声纹Speaker Verification模块对唤醒段做说话人确认比对用户注册的声纹特征通过后才真正放行。这样做的好处是声纹模型不需要常驻运行只在唤醒触发瞬间被调用功耗和延迟都可控符合 IoT 设备的资源约束。WeKws 的流式推理设计帧级缓存 增量输出见 runtime/core/kws/keyword_spotting.cc天然支持唤醒段边检测边采集为后续声纹比对留出完整的音频片段。落地时可以分两个模型独立训练唤醒模型用 WeKws 训练声纹模型可选用任意开源的说话人识别方案两者通过下游业务逻辑串联。五、端侧部署从 ONNX 到 Android 一条龙训练完成后导出 ONNX 模型即可对接 WeKws 的轻量运行时x86 / Linux参考 runtime/onnxruntime 目录mkdir build cd build cmake .. cmake --build .即可编译出kws_main可执行文件AndroidAndroid 工程位于 runtime/android内置了前端特征提取fbank、流式推理与缓存管理模型文件放在 assets 目录即可打包树莓派runtime/raspberrypi 提供交叉编译工具链与 CMake 配置。运行时通过读取 ONNX 模型的cache_dim、cache_len元数据自动适配不同模型的流式缓存大小换模型零改动。六、总结给进阶开发者的一句话WeKws 的进阶路径非常清晰改词典 → 调 num_keywords → 选主干和损失 → 训练评测 → 导出部署。多唤醒词只需在词典里加一行个性化唤醒则建议「唤醒词 声纹」两阶段串联既保住低功耗常开监听又拿到「认词认人」的安全体验。上手就从examples目录里的三个示例开始先把跑通一条链路再逐步替换成你自己的数据和唤醒词。【免费下载链接】wekwsProduction First and Production Ready End-to-End Keyword Spotting Toolkit项目地址: https://gitcode.com/gh_mirrors/we/wekws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表