论文地址:Effective Combination of DenseNet and BiLSTM for Keyword Spotting
发表于: IEEE Access ( 第7卷)
发布日期: 2019年1月10日

Abstract

  在本文中,基于DenseNet提取本地特征图的强大功能,我们为KWS提出了一种新的网络体系结构(DenseNet-BiLSTM)。在我们的DenseNet-BiLSTM中,DenseNet主要用于获取局部特征,而BiLSTM用于获取时间序列特征。通常,DenseNet用于计算机视觉任务,它可能会破坏语音音频的上下文信息。为了使DenseNet适用于KWS,我们提出了一个变体DenseNet,称为DenseNet-Speech,它在过渡层的时间维度上删除了池以保留语音时间序列信息。此外,我们的DenseNet-Speech使用密度较小的块和过滤器来使模型保持较小,从而减少了移动设备的时间消耗。实验结果表明,DenseNet-Speech的特征图可以很好地维护时间序列信息。就Google Speech Commands数据集的准确性而言,我们的方法优于最新方法。对于具有223K可训练参数的20条命令识别任务,DenseNet-BiLSTM能够达到96.6%的精度。

Introduction

  对于KWS,获得良好的语音命令识别精度非常重要。此外,KWS模块还应该足够小,以适合功率和性能受限的移动设备。我们利用模型中可训练参数的数量来测量模块大小。
  最近,端到端的模式已经成为KWS的流行[2]。研究了KWS的卷积神经网络(CNN)[3]、[4]、深度神经网络(DNN)[5]和剩余网络(ResNet)[6]。CNN和ResNet的一个缺点是它们不能很好地长期依赖语音。本文还研究了KWS[7],[8]的递归神经网络(RNN)。RNN的一个潜在限制是它直接对输入特征建模,而不需要学习连续时间序列和频率步之间的局部结构。一些工作将CNN和RNN相结合以提高KWS的精度,如卷积递归神经网络(CRNN)[9]和门控卷积长短期记忆(LSTM)[10],这两种方法的性能都优于仅使用CNN或RNN。
  常规的CNN提取局部特征图的能力有限。近年来,提出了紧密连接的卷积网络(DenseNet)[11],它可以缓解梯度消失的问题,增强特征传播,鼓励特征重用,并减少可训练参数的数量。DenseNet是使用较少参数捕获本地特征图的有效方法。对于RNN,通过利用过去和将来的上下文信息,双向长短期记忆(BiLSTM)可以很好地获得时间序列特征。因此,我们提出了一种结合DenseNet和BiLSTM(DenseNet-BiLSTM)的方法,以针对KWS的合理训练参数实现更高的精度。DenseNet-BiLSTM的概要在图1中进行了描述。

图1: 结合DenseNet和BiLSTM进行关键字发现的概述。DenseNet主要致力于提取局部特征图,而BiLSTM获取时间序列信息。

DenseNet在两个密集块之间有一个过渡层,在其中进行池化操作[11]。对于DenseNet-BiLSTM,我们希望DenseNet模块主要关注局部特征,而在时间维度上很少维护时间序列信息,因此我们只考虑特征维度并将此DenseNet结构称为DenseNet-Speech。来自DenseNet-Speech的特征图将被馈送到BiLSTM模块以获得时间序列特征。为了使我们的模型更小,我们在每个块中使用的层数少于DenseNet-121和DenseNet-169 [11]。对于DenseNet-BiLSTM,我们还引入了注意机制,这有助于提高KWS的准确性[12]。

总而言之,本文的主要贡献如下:

1、提出了一种将DenseNet和BiLSTM结合用于KWS的有效方法,该方法在Google语音命令数据集v1 [13]和v2 [14]上的准确性方面优于最新模型。

2、设计了适合的变体DenseNet(DenseNet-Speech),用于占用空间小的语音命令识别。

3、找到了一种在保持KWS识别精度的同时减少可训练参数的新方法。以相似的精度导入具有更强的局部特征提取能力的CNN有助于减少可训练参数的总数。

Related Work

CNN架构为KWS带来了重大改进[3]。在[15]中,音频识别问题被转换到图像分类领域,并取得了良好的效果。当CNN变得更深时,它会遇到梯度消失的问题,这意味着梯度无法很好地传导到前层。为了解决这个问题,提出了ResNet [6],它引入了快捷方式连接。并且可以跳过一层或多层。受ResNet中的快捷连接的启发,提出了DenseNet以最大程度地增加CNN中各层之间的信息流。DenseNet将特征映射传递到其所有后续层[11],与ResNet或其他深层CNN相比,DenseNet 可以用更少的参数将更多信息传输到后继层。用于识别任务的显著改进上CIFAR-10,CIFAR-100,SVHN和ImageNet [11]表明,DenseNet是在提取局部特征的地图比常规细胞神经网络更有效。在[16]中,DenseNet与传递学习相结合用于语音命令识别,并且获得了85.52%的准确性。

LSTM [17]是一种RNN体系结构,旨在解决梯度爆炸和消失的问题。它可以在任何时间间隔内存储该值,并控制信息流入后一个序列。具有联系主义时间分类(CTC)的LSTM优于KWS的深度神经网络(DNN)和隐马尔可夫模型(HMM)[7]。BiLSTM可以导入当前时间的过去和将来的信息,这引入了更多的上下文信息,并在自动语音识别方面取得了巨大的成功。Graves 等。[18]提出深度BiLSTM和HMM的结合,其性能优于《华尔街日报》语料库的GMM和深度神经网络基准测试。对于关键词发现问题,仅使用BiLSTM的模型大大击败了基于HMM的语音识别器[19]。

关于将CNN和RNN结合到KWS方面,还有许多相关的著作。Arik 等。[9]提出了一种网络架构,由一层CNN和两层RNN组成,总参数为[ 数学处理错误] 。使用带有LSTM的门控CNN的另一种模型[10]具有一层CNN,两层门控CNN和一层BiLSTM(C-1-G-2-Blstm)。C-1-G-2-Blstm的总数为[ 数学处理错误] 可训练的参数,并且在Google Speech Commands数据集上的准确性比Transfer Learning Network [16]高 6.4%。受到CNN和RNN一起使用的成功以及提取DenseNet局部特征的强大功能的启发,我们提出了一种将DenseNet和BiLSTM结合起来以实现KWS更好性能的方法。

此外,注意机制[20] ,[21]使神经网络集中的输入的不同部分。基于注意力的模型可以使KWS的准确性更高。基于注意力的模型在Google Speech Commands数据集中获得了巨大的成功[12]。在[22]中,针对小尺寸KWS引入了一种基于注意力的端到端模型,该模型击败了深度KWS系统。为了获得更好的性能,我们还将注意机制导入到我们的模型中。

Methods

A.音频特征提取
使用梅尔级频谱图[23]预处理语音音频。对于每种发音,均使用80频段的Mel比例,1024个离散傅立叶变换点和128个跃点大小来计算梅尔标度频谱图。将每个发音的所有帧堆叠起来以形成二维矢量。然后将梅尔频谱图转换为dB标度频谱图,以进行进一步处理。

B.模型架构
于每种音频,我们首先使用librosa [23]提取梅尔频谱图特征并将其转换为dB标度频谱图。为每个音频标准化了dB标度的频谱图。然后将DenseNet-Speech用于进一步获取局部特征图。一组双向LSTM用于捕获音频中的长期依赖性。注意[24]运用机制使我们的模型集中于应注意的地方。引入了两个完全连接的层,以使学习功能的尺寸与类别的数量对齐。最后,将softmax用于分类。交叉熵被用作损失函数。所有的激活函数都是整流线性单位(ReLU)[25]。批量归一化[26]应用于卷积运算。

C. DenseNet-Speech(没看懂)

D. BILSTM With Attention(没看懂)

Experiments

A.实验设定
使用tensorflow [27]作为框架来实现我们的模型。通过将测试准确性与同一数据集上的其他体系结构进行比较来评估我们的模型。Nvidia GeForce GTX 980用于进行我们的实验。

1)数据集
Google Speech Commands数据集v1和v2上训练和评估我们的模型。Google语音命令数据集v1 [13]于2017年8月3日发布,由64,727个一秒钟长的语音和30个短单词组成。Google Speech Commands Dataset v2 [14]于2018年4月发布,由105,829个一秒钟(或更少)的35个单词组成。我们评估基于task-12cmds和task-20words的模型。task-12cmds指的是12个语音命令的识别,而task-20words是20个核心命令的识别任务[14]。

2)超参数
批量大小为100。提前停止适用于总共18,000个步骤的培训。初始学习率为0.001。验证准确性每400步进行测试。如果验证准确性降低,则学习率将降低50%。当它收敛时,训练将停止。我们使用最佳验证准确性的检查点来评估测试准确性。Adam stochastic optimization[28]被用于训练。

B.准确性评估
通过将准确性与分别在Google Speech Commands数据集v1和v2上的现有相关作品进行比较来评估模型。另外,我们添加了双向门控循环单元(BiGRU)[29]和深层BiGRU模型进行比较。我们主要关注每种模型的测试准确性。此外,列出了每项工作的可训练参数数。

有两种典型的方法可以为Google Speech Commands数据集生成训练和测试数据。一种是Google [3]的方法,该方法将数据集拆分为8:1:1,并增加了背景噪音。另一个是Attention RNN [12]的实现,它使用validation_list.txt和testing_list.txt中的音频文件作为验证和测试数据,而其他音频文件作为训练数据。与后一种方法相比,前一种方法包含的样本在测试数据中仅具有背景噪声。在本节中,遵循Attention RNN的实现,DenseNet-BiLSTM包括3层密集块和火车,而遵循Google的工具,有2层密集的街区和火车。

对于Google Speech Commands数据集v1,表2显示了我们的模型在两项任务中均达到了最佳性能。与针对任务12cmds的BiGRU-5和Res15 [6]相比,我们的模型使用较少的参数将单词错误率(WER)降低了9.5%。尽管基于BiGRU的模型比基于BiLSTM的模型表现更好,但是DenseNet-BiLSTM的准确度比DenseNet-BiGRU略高。关于注意力RNN [12],使用生成训练和测试数据的相同方法,我们的模型将任务12cmds的WER降低了40%,将任务20字词的WER降低了27%。我们模型的可训练参数数量比Attention RNN多25%。因此,我们的模型通过合理的可训练参数,在Google Speech Commands数据集v1上实现了最新的性能。

表2: Google语音命令数据集V1的准确性。ConvNet来自[3]。来自[30]的Tpool2结果。Res26,Res15来自[6]的结果。来自[31]的DS-CNN结果。[10]的C-1-G-2-Blstm结果。注意RNN结果来自[12]。来自[32]的TDNN结果。HD-CNN来自[33]。BiLSTM-i(BiGRU-i)是指具有i Layers的BiLSTM(BiGRU)的模型。DenseNet-BiGRU代表结合DenseNet和BiGRU的模型。Res15,Res26,TDNN,DS-CNN遵循Google的工具。C-1-G-2-Blstm将数据集拆分为注意力RNN。我们对ConvNet,BiLSTM-2,BiLSTM-5,BiGRU-2,BiGRU-5,BiGRU-8和HD-CNN进行了培训

还有一些其他的,,这里没写~

C.学习速度
绘制了训练的损失曲线。我们添加了LSTM-2和GRU-5进行比较。所有模型的学习率从0.001开始,并且在验证准确性没有提高的情况下降低了50%。图5说明了这三个模型都快速收敛,这归功于亚当随机优化[28]。收敛后,我们的模型的损失值最小。

图5: 学习速度。smoothingWeight为0.95。此处的模型均在Google Speech Commands数据集v1上进行了训练和评估。

D.噪声数据的影响

图6表明,所有模型的精度都随着背景体积的增加而降低。DenseNet-BiLSTM始终优于其他三个模型。从精度曲线的趋势来看,DenseNet-BiLSTM与其他模型之间的精度差距越来越大,这表明DenseNet-BiLSTM更加健壮。

E.不同DenseNet语音的影响
1)增长率的影响
2)密集块数的影响

F. BiLSTM层和隐藏单元的影响
1)BiLSTM层数的影响
2)隐藏单元数的影响

G.分析
来自DenseNet-Speech的特征图仍然保留了时间序列信息。与DenseNet-Org-BiLSTM相比,DenseNet-BiLSTM以更少的参数实现了更高的精度。

H.讨论
KWS是具有时间序列信息的分类任务。结合CNN和RNN是用于KWS的合适方法。我们的实验也说明了这一点。

通常,由于DenseNets [11]具有大量可训练的参数和池化操作,因此使用DenseNet可能会损坏上下文信息,这不适用于语音音频。通过在模型中进行精心设计,DenseNet-Speech能够很好地提取局部特征图,同时使用合理数量的可训练参数保留时间序列信息。这表明通过精心设计,可以使用复杂的CNN处理语音信号。可以探索与RNN结合的其他复杂CNN,以进一步提高KWS的准确性。

减少一层BiLSTM层可减少99K的可训练参数,将LSTM隐藏单元的数量从64个减少到32个可将参数减少109K,而在DenseNet-Speech中增加一个密集块仅花费额外的30K。图10显示我们的模型能够以更少的参数达到相似的精度。与Attention RNN [12]相比,DenseNet-BiLSTM-1减少了25%的可训练参数,而DenseNet-BiLSTM-2减少了30%。以相似的精度导入具有更强的局部特征提取功能的CNN有助于简化BiLSTM块。因此,减少了可训练参数的数量。因此,我们的工作提出了一种在保持模型准确性的同时减少可训练参数的新方法。

我们的模型的一个缺点是DenseNet-BiLSTM仍然在精度和可训练参数之间进行权衡。这个问题在KWS中很常见。对于Google Speech Commands Dataset v1中的task-12cmds,DenseNet-BiLSTM能够通过250K可训练参数获得97.5%的准确性。将隐藏单位数设置为128时,使用666K可训练参数可以达到97.7%的精度。尽管后者比前者更准确,但是其可训练参数的数量却更多。

Conclusions

在本文中,我们探索了DenseNet和BiLSTM(DenseNet-BiLSTM)的组合来解决关键字发现问题。在DenseNet-BiLSTM中,对DenseNet进行了修改,以提取局部特征,同时保留时间序列信息。实际上,保持上下文信息在提高准确性中起着重要作用。在Google Speech Commands数据集上进行的实验表明,我们的模型有效地将DenseNet和BiLSTM结合在一起用于语音命令音频,并在降低WER方面取得了显着改进,并以250K可训练参数实现了最新的性能。

我们还研究了不同超参数对模型性能的影响,发现以相似的精度导入具有更强局部特征提取功能的CNN有助于减少可训练参数。

(IEEE Access7)Effective Combination of DenseNet and BiLSTM for Keyword Spotting相关推荐

  1. 基于正向扫描的并行区间连接平面扫描算法(IEEE论文)

    作者: Panagiotis Bouros ∗ Department of Computer Science Aarhus University, Denmark pbour@cs.au.dk Nik ...

  2. <论文阅读> 基于对称距离流和多扫描对齐的稳健平面里程计(IEEE 2018)

    目录 摘要 一.引言 三.视觉里程计的距离流约束 四.优化问题 A. 预加权策略 五.多扫描公式 六.求解器 七.keyscan 选择 八.实施细节 A. 梯度近似 B. 运动过滤器 C. 稳健优化的 ...

  3. 单精度浮点数计算机存储的理解(IEEE 754)

    浮点数剖析 以下是该标准对浮点数格式的描述. [编辑]本文表示比特的约定 把W个比特(bit)的数据,从内存地址低端到高端,以0到W−1编码.通常将内存地址低端的比特写在最右边,称作最低有效位(lea ...

  4. IEEE Transactions on Instrumentation and Measurement(IEEE TIM)投稿记录

    大三下的暑假保研联系导师,导师给了一个师兄做过的课题,我按照我自己带来的方法进行了进一步改进,投的是IEEE Transactions on Instrumentation and Measureme ...

  5. 2018年计算机相关学术会议,2018年信息与计算机技术国际学术会议(IEEE出版)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2018 International Conference on Information and Computer Technologies (ICICT ...

  6. 计组(COA) Programming1: 整数和二进制补码、整数和NBCD码、浮点数(float)和二进制码(IEEE 754)的相互转换。

    1.整数转化为二进制补码. public String intToBinary(String numStr) {//判断符号boolean isNeg = numStr.charAt(0) == '- ...

  7. 【大咖云集】2021年IEEE电子信息工程与计算机科学国际会议(IEEE-EIECS 2021)征稿中!...

    2021年IEEE电子信息工程与计算机科学国际会议(IEEE-EIECS 2021) 2021年09月23-26日 | 中国-长春 EI核心和Scopus稳定检索 二轮征稿中 会议主办单位 承办单位 ...

  8. 梦开始的地方 —— C语言数据在内存中的存储(整形+浮点型)

    文章目录 整形在内存中的存储 1. 数值类型的基本分类 2. 整形在内存中的存储 1. 原码.反码.补码 2. 内存中为什么要存放补码? 3. 大小端存储 4. 无符号有符号数练习 5. 有符号数无符 ...

  9. 嵌入式系统词汇速查表,不会时候拿出来看看!(精品收藏)

    A ASIC(专用集成电路) Application-Specific Integrated Circuit. A piece of custom-designed hardware in a chi ...

最新文章

  1. python列表的解析(转)
  2. 计算机视觉面试常见问题(含解答)
  3. ASP.Net生成静态HTML页!
  4. python计算和差积商_Python与处理计算的区别
  5. 分布式文件系统—HDFS—Java API操作
  6. php解析api xml并输出到html页面,怎样操作JS读取xml内容并输出到div内
  7. C语言指针-字符指针整型指针char*s int*a
  8. cf. Lengthening Sticks 组合数学
  9. 智能优化算法:黑寡妇算法 -附代码
  10. C++ 迭代器 删除(erase)插入(insert)之后失效
  11. 图灵接口 php,图灵机器人API接口
  12. 论文阅读-Whisper语音识别(OpenAI)
  13. 在多个QQ号码间共享自定义表情(转)
  14. 用Excel或WPS做两独立样本的T检验
  15. wp文件转shp_完美实现从mapGIS文件转换成ArcGIS中shp格式文件
  16. 5分钟弄懂程序员的如何升级到架构师。
  17. mPEG2000-EP,含有环氧基的线性单功能PEG,mPEG2000-Epoxide
  18. Python正则表达式去掉字符串下划线末尾的纯数字
  19. ModelArts实现语音分类、文字类别分类
  20. 工业网络究竟怎么建?来听听工业互联网大会的意见

热门文章

  1. AE中TOC右键功能
  2. 前端画圆弧html弧线的像素,[js高手之路] html5 canvas系列教程 - arc绘制曲线图形(曲线,弧线,圆形)...
  3. 一切喜怒哀乐都来自于你的认知
  4. 分析了 89 万 IT 招聘数据,有这些发现…
  5. win10 和安卓平板分屏Spacedesk
  6. AD如何使用3D功能《通用快捷键》
  7. 首款搭载鸿蒙os的手机,首款搭载鸿蒙OS手机版机型将至 或是已入网的新版华为Mate40 Pro...
  8. ResourceAutowire区别
  9. 张国荣说,我一生无做坏事
  10. Python Plugin loader tut for ida pro 7.0