1. 引述

考虑到语音识别模型往往可以给出多个备选识别结果,研究员们还进一步提出了 FastCorrect 2 来利用这些识别结果相互印证,从而得到了更好的性能。FastCorrect 1和2的相关研究论文已被 NeurIPS 2021 和 EMNLP 2021 收录。当前,研究员们还在研发 FastCorrect 3,在保证低延迟的情况下,进一步降低语音识别的错误率。

FastCorrect2是基于FastCorrect的,可以参考论文阅读笔记——FastCorrect

2. 存在的问题

由于语音识别模型往往会在语音模糊不清或者存在同(近)音字的情况下出错,所以如果纠错模型能够得到这方面的信息,那么就可以在很大程度上帮助纠错模型进行错误检测。

通过分析语音识别模型的输出,研究员们发现语音识别模型在进行 BeamSearch 解码的时候,会得到多个相似的结果,这些结果的大部分文本相同,只在有限的几个位置不同,而这些位置正是语音识别模型不确定的位置,也往往是模型比较容易出错的位置。通过多个识别结果的相互印证不仅能够得到语音识别错误位置的信息,还能得到正确单词的读音信息(例如,从不同的词 cat、hat、mat 可以推断出纠错后的词大概率会以 /æt/ 这个音结尾)。

为了能够让纠错模型更好地利用多输入(多个语音识别结果)信息,研究员们对 FastCorrect 的对齐算法和模型结构进行了一系列调整。

3. 对齐方式的改进

首先是对齐算法。考虑到语音模型的多个输出可能长短不一,如果简单地通过补零来让这些输出拥有同样的长度,那么会导致每一个对齐的位置,单词不相同(如下图),读音也不相同。这样的话,模型将很难从“错位”的输入中得到错误位置和正确单词读音的信息。为了解决上述问题,FastCorrect 2 在计算编辑对齐的时候考虑了输入输出的读音相似度,在选择“不变”操作最多的编辑路径的基础上,选择读音相似度最高的编辑路径,并根据读音相似度来插入“空”单词。这样得到的对齐结果在每个位置上的单词相似度和读音相似度都很高,可以很大程度上帮助模型进行错误检测(如果一个位置上包含不同的单词)和估计正确单词的读音(如果一个位置上的不同单词读音相同)。

在这里插入图片描述
FastCorrect2是对语音模型的多个输出候选都做了对齐。

我们是通过计算token match score和pronunciation similarity score(语音相似度)来选择对齐方式的。具体地说,token matching score是所有相同的位置的数量;路径的发音相似性得分是所有token pairs的发音相似性得分之和,定义为其音素序列之间编辑距离的负值;首先选择token match score最高的路径,然后从中选择pronunciation similarity score最高的路径;在选择路径时,token match score比pronunciation similarity score具有更高的优先级,因为同一个token具有相同的发音。

以上一张图为例,在子图(a)中展示了第一个候选“B B D E F”和第二个候选“b B C D F”得对齐过程,其中每个字母代表了一个token,且我们定义“b”与“B”是不同的token但是是有相似发音的token。我们枚举了两个候选之间拥有最小编辑距离的所有编辑路径(我们可以计算出两个候选的最小编辑距离是3,然后就按照这个距离枚举了两个路径),然后我们计算了每条路径的match score和pronumciation similarity score,然后我们首先选择拥有最高token match score的路径,接下来在选中的路径里再选择拥有最高pronunciation similarity score的路径。

以路径Z为例,token matching score G = 3,因为在这个路径下两个候选有三个位置是一样的(“B D F” ),一条路径的pronunciation similarity score P 是每个位置的pronunciation similarity score之和。每个位置的pronunciation similarity score在图上有写出来。

b子图展示了这篇文章提出的对齐方法和简单对齐方法(在右边padding)的比较。可以看到这篇文章所提出的对齐方法可以在每个位置保持标记和发音的一致性(在第四个位置上简单对齐方法有3个不同的token“E D F”)。

4. 模型结构

对于模型结构,研究员们也进行了改动,并引入了一个新模块:选择器(如下图)。

  • 在编码器之前,新引入了一个 PreNet,用来融合每个位置上不同单词的信息。

  • 长度预测器需要对每个候选的每一个单词,预测 Duration。

  • 选择器则用来选择一个输入,这个输入会被调整(基于 Duration)并被送进解码器,选择器的训练目标是预测解码器的损失,因此选择器选择的是解码器损失最小的,也就是最容易被解码器修改的输入。如下图所示的Candidate Predictor,它会选出loss最小的候选,经过调整作为Decoder的输入,就像图中的第二个候选loss为0.38,是最小的,所以选中了第二个候选,调整的话是通过source和token duration来调整的,“b B C D 空 F”+“1 1 0 2 0 1” = “b B D D F”。
    在这里插入图片描述

这里进行了两次对齐,第一次是各个候选之间的对齐,用到的是上述改进之后的对齐方式,第二次是候选与target之间的对齐,用到的是Duration Predictor。因为候选对齐之后还是要与target对齐的。

5. Baseline System

我们使用了包括自回归结构的纠错模型和非自回归结构的纠错模型,由于FastCorrect 2利用了beam search候选,我们还将其与纠错和重新评分的级联pipeline进行了比较。

Baseline System包括一个自回归纠错模型(AR Correct),FastCorrect模型,和两个版本的级联pipeline:R+FC和FC+R。

这个自回归纠错模型(AR Correct)与FastCorrect 2的结构是一样的,除了没有候选预测器(candidate predictor)和长度预测器(duration predictor)。

FastCorrect模型与FastCorrect 2的层数和隐藏层大小是一样的。

两个版本的级联pipeline:1)R+FC,在这个pipeline中我们先对多个候选重新打分,然后选择其中一个候选进行纠错;2)FC+R,在这个pipeline中我们先对所有候选进行纠错,然后重新打分,选择分数最高的候选。

6. 效果

实验表明,在开源学术数据集 AISHELL-1 和微软内部的产品数据集上,FastCorrect 2 相对于 FastCorrect 都取得了较大的提升(如图七),而且模型的提升会随着输入的增多而不断增大。

在这里插入图片描述
注:这篇博文大部分的描述是直接引用微软公众号的,只是对一些没展开的点做了自己的解读,链接如下:https://mp.weixin.qq.com/s/5NqPMmpQjCOoyYHcz4luwA

论文链接:
https://arxiv.org/abs/2109.14420

开源代码:
https://github.com/microsoft/NeuralSpeech
https://github.com/microsoft/NeuralSpeech/tree/master/FastCorrect2

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐