End-to-end keyword search system based on attention mechanism and energy scorer for low ...(2021)

 基于注意力机制和(用于低资源语言的)能量评分器的端到端关键词搜索系统

目录

摘要

研究内容

提出的方法&模型架构

整体结构

语音编码器解码器

查询编码解码器

KWS注意力机制 

能量得分器(Energy scorer)

文章贡献

前提知识

基线系统

本文改进

数据集

结果

摘要

 关键词搜索(KWS)是指从连续语音中搜索用户给出的关键词。传统的KWS系统基于自动语音识别(ASR),输入语音必须首先由ASR系统处理,然后才能搜索关键字。

近十年来,随着深度学习和深度神经网络(DNN)越来越流行,KWS系统也可以以端到端(E2E)的方式进行训练。E2E KWS的主要优点是不需要语音识别,这使得训练和搜索过程比传统的过程简单得多。

本文提出了一个E2E KWS模型,该模型由四部分组成:语音编码器-解码器、查询编码器-解码器、注意力机制和能量计分器。

首先,该模型的性能优于基准模型。其次,我们发现在不同的监督下,字符或音素序列、语音或查询编码器可以提取相应的信息,从而导致不同的性能。此外,我们还引入了一种注意力机制,并发明了一种新的能量记分器,前者可以帮助定位关键词。后者可以通过并行考虑语音嵌入、查询嵌入和注意权重来做出最终决策。

我们使用四种不同语言的大约10小时训练数据,在资源不足的情况下评估我们的模型。实验结果表明,该模型能够在低资源条件下很好地工作。

研究内容

关键字搜索(KWS)或关键字定位是检测和定位用户在连续语音中输入的关键字,并输出置信度分数,以指示这些关键字在输入语音中出现的概率。

输入的关键字可以是文本形式或口语形式。在本文中,我们只讨论文本形式的关键字。

传统的基于ASR的KWS系统通常通过ASR系统将语音解码成字格word lattices或其他形式的解码结果然后应用后端KWS系统查找感兴趣的关键词

随着DNN越来越流行,KWS系统也可以以端到端的方式开发E2E KWS系统的优点是,我们不再需要ASR系统或相应的解码步骤

与ASR相比,KWS是一项低级任务,因此使用相同的数据量来训练E2E KWS系统要容易得多

提出的方法&模型架构

整体结构

我们提出的模型的整体结构如图1所示。首先,我们分别通过语音编码器和查询编码器计算语音嵌入和查询嵌入。然后,我们将它们通过注意力机制获得一组注意权重,最后一个组件即能量记分器将使用这些权重。最后,能量计分器输出给定语音嵌入、查询嵌入和注意权重的置信度计分器

Fig.1.我们的E2EKWS系统的整体结构

语音编码器解码器

Fig. 2. 语音嵌入提取过程和使用CTC技术或基于注意的解码器(CTC/attention)从语音嵌入中预测字符或音素序列的过程。

我们的语音编码器-解码器的过程如图2所示。我们首先通过1-D CNN传递输入语音特征,然后以2的步幅进行1-D max pooling,结果是与原始语音相比有一半的时间步长,因为我们想在下游更快地训练循环神经网络(RNN)。

然后,我们使用门控循环单元(GRU)提取语音嵌入,这是一个可变长度矩阵,但不是固定长度向量。我们已经获得了语音嵌入,它们将用于下面的KWS过程。

然而,为了使这些嵌入更易于解释,我们采用CTC技术或基于注意力的Seq2Seq方法引导语音编码器从输入语音中提取相关信息。注意,在进行KWS时,我们只需要计算给定输入语音特征的语音嵌入,而完全忽略图2中的CTC/Attention-GRU-解码器。

描述上述过程,请将输入语音特征表示为

经过1-D CNN和1-D max pooling的处理,我们得到X={x1x2,…,xT/2}。

语音嵌入Es={e1e2,…,eT/2}由GRU-编码器计算,GRU-编码器是一个多层单向GRU-RNN,后跟一个具有ReLU激活函数的全连接层,如下所示:

注意:ReLU激活函数后,et>0,1≤t≤T/2。

在获得Es后,具有全局注意力的注意力-GRU-解码器Attention-GRU-Decoder在每个解码时间步t,计算Es中每个es的注意权重:

式中,αt(s)表示在第t个解码时间步长的s语音嵌入的注意权重,ht为在t时注意GRU解码器的隐藏状态,分数(a,b)为向量a和b的点积。

然后,在每个解码时间步t,上下文向量ct是语音嵌入的加权和,可以通过

 

最后,通过连接上下文向量ct和隐藏状态ht,并通过目标语言中所有可能的字符或音素上的softmax激活的完全连接层(FCL)来获得对t时间步长ot的预测。这可以用

查询编码解码器

Fig. 3. 查询嵌入提取的过程。

与语音编码器-解码器一样,为了从输入查询中提取查询嵌入,我们在系统中使用了查询编码器-解码器,这是一个字符序列,并使嵌入更易于解释。查询编码器-解码器的结构如图3所示,这是一种Seq2Seq方法。

我们首先通过查询编码器将输入查询转换为查询嵌入,并尝试通过查询解码器预测原始输入字符序列或相应的音素序列。如果解码器能够很好地从中预测字符或音素序列,则查询嵌入包含拼写或发音信息。具体来说,编码器和解码器都是具有相同超参数的多层GRU-RNN,以编码器中最后一个时间步的隐藏状态作为查询嵌入,解码器可以将其用作初始状态。和语音解码器一样,在执行KWS时不考虑查询解码器。

以上的整个过程可以表示为

and

其中eq是查询编码器提取的查询嵌入(或查询特征向量),xq是输入查询(一个字符序列),yq是预测的字符序列。然后,我们可以最小化yqxq之间的交叉熵损失,从而引导编码器从输入查询中提取健壮鲁棒的嵌入。

KWS注意力机制 

语音嵌入是一个矩阵,它保存了时间维度,我们想知道哪个部分包含要搜索的关键字。这就是我们为KWS引入注意力机制的原因。注意力机制的结构如图4所示。

Fig. 4. 注意机制的结构。语音嵌入和查询嵌入首先连接在一起(我们应该在连接之前首先重复查询嵌入,由于简单起见,图中没有显示出来)。Bi-LSTM和MLP分别表示双向LSTM RNN和多层感知器。

首先,为了连接语音和查询嵌入,我们应该重复后者,使其与前者的时间长度相同,如(8)所示

其中eq是由查询编码器提取的查询嵌入(或查询特征向量),在Eq∗中有T/2个eq向量。

然后,我们沿着特征维数连接EsEq∗,即,其中Esq是连接的结果。然后,我们将Esq传递给双向LSTM-RNN,以便获得。最后,最后一层是一个具有sigmoid激活和一个单一神经单元的FCL,如图所示 

 

其中α=a1,a2,...,aT/2是注意力权重向量,而ei∗,1≤i≤T/2是Esq∗中的向量。

总之,给定语音和重复查询嵌入、Eseq注意力机制的整体功能可以描述为

 

其中α={a1,a2,,aT/2}和at(0,1)表示第t个时间步长的注意权重,Es、eq分别是语音和查询嵌入。at的值表示注意力机制认为关键字出现在时间步长t的可能性。我们将在实验部分演示,注意力机制可以大致定位关键字的时间区域

然而,在获得注意力权重后,我们无法做出最终决定,但关键词的时间长度仍然未知。换句话说,问题是我们如何在不知道关键字长度的情况下,通过语音嵌入、查询嵌入和注意权重得到KWS结果。这将由新的能量记分器解决,它可以同时考虑上述三个项目。

能量得分器(Energy scorer

到目前为止,我们已经得到了语音嵌入Es、查询嵌入Eq和注意权重α。注意权重表示关键字在每个时间步中出现的可能性,但正如我们在上一节中所说,我们仍然无法做出最终决定,因为我们事先不知道关键字的持续时间

分数范围从0到1,表示关键字出现在输入语音中的概率。其结构如图5所示。

Fig. 5. 能量记分器的结构。首先,我们根据注意权重计算语音嵌入的加权和,以获得上下文。然后计算上下文和语音嵌入的能量比(energy ratio)。最后,我们通过比较能量比和通过MLP传递查询嵌入计算的阈值来做出最终决定。

我们首先计算上下文向量,它是根据注意权重α={a1,a2,…,aT/2}的语音嵌入Es={e1,e2,…,eT/2}的加权和,通过

其中at ∈ (0,1)和c表示上下文向量。我们将上下文向量的能量定义为

其中at ∈(0,1),t,t1,...,t2=1,2,...,T/2。显然,Energyc有一个上限

其中sum(A)表示矩阵A中元素的总和。上下文向量和语音嵌入之间的能量比r,

表示上下文向量在语音嵌入中的能量比例。

能量比越大,注意力机制的权重就越大,关键词出现在输入语音中的可能性就越大。我们在这里应用了能量的概念,使其对噪声更加鲁棒。众所周知,噪声的能量通常比真实语音的能量小。因此,如果注意力机制为充满噪音的时间步输出一些较大的权重,与Energys相比,Energyc可能不够大,从而导致错误的警报决策。

最后,最后一件事是通过一个MLP传递查询嵌入,并获得一个从0到1的阈值rth,以便我们可以将其与能量比r进行比较,这意味着我们为每个查询生成一个特定的阈值。这背后的原因是,查询嵌入可以通过查询编码器几乎精确地转换为原始输入字符序列或相应的音素序列,这意味着几乎所有有用的信息都被压缩到查询嵌入中。

因此,我们通过以下方式做出最终决定:

置信度得分为(r− rth +1)/2,产生从0到1的值。我们计算r和地面真值目标(0或1)之间的二元交叉熵损失来训练我们的能量分数。同时,在最后一节中,我们根据地面真实目标,利用二元交叉熵训练注意力机制。最后的损失函数写为

其中,yt和ya分别是最终决策和注意边界的基本事实,β是一个可以手动调整的超参数。

文章贡献

  1. 我们通过应用更合适的(用于查询编码器-解码器的)网络结构来提高恢复精度;
  2. 通过将语音和查询嵌入到字符或音素序列中,编码器可以分别从输入语音和查询中提取拼写或发音信息;
  3. 应用了两种语音编解码器,并对其性能进行了比较。
  4. 我们提出了一种注意力机制和一种新的能量记分器,这是比MLP更复杂的组件。

前提知识

基线系统

文献的基线系统它由三部分组成,包括RNN声学自动编码器、CNN-RNN字符LM和KWS系统

为了处理输入语音,他们应用了RNN声学自动编码器的编码器部分,该编码器将语音特征作为输入,并将其压缩成一个固定长度的向量,称为语音嵌入。之后,语音嵌入将通过解码器部分获得预测

与语音处理一样,输入查询也将被压缩成一个称为查询嵌入的固定长度向量,由CNN-RNN字符LM的编码器部分提取。然后,他们试图从解码器部分嵌入的查询中恢复原始输入查询。

最后,给定语音和查询嵌入,KWS系统(一个MLP)将它们的串联作为输入,并给出介于0和1之间的最终置信度分数,指示关键字出现在输入语音中的概率。

本文改进

首先,我们认为时域对语音信号至关重要,因此我们试图将其保留在语音嵌入中,从而产生矩阵的语音嵌入。

此外,试图恢复原始输入的语音特征可能会导致编码器部分提取嵌入,而不会造成太多的信息损失。然而,我们认为些信息是多余的。

唯一重要的是,考虑到下游的KWS,与输入语音对应的字符或音素序列。因此,我们尝试通过语音解码器将语音嵌入转换到字符或音素序列中,从而引导编码器从输入的语音中提取拼写或发音信息

至于查询编码器-解码器,我们发现Seq2Seq模型在基线系统中是更有效的CNN-RNN字符LM。

数据集

我们使用IARPA Babel-102、Babel-103、Babel-104和Babel-105数据集(分别是阿萨姆语、孟加拉语、普什图语和土耳其语Assamese, Bengali, Pashto, and Turkish)来训练和评估模型。

为了在低资源条件下展示性能,我们只使用LimitedLP,它包含每种评估语言约10小时的训练数据。为了简单和定位准确,我们将输入语音切割成1秒的片段,并根据原始注释和数据集中的词汇,通过相应的字符或音素序列来标记每段语音。我们可以将其视为一个滑动窗口,在评估时,测试语音可以以适当的搜索窗口步幅每秒输入到模型中,以便在语音继续时检测和定位关键词。给定输入的语音片段和相应的字符或音素序列,我们可以训练我们的语音编码器-解码器。

对于查询编码器-解码器,我们使用字符序列作为输入,或者使用相应的音素序列作为标签进行训练。

如前所述,每段语音都对应一个字符序列和一个音素序列,因此每一个单词或短语都可以作为对这段语音的肯定查询。为了产生否定的查询,我们随机选择不出现在该词条中的单词和短语,在这里我们也应该考虑所有单词和短语在训练语料库中的分布。

换句话说,一个词或短语作为肯定查询出现的频率越高,它作为否定查询出现的频率就越高。至于注意机制的训练,对于一段语音中的每个查询,我们从Kaldi获得对齐,并为语音嵌入的每个时间步生成标签序列(0和1分别用于否定和肯定情况)。

结果

基线系统使用的指标是精度(ACC),它是阈值的函数。为了将阈值边缘化,我们还使用曲线下面积(AUC)(Bradley,1997)作为评估模型的另一个指标。

表1  ACC和AUC的KWS性能,以及针对阿萨姆IV和OOV的不同语音解码器。

从表1中,我们可以看到,使用CTC或Attention Seq2Seq的KWS性能大致相同,并且它们都优于基线系统。

表4 用于其他三个语言数据集的(具有CTC和注意Seq2Seq语音解码器-解码器)ACC的KWS性能。

5 用于其他三个语言数据集的(具有CTC和注意Seq2Seq语音解码器-解码器)AUC的KWS性能。

如表4和表5所示,我们按照Kaldi方法训练SGMM模型,以便与基于ASR的常规方法进行比较。然而,对于基于ASR的方法,我们只计算准确度指标(AUC)

我们发现,性能与阿萨姆语数据集上的性能大致相同。值得注意的是,我们还注意到,基于ASR的方法在低资源条件下(培训时间少于10小时)效果不佳。此外,请注意,所有提出的模型都显著优于基准模型。根据各种语言数据集的结果,所提出的模型不仅适用于阿萨姆语,也适用于孟加拉语、普什图语和土耳其语。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值