【语音唤醒】WEKWS:第一个小型的端到关键词发现工具包

article/2025/9/13 2:45:39

在这里插入图片描述


摘要

语音唤醒(KWS,Keyword spotting )实现了基于语音的用户交互,逐渐成为智能设备不可或缺的组成部分。最近,端到端(E2E)方法已经成为设备上KWS任务最流行的方法。然而,目前端到端加密KWS方法的研究和应用还存在一定的差距。在本文中,我们将介绍WeKws,这是一个具有生产质量、易于构建且易于应用的E2E KWS工具包。

WeKws包含了几个最先进的骨干网的实现,使其在三个公开可用的数据集上实现了极具竞争力的结果。为了使WeKws成为一个纯粹的端到端工具包,我们利用了一个细化的max-pooling loss,使模型自己学习关键字的结束位置,这大大简化了训练流程,使WeKws非常高效地应用于现实场景。

代码开源仓库:https://github.com/wenet-e2e/wekws


1、引言

关键字检测(KWS)是从连续音频流中检测预定义关键字的任务。唤醒词检测作为KWS的一项专项任务,已成为智能音箱、手机等物联网设备中典型且不可或缺的组成部分,为用户提供完全免提的语音交互用户体验。WuW(wake-up word )检测系统需要处理流音频,并在物联网设备上本地持久运行。因此,系统应具有较小的内存占用和计算成本,同时保持低延迟(实时响应)和高检测精度。

由于一些具有长期建模能力的神经网络的出现,基于端到端(E2E)的KWS方法最近因其训练/解码的简单性而受到广泛关注。KWS变成关键字/非关键字二进制分类任务。通过模型直接预测不同关键词对应的后验结果。然后,系统可以通过将后验结果与手动定义的关键字阈值进行比较,轻松检测关键字。基于端到端加密的方法比传统方法具有更好的性能。

然而,目前的端到端KWS方法仍存在缺陷。首先,为了训练模型,他们通常需要一个 force-alignment 过程来得到关键词在话语中的起止位置。其次,其中一些依赖于整个输入音频序列来进行决策,因此不适用于流任务。除了目前E2E KWS方法的上述缺点外,在small-footprint KWS领域还缺乏像Wenet这样的开源工具包来弥合研究和生产之间的差距。有几个很好的语音处理工具包,例如Kaldi, Fairseq和Honk,它们已经实现了KWS作为其功能的一部分。然而,它们要么过于复杂,要么在设计中远离实际生产。

在本文中,为了解决上述问题,我们提出了面向产品的轻量级端到端KWS工具包WeKws。WeKws的主要优势如下:

  • Alignment-free:WeKws是一个不需要对齐的端到端加密工具包。不需要使用自动语音识别(ASR)或语音活动检测(SAD)系统来获得关键字的对齐或结束时间戳,这大大简化了KWS训练管道。
  • Production ready:当我们设计WeKws时,我们尽最大努力弥合研究和生产之间的差距。Wekws使用因果卷积来实现流KWS。WeKws的所有模块都符合TorchScript的要求。因此,使用WeKws训练的模型可以通过Torch Just In Time (JIT)导出,转换为Open Neural Network Exchange 2 (ONNX)格式,因此很容易部署。
  • Light weight:WeKws是专门为E2E KWS设计的,代码干净简单,只依赖于PyTorch。经过训练的模型是轻量级的,并且能够在嵌入式设备上运行。
  • Competitive results:与最近提出的其他KWS系统相比,WeKws在几个公共KWS基准测试中取得了具有竞争力的结果。此外,WeKws不需要对齐和解码图形,而比较系统则无法做到这一点,这使得它们的训练管道变得复杂,并依赖于其他沉重的工具包。

2、WEKWS

2.1 模型结构

WeKws的整体模型结构如图2所示。它由四个部分组成,从全局倒谱均值和方差归一化(CMVN)层开始,将输入的声学特征归一化为正态分布。然后是线性层,该层将输入要素的尺寸映射到所需的尺寸。然后是主干网络,它可以是递归神经网络(RNN)、时间卷积网络(TCN)或多尺度深度时间卷积(MDTC)。在模型的末尾,有几个二进制分类器,每个二进制分类器都有一个带有S形激活的单一输出节点来预测相应关键字的后验概率。对于每个关键词,我们在主干网络后面增加了一个独立的二进制分类器来处理多个关键词的场景。请注意,主干网络由这些二进制分类器共享。

WeKws当前支持以下三种主干网络:1)RNN或其改进版本LSTM,已广泛应用于语音识别和其他语音任务;2)TCN或其轻量级版本深度可分离TCN(DS-TCN),其扩展卷积以增加接受场;3)MDTC,一个高效提取多尺度特征表示的高级主干网络。注意,当我们的目标是实现流KWS系统时,我们在所有基于卷积的神经网络中使用因果卷积。
在这里插入图片描述

2.2 基于训练目标的精细化最大池化

WeKws的训练目标采用精细化的最大池化损失,其公式为:

在这里插入图片描述
其中,Pij是预测的后验概率,m是关键词的最小持续时间帧,N是每个训练小批次中第i个发声的帧数。注意,最小持续时间m是对训练集中的所有正样本进行统计计算的。

在这里插入图片描述
通过使用最大池化损失,模型自动学习关键字的结束时间戳,从而摆脱了对对齐或关键字结束时间戳的依赖。具体地说,对于正样本,最大池化损失只会优化后验概率最高的帧,而忽略其他帧。对于负样本,最大合并损失将最小化后验概率最高的帧,从而最小化负样本中所有帧的后验概率。

3、实验

3.1 实验设置

本文使用Mobvoi(SLR87)、Snips和Google Speech Command(GSC)语料库来评估提出的WEKWS。Mobvoi是专门为WuW任务设计的普通话语料库。语料库中有两个关键词,每个关键词大约有36K个话语。非关键词话语的数量约为183K。Snips是一个众包的无国界医生语料库。语料库的关键词是“嘿Snips”,语料库中约有11K个关键词话语和86.5K个非关键词话语。GSC语料库由64,721个一秒长的录音组成,这些录音由1881名不同的说话者录制了30个单词。我们使用验证list.txt和测试list.txt中的话语分别作为验证和测试数据,并使用其他话语作为训练数据。

我们使用40维梅尔滤波器组(Fbank)特征作为模型输入,窗口大小为25ms,窗口偏移为10ms。我们使用初始学习率为1E−3、L2权重衰减为1E−4的ADAM作为模型训练的优化器。批次大小被设置为128个话语。提出的WeKws接受了80个epoch的训练。我们从每个时期后保存的总共80个模型中,在开发集上选择30个最好的模型,然后对它们进行平均,得到最终的模型。

3.2 实验结果

  • 与最近在GSC数据集上使用的两种KWS方法相比,WeKws获得了最好的结果。
    在这里插入图片描述
  • 最大池化损失不使用任何额外的监督信息,这使得WeKws成为一个简单有效的KWS系统。
    在这里插入图片描述
  • 从表5中可以看到,深度可分离卷积显著减少了参数的数量,而性能降级很小或没有降级。此外,MDTC在性能和模型占用空间之间实现了最佳平衡。
    在这里插入图片描述

4、结论

在本文中,提出了一个产品质量高、易于构建、易于应用的开源E2E KWS工具包WeKws。凭借纯粹的端到端训练目标和精心设计的模块,WeKws可以轻松地在不同的平台上进行培训、导出和应用。WeKws有助于弥合KWS方法的研究和生产之间的差距,并为研究人员和工程师提供一个易于使用的平台。对三个KWS基准的评估表明,与许多最先进的KWS方法相比,WeKws取得了与之相当或更好的结果。


http://chatgpt.dhexx.cn/article/qpm6UA2J.shtml

相关文章

讯飞语音唤醒、识别、合成

文章目录 讯飞SDK的使用官网SDK所提供的的文件官网Demo的使用自己新建工程导包步骤 语音唤醒语音识别在线语音合成 讯飞SDK的使用 Demo链接: 语音唤醒 [link] (https://download.csdn.net/download/the_only_god/11376540) 语音识别 [link] (https://download.csdn…

语音认别---唤醒技术KWS介绍

语音认别---唤醒技术KWS介绍 由于目前终端(如手机)上的CPU还不足够强劲,不能让语音识别的各种算法跑在终端上,尤其现在语音识别都是基于深度学习来做了,更加不能跑在终端上,所以目前主流的语音识别方案是声…

【语音智能管家】之语音唤醒(附演示视频)

目录 一.语音唤醒引擎(snowboy) 1.获取源代码并编译 2.自定义自己的唤醒词(唤醒词:小贝) 3.测试 二、自定义响应 三、实现了智能语音音响--听音乐 后续延伸 【加群获取学习资料QQ群:901381280】 我设…

科大讯飞语音唤醒(Android)

前面的工程项目配置和语音识别差不多,但是需要从SDK的res文件夹中复制ivw文件夹粘贴到main下面的assets文件夹下面。具体的文件配置结构,我截个图给大家看看: 剩下的步骤就是两页代码了,附上! 首先是MyApplication中的…

【飞桨PaddleSpeech语音技术课程】— 语音唤醒

(以下内容搬运自飞桨PaddleSpeech语音技术课程,点击链接可直接运行源码) 1. KWS 概述 随着人工智能的飞速发展,市场上推出了各式各样的智能设备,AI 语音的发展更是使得语音助手成为各大智能终端设备必不可少的软件。语音是人类与设备最直接…

语音唤醒的具体技术方案

\qquad 昨天的文章说的是不同的语音激活检测技术,传送门今天要说的是这个技术中间的具体的语音唤醒技术。语音唤醒技术到目前已经经过了三代的发展了。 第一代的技术很好理解,就是先构建一些模板,然后遇到语音,和模板进行匹配&…

26、使用友善NanoPi NEO和外设硬件实现语音唤醒功能、目标检测功能、语音播报功能

基本思想:使用友善开发板进行目标检测和测试 第一步:查看教程和进行刷机http://wiki.friendlyelec.com/wiki/index.php/NanoPi_NEO/zh#.E4.B8.8B.E8.BD.BD.E7.B3.BB.E7.BB.9F.E5.9B.BA.E4.BB.B6 小开发板子还是蛮不错的~,友善也开始卷了。。…

科大讯飞Windows麦克风监听语音唤醒+语音识别demo

最近在学习如何应用API来实现语言交互系统的功能,所以打算写一篇文章来整理和记录自己了解API使用的过程。 有很多平台提供语音识别等功能的API,文章使用的是科大讯飞开发的API。使用讯飞开放平台SDK实现一个Windows语音交互demo 讯飞开放平台简介SDK的下…

讯飞语音——唤醒

讯飞语音唤醒 唤醒功能,顾名思义,通过语音,唤醒服务,做我们想做的事情。 效果图(开启应用后说讯飞语音或者讯飞语点唤醒) 源码下载 地址:http://download.csdn.net/detail/q4878802/9023213 步…

说话就能轻松操控,科大讯飞语音唤醒技术带来便利体验!

如果,紧箍咒失灵了,孙悟空还会听唐僧的话吗? 如果,专注驾驶途中,一声呼唤便可响应需求是否很方便? 如果,手机落在卧室的某个角落,轻轻唤醒便能找到是否心情舒畅? 现实生…

Android——百度语音唤醒

这篇文章我们主要介绍一下,百度语音唤醒。所谓语音唤醒是指说出指定的语音指令(自定义的唤醒词),使程序激活某个功能的能力。百度语音唤醒支持自定义唤醒词。我做过讯飞的语音唤醒,这两个比较起来,讯飞的语音唤醒整体效果比百度要好。百度的语音唤醒功能需要使用唤醒词评…

androidstudio的语音唤醒功能

Manifest配置 写在application之外 <uses-permission android:name"android.permission.RECORD_AUDIO" /><uses-permission android:name"android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name"android.permiss…

国内那几家语音唤醒技术做的比较好? 语音唤醒技术哪家强?

编辑导语&#xff1a; 随着语音交互技术的日渐成熟&#xff0c;越来越多的智能硬件都选择增加语音能力作为产品卖点之一。但是&#xff0c;设备在进入语音交互工作状态的时候&#xff0c;需要先进行唤醒操作。 常见的唤醒语音交互的操作有按键或者触屏形式&#xff0c;但是&…

语音唤醒工具:WeKWS

1 简介 本文根据2022年10月《WEKWS: A PRODUCTION FIRST SMALL-FOOTPRINT END-TO-END KEYWORD SPOTTING TOOLKIT 》翻译总结的。作者为西北工业大学航海学院张晓雷老师团队、西工大音频语音与语言处理研究组谢磊老师团队、WeNet 开源社区等。 WeKWS是一个可以投入生产使用、容…

讯飞语音开发之语音唤醒

只有前面讲到的语音合成&#xff0c;语音理解&#xff0c;语义理解&#xff0c;语音识别确实可以实现人机交流。但是还不能实现完全智能&#xff0c;不能狗做到实时问道&#xff0c;间歇式问答。要实现实时问答&#xff0c;切不用手动操作。这时候语音唤醒功能就大选伸手了。下…

百度语音唤醒

一&#xff1a;前期准工作 &#xff08;1&#xff09;进入百度开放平台&#xff0c;注册账号&#xff0c;创建应用&#xff0c;拿到应用相对应的 AppID&#xff0c;API密钥&#xff0c;密钥 &#xff08;2&#xff09;配置相关信息 <uses-permission android:name"an…

语音唤醒原理

百度语音唤醒时的日志 D/audio_hw_primary: adev_open_input_stream is_karaoke_fastcapture0 D/audio_hw_primary: adev_open_input_stream: enter: sample_rate(16000) channel_mask(0x10) devices(0x80000004) stream_handle(0xf3439a00) io_handle(454) source(1) …

语音唤醒功能篇

语音唤醒功能 语音唤醒使得系统中的各个功能模块能够很好的分隔开来。用户通过唤醒词“依米”唤醒系统&#xff0c;发送语音指令&#xff0c;系统检测到语音指令中的关键词&#xff0c;然后去执行相对应的功能。当系统执行完成后&#xff0c;便进入等待下一次被唤醒状态&#…

语音唤醒

语音唤醒 前言一、语音唤醒相关环境搭建二、使用步骤1.使用流程2.示例代码 总结 前言 针对语音交互过程&#xff0c;提供了一种语音唤醒的方法供大家参考&#xff0c;语音交互采用snowboy离线语音唤醒引擎&#xff0c;snowboy已经被kitt.AI团队下架&#xff0c;但我们仍能够在…

语音唤醒简单说明

随着 Echo 出现,all in one 音响类产品雏形开始显现,语音交互成为最直接的控制方式,Amazon Echo作为最佳代表,智能语音交互成为互联网入口的新价值所在。ABI Research 在 2017 年収布的预测报告指出,估计到 2022 年,支持语音控制的装置出货量将达到 7500万台,其中智能喇…