2020-11-30 吴恩达DL学习-C5 序列模型-W3 序列模型和注意力机制(3.10 触发字检测-声音唤醒设备)

274 篇文章 24 订阅
233 篇文章 0 订阅
本文介绍了如何利用深度学习构建触发字检测系统,如Amazon Echo的Alexa唤醒机制。内容涉及将音频片段转化为声谱图特征,使用RNN进行序列建模,并通过设置不平衡的训练标签来训练模型。此外,还提出了通过延长1的输出时间来改善不平衡训练集的策略。文章总结了学习的序列模型技术,包括RNN、GRU、LSTM以及注意力模型。
摘要由CSDN通过智能技术生成

1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

3.10 触发字检测 Trigger word dection

现在你已经学习了很多关于DL和序列模型的内容,于是我们可以真正去简便地描绘出一个触发字系统(a trigger word system),就像上节课中你看到的那样。随着语音识别的发展,越来越多的设备可以通过你的声音来唤醒,这有时被叫做触发字检测系统(trigger word detection systems)。我们来看一看如何建立一个触发字系统。

在这里插入图片描述

触发字系统的例子包括

  • Amazon echo,它通过单词Alexa唤醒;
  • 百度DuerOS设备,通过"小度你好"来唤醒;
  • 苹果的Siri用Hey Siri来唤醒;
  • Google Home使用Okay Google来唤醒

这些就是触发字检测系统。

假如你在卧室中,有一台Amazon echo,你可以在卧室中简单说一句: Alexa, 现在几点了?就能唤醒这个设备。它将会被单词"Alexa"唤醒,并回答你的询问。

如果你能建立一个触发字检测系统,也许你就能让你的电脑通过你的声音来执行某些事,我有个朋友也在做一种用触发字来打开的特殊的灯,这是个很有趣的项目。但我想教会你的,是如何构建一个触发字检测系统。

有关于触发字检测系统的文献,还处于发展阶段。对于触发字检测,最好的算法是什么,目前还没有一个广泛的定论。我这里就简单向你介绍一个你能够使用的算法好了。
在这里插入图片描述

如上图,现在有一个这样的RNN结构,我们要做的就是

  • 把一个音频片段(an audio clip)计算出它的声谱图特征(spectrogram features)得到特征向量 x < 1 > x^{<1>} x<1>, x < 2 > x^{<2>} x<2> , x < 3 > x^{<3>} x<3>…,或者说音频特征 x < 1 > x^{<1>} x<1>, x < 2 > x^{<2>} x<2> , x < 3 > x^{<3>} x<3>
  • 然后把它放到RNN中,
  • 最后要做的就是定义我们的目标标签 y y y

在这里插入图片描述

假如音频片段中的这一点(如上图)是某人刚刚说完一个触发字,比如"Alexa",或者"小度你好" 或者"Okay Google"。那么在这一点之前,你就可以在训练集中把目标标签都设为0,然后在这个点之后把目标标签设为1。
在这里插入图片描述

假如在一段时间之后,触发字又被说了一次,比如是在这个点(上图右下竖线)说的,那么就可以再次在这个点之后把目标标签设为1。

这样的标签方案对于RNN来说是可行的,并且确实运行得非常不错。不过该算法一个明显的缺点就是它构建了一个很不平衡的训练集(a very imbalanced training set),0的数量比1多太多了。

这里还有一个解决方法,虽然听起来有点简单粗暴,但确实能使其变得更容易训练。
在这里插入图片描述

在这里插入图片描述

比起只在一个时间步上去输出1,其实你可以在输出变回0之前,多次输出1,或说在固定的一段时间内输出多个1(如上面2图所示)。这样的话,就稍微提高了1与0的比例,这确实有些简单粗暴。
在这里插入图片描述

在音频片段中,触发字刚被说完之后,就把多个目标标签设为1,这里触发字又被说了一次。说完以后,又让RNN去输出1。在之后的编程练习中,你可以进行更多这样的操作,我想你应该会对自己学会了这么多东西而感到自豪。

我们仅仅用了一张图片来描述这种复杂的触发字检测系统。在这个基础上,希望你能够实现一个能有效地让你能够检测出触发字的算法,不过在编程练习中你可以看到更多的学习内容。

这就是触发字检测,希望你能对自己感到自豪。因为你已经学了这么多DL的内容,现在你可以只用几分钟时间,就能用一张图片来描述触发字能够实现它,并让它发挥作用。你甚至可能在你的家里用触发字系统做一些有趣的事情,比如打开或关闭电器,或者可以改造你的电脑,使得你或者其他人可以用触发字来操作它。

这是DL课程最后一个技术课程,所以总结一下我们对序列模型的学习。

  • 我们学了RNN,包括GRU和LSTM,
  • 在上一周我们学了词嵌入(word embeddings),以及它们如何学习词汇的表达(how they learn representations of words)。
  • 在这周还学了注意力模型(the attention model)以及如何使用它来处理音频数据(audio data)。

希望你在编程练习中实现这些思想的时候,能够体会到诸多乐趣。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值