语音唤醒工具:WeKWS

article/2025/9/13 3:50:50

1 简介

本文根据2022年10月《WEKWS: A PRODUCTION FIRST SMALL-FOOTPRINT END-TO-END KEYWORD SPOTTING TOOLKIT 》翻译总结的。作者为西北工业大学航海学院张晓雷老师团队、西工大音频语音与语言处理研究组谢磊老师团队、WeNet 开源社区等。

WeKWS是一个可以投入生产使用、容易构建、易应用的端到端(end-to-end (E2E) )关键词识别工具(Keyword spotting )。Keyword spotting(KWS)指从连续语音流中识别预定义的关键词。唤醒词识别(wake-up word(WuW))是KWS的一种。

开源地址:GitHub - wenet-e2e/wekws: Production First and Production Ready End-to-End Keyword Spotting Toolkit

在物联网(IoT)等设备进行语音唤醒需要使用一个占用内存小的脚本、低计算成本,同时低延迟、高准确率。而目前的工具太复杂,如Kaldi、Fariseq、Honk等。为此,我们建设了WeKWS,其有如下条件:

  • 免对齐(Alignment-free ):不需要使用自动语音识别(ASR)或者语音活动检测(speech activity detection :SAD)来进行关键词对齐或者关键词结束时间戳,简化了KWS训练。
  • 可以投入生产使用(Production ready ):跨越研究和投入生成使用的鸿沟。可以采用Torch Just In Time (JIT) 导出,转换为Open Neural Network Exchange(ONNX) 格式,容易在多个开发环境中采用。(Pytorch模型中2种常用的推理加速方案:ONNX 和 TorchScript)。
  • 轻量化(Light weight):只依靠Pytorch;
  • 高准确率。

2 WeKWS

2.1系统设计

如下图包括3层。

2.1.1第一层: Data preparation module and an on-the-fly feature extraction and argumentation.

在数据准备模块,是准备语音清单和话语水平的关键词标签,方便模型训练。WeKWS使用在线(on-the-fly)特征提取。每个语音首先被重采样到某个特定的采样率,然后速率扰动和梅尔滤波特征提取( speed perturbation and Mel-filter bank feature extraction)。输入采用了Feature-level Specaugment 的数据扩充方法。相比离线方法,这种在线方法节省磁盘使用,而且丰富了训练样本的多样性,提升了模型的健壮性。

2.1.2 第二层:Model training and testing

我们可以使用多种流行的KWS 骨干网络(backbone)和一个精炼的max-pooling KWS目标函数。 骨干网络可以选择RNN、temporal convolutional network (TCN) 、multiscale depthwise temporal convolution (MDTC) 等。

2.1.3 第3层:Model exportation and development.

训练的模型支持TorchScript和ONNX输出,所以可以很容易的应用于不同的平台。现在我们支持3个主要的平台,如x86、安卓、树莓派(Raspberry Pi)。而且支持float32模型和量化的int8模型,量化的int8模型在嵌入式设备如ARM的安卓和树莓派上可以提升预测速度。

2.2 模型结构

如上图所示,模型包括4部分,包括全局倒频谱均值和方差归一化层(global cepstral mean and variance normalization (CMVN) )、线性层(将输入的特征维度转换为骨干网络需要的维度)、骨干网络、多个二值分类器。每一个二值分类器采用sigmoid来预测一个关键词的后验概率,多个二值分类器就支持多个关键词。

WeKWS 骨干网络(backbone)目前支持如下3中:1)RNN或者其改进版本LSTM;2)TCN,或者其轻量化版本深度分离TCN,即DS-TCN(depthwise separable TCN);3)MDTC。

在所有基于卷积的神经网络中,我们使用因果卷积(causal convolutions)。

2.3 精炼的max-pooling KWS目标函数

其中p是预测的后验概率。m是关键词的最小持续时间帧,m是在训练集中统计计算出来的。N是第i个话语的帧的数量。

通过使用max-pooling 损失函数,模型自动学习关键词的结束时间戳,所以不用依赖关键词的对齐和关键词的结束时间戳。特别地,对于正样本,max-pooling 损失仅优化高后验概率的帧,忽略其他帧。对于负样本,max-pooling 损失会最小化高后验概率的帧,所以负样本的所有帧的后验会被最小化。

3 实验

3.1 实验建设

我们使用Mobvoi (SLR87) , Snips 、 Google Speech Command (GSC) 数据集评估我们的WeKWS。

Mobvoi是一个普通话语料库,应用于唤醒任务。其有两个关键词,每个关键词有36k语音。非关键词语音大约183K.

Snips是一个众包唤醒词语料库,其关键词是“Hey snips”,大约有11K的关键词语音,和86.5K非关键词语音。

Google Speech Command包括64721个一秒长的记录,由1881位不同的说话者说的30个单词。

我们使用40维梅尔过滤器特征( Mel-fifilter bank (Fbank) )作为模型输入,其采用25毫秒窗口和10毫秒窗口移动。

我们使用Adam。batch size为128.训练80 epochs。

3.2 实验结果

下表是和LF-MNI-based的方法比较(其依靠基于图的编码算法)。误拒绝率(false rejection rate,FRR)为实际辨别中误拒绝发生的百分比。我们的方法WeKWS相比对FRR进行了下降,效果较好。

下表2、3是WeKWS和另外两个端到端方法进行比较。

3.3 消融实验

max-pooling方法较好。

MDTC骨干较好。


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

相关文章

讯飞语音开发之语音唤醒

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

百度语音唤醒

一&#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万台,其中智能喇…

语音唤醒技术的原理是什么?

https://www.toutiao.com/a6644766450860950024/ 2019-01-10 15:27:29 “天猫精灵。”“哎&#xff0c;在的&#xff0c;你说” “小爱同学&#xff0c;定明天早上8点的闹钟。”“好的&#xff0c;已经帮你定好明天早上8点的闹钟” 不少同学家里都有AI智能音箱产品&#xff0…

android系统看片软件,真正的手机看片神器 和视界手机APP评测

播放界面支持丰富的手势操作&#xff0c;我们可以通过上下左右的滑动手指来调整影片进度以及音量大小。和视界还可以选择不同的输出设备——只要硬件设备支持&#xff0c;我们可以通过手机将和视界中的视频内容投射到电视上观看。 注重影片的口碑效应&#xff0c;支持用户打分与…

FreeRTOS时间片调度

一、FreeRTOS时间片调度概述 FreeRTOS支持多个任务同时拥有一个优先级&#xff0c;这些任务的调度就可以使用时间片来进行调度。在FreeRTOS中允许一个任务允许一个时间片&#xff08;一个时钟节拍的长度&#xff09;后让出CPU的使用权&#xff0c;让拥有同优先级的下个任务运行…

MongoDB 分片集群技术

在了解分片集群之前&#xff0c;务必要先了解复制集技术&#xff01; 1.1 MongoDB复制集简介 一组Mongodb复制集&#xff0c;就是一组mongod进程&#xff0c;这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性&#xff0c;这是生产部署的基础。 1.1.1 复制集的…

片偏移怎么计算_计算机网络学习笔记(四)之网络层

点击蓝字关注我吧 越努力越幸运!!! 1 网络层的功能 1.1异构网络互联 网络的互联:指将两个以上的计算机网络,通过一定的方法, 用一种或多种通信处理设备(即中间设备)相互联接起来,以构成更大的网络系统。中间设备又称为中间系统或中继系统。根据中继系统所在…

IP分片浅析

一、IP分片原理 IP分片是网络上传输IP报文的一种技术手段。 IP协议在传输数据包时&#xff0c;将数据报文分为若干分片进行传输&#xff0c;并在目标系统中进行重组。 不同的链路类型规定有不同最大长度的链路层数据帧&#xff0c;称为链路层MTU&#xff08;最大传输单元&#…

硅钢片知识点

文章目录 一、电工钢为什么选硅钢二、为什么要用硅钢“片”三、为什么电机用无取向&#xff0c;变压器用有取向硅钢片四、其他关于硅钢片应该了解的4.1 热轧和冷轧4.2 厚度4.3 牌号4.4 叠片系数4.5 冲片性 一、电工钢为什么选硅钢 电机和变压器的内部主要组成是铜绕组&#xf…

wireshark捕获IP分片数据包实践

一 简介 如果一个数据包超过1500个字节&#xff0c;就需要将该包进行分片发送。通常情况下&#xff0c;是不会出现这种情况的。 下面通过使用ICMP包&#xff0c;来产生IP分片数据包。 使用ICMP包进行测试时&#xff0c;如果不指定包的大小&#xff0c;可能无法查看被分片的数据…

mongo分片

分片 在Mongodb里面存在另一种集群&#xff0c;就是分片技术,可以满足MongoDB数据量大量增长的需求。 当MongoDB存储海量的数据时&#xff0c;一台机器可能不足以存储数据&#xff0c;也可能不足以提供可接受的读写吞吐量。这时&#xff0c;我们就可以通过在多台机器上分割数据…

IP分片报文的接收与重组

对于长度超过接口MTU的数据包&#xff0c;需要进行分片处理&#xff0c;IP报头中与分片相关的字段有如下几个&#xff1a; Identification - 用来确认不同的分片是否属于同一个IP报文&#xff1b; Flags - 其中IP_MF表示还有分片&#xff0c;此分片为…

数据 分片

背景 传统的将数据集中存储至单一节点的解决方案&#xff0c;在性能、可用性和运维成本这三方面已经难于满足海量数据的场景。 从性能方面来说&#xff0c;由于关系型数据库大多采用 B 树类型的索引&#xff0c;在数据量超过阈值的情况下&#xff0c;索引深度的增加也将使得磁…

MongoDB:海量存储基础-分片架构

文章目录 1.分片架构2.分片策略3.读写策略4.数据迁移 1.分片架构 分片是数据库中常用的提升存储容量的方式&#xff0c;它基于水平拓展的思想&#xff0c;将大量的数据按一定规则分配到不同的服务器中存储&#xff0c;比如MySQL集群可以借助Sharding-JDBC等外部框架对数据进行…

SpringBoot文件分片上传

背景 最近好几个项目在运行过程中客户都提出文件上传大小的限制能否设置的大一些&#xff0c;用户经常需要上传好几个G的资料文件&#xff0c;如图纸&#xff0c;视频等&#xff0c;并且需要在上传大文件过程中进行优化实时展现进度条&#xff0c;进行技术评估后针对框架文件上…

芯片的设计流程和流片成本

每天都在用&#xff0c;但你知道芯片的设计流程和流片成本吗&#xff1f; 2017-05-10 06:10 来源&#xff1a;半导行业观察 芯片&#xff0c;是无数设计工程师们烧死很多脑细胞后产生的作品&#xff0c;完全可以称得上是当代的艺术品。无论是电工们&#xff0c;还是科技小白…