文章图片
图二:编辑对齐(Edit Alignment)算法
基于细粒度的输入输出对应关系 , 研究员们针对性地设计了快速纠错模型 FastCorrect 。 模型包含了三个主要部分——编码器、长度预测器和解码器(如图三):
1. 编码器可以学习输入文本的特征 , 这些特征会被长度预测器和解码器利用 。
2. 长度预测器基于编码器的输出 , 预测每个输入单词有多少个输出单词与之对应 , 即 Duration 。 如果输入单词 Duration 为0 , 那么没有输出单词与之对应 , 它也将被删除 , 如果 Duration 大于1 , 那么有多个输出单词与之对应 , 意味着解码器需要插入数个单词 。
3. 解码器除了利用编码器的输出之外 , 还会基于长度预测器的结果 , 调整输入文本的长度 , 使之和输出文本长度一致 。 将长度调整一致后 , 解码器可以并行地同时解码出所有单词 。
文章图片
图三:非自回归语音纠错模型结构
实验表明(如图四) , 在开源学术数据集 AISHELL-1 和微软内部的产品数据集上 , FastCorrect 都取得了跟自回归模型几乎相同的纠错能力 。 模型的衡量准则为纠错后的词错误率(Word Error Rate , WER)和相对错误率下降(WER Reduction) 。 相比于自回归的模型 , FastCorrect 的解码速度可以提升7-8倍 。 相比于其它非自回归的基线模型 , FastCorrect 取得了更好的纠错精度 。 从实验结果可以看出 , FastCorrect 很好地解决了语音识别模型中纠错模型的高延迟问题 。
文章图片
图四:在 AISHELL-1 和微软内部的数据集上 ,
FastCorrect 和基线方法在词错误率和解码延迟上的对比 。
FastCorrect 2 :基于多输入的快速纠错模型
FastCorrect 已经取得了不错的性能和较大的加速比 , 那么还有没有进一步的提升空间呢?由于语音识别模型往往会在语音模糊不清或者存在同(近)音字的情况下出错 , 所以如果纠错模型能够得到这方面的信息 , 那么就可以在很大程度上帮助纠错模型进行错误检测 。
通过分析语音识别模型的输出 , 研究员们发现语音识别模型在进行 BeamSearch 解码的时候 , 会得到多个相似的结果 , 这些结果的大部分文本相同 , 只在有限的几个位置不同 , 而这些位置正是语音识别模型不确定的位置 , 也往往是模型比较容易出错的位置 。 通过多个识别结果的相互印证不仅能够得到语音识别错误位置的信息 , 还能得到正确单词的读音信息(例如 , 从不同的词 cat、hat、mat 可以推断出纠错后的词大概率会以 /?t/ 这个音结尾) 。
为了能够让纠错模型更好地利用多输入(多个语音识别结果)信息 , 研究员们对 FastCorrect 的对齐算法和模型结构进行了一系列调整 。
首先是对齐算法 。 考虑到语音模型的多个输出可能长短不一 , 如果简单地通过补零来让这些输出拥有同样的长度 , 那么会导致每一个对齐的位置 , 单词不相同(如图五) , 读音也不相同 。 这样的话 , 模型将很难从“错位”的输入中得到错误位置和正确单词读音的信息 。 为了解决上述问题 , FastCorrect 2 在计算编辑对齐的时候考虑了输入输出的读音相似度 , 在选择“不变”操作最多的编辑路径的基础上 , 选择读音相似度最高的编辑路径 , 并根据读音相似度来插入“空”单词 。 这样得到的对齐结果在每个位置上的单词相似度和读音相似度都很高 , 可以很大程度上帮助模型进行错误检测(如果一个位置上包含不同的单词)和估计正确单词的读音(如果一个位置上的不同单词读音相同) 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
