(本文阅读时间:10分钟)
语音识别的纠错实际上是一个文本到文本的任务,模型训练的输入为语音识别结果文本,输出为真实文本。在自然语言处理领域(如机器翻译和文本编辑),已经有一些非自回归的快速模型被提出。但初步实验结果(如图一)显示,简单地将这些模型应用到语音识别的纠错任务中,并不能取得令人满意的结果。经过对语音识别的分析,研究员们发现语音识别中的错误比较稀疏,通常错误的单词数不到总单词数的10%,而模型必须精准地找到并修改这些错误,同时还要避免修改正确的单词,这是语音识别的纠错任务中最大的挑战。而机器翻译中非自回归模型的主要问题是修改了太多原本是正确的单词,模型修改了原有错误的同时又引入了较多新的错误,因此无法提升语音识别的精度。
图一:FastCorrect 和基线方法的错误检测率和错误改正率对比
考虑到语音识别的纠错输入输出的对应关系是单调的,所以如果可以在词的级别对齐输入和输出,就可以得到细粒度的错误信息:哪些词是错误的,这些错误的单词应该怎样修改。基于两个文本序列的编辑距离,研究员们设计了编辑对齐(Edit Alignment)算法(如图二)。给定输入(语音识别结果)和输出(真实文本),第一步是计算两个文本的编辑距离,然后可以得到数条编辑路径(Edit Path),路径中的元素为增加/删除/替换/不变四种操作之一。为了避免修改正确单词,包含“不变”操作最多的编辑路径会被选择。最终,基于编辑路径可以得到:对于每个输入的单词,哪些输出的单词与之对应。如果对应的输入输出单词不同,那么就表明输入单词是错误单词。
图二:编辑对齐(Edit Alignment)算法
图三:非自回归语音纠错模型结构
实验表明(如图四),在开源学术数据集 AISHELL-1 和微软内部的产品数据集上,FastCorrect 都取得了跟自回归模型几乎相同的纠错能力。模型的衡量准则为纠错后的词错误率(Word Error Rate,WER)和相对错误率下降(WER Reduction)。相比于自回归的模型,FastCorrect 的解码速度可以提升7-8倍。相比于其它非自回归的基线模型,FastCorrect 取得了更好的纠错精度。从实验结果可以看出,FastCorrect 很好地解决了语音识别模型中纠错模型的高延迟问题。
图四:在 AISHELL-1 和微软内部的数据集上,
FastCorrect 和基线方法在词错误率和解码延迟上的对比。
FastCorrect 已经取得了不错的性能和较大的加速比,那么还有没有进一步的提升空间呢?由于语音识别模型往往会在语音模糊不清或者存在同(近)音字的情况下出错,所以如果纠错模型能够得到这方面的信息,那么就可以在很大程度上帮助纠错模型进行错误检测。
通过分析语音识别模型的输出,研究员们发现语音识别模型在进行 BeamSearch 解码的时候,会得到多个相似的结果,这些结果的大部分文本相同,只在有限的几个位置不同,而这些位置正是语音识别模型不确定的位置,也往往是模型比较容易出错的位置。通过多个识别结果的相互印证不仅能够得到语音识别错误位置的信息,还能得到正确单词的读音信息(例如,从不同的词 cat、hat、mat 可以推断出纠错后的词大概率会以 /æt/ 这个音结尾)。
为了能够让纠错模型更好地利用多输入(多个语音识别结果)信息,研究员们对 FastCorrect 的对齐算法和模型结构进行了一系列调整。
首先是对齐算法。考虑到语音模型的多个输出可能长短不一,如果简单地通过补零来让这些输出拥有同样的长度,那么会导致每一个对齐的位置,单词不相同(如图五),读音也不相同。这样的话,模型将很难从“错位”的输入中得到错误位置和正确单词读音的信息。为了解决上述问题,FastCorrect 2 在计算编辑对齐的时候考虑了输入输出的读音相似度,在选择“不变”操作最多的编辑路径的基础上,选择读音相似度最高的编辑路径,并根据读音相似度来插入“空”单词。这样得到的对齐结果在每个位置上的单词相似度和读音相似度都很高,可以很大程度上帮助模型进行错误检测(如果一个位置上包含不同的单词)和估计正确单词的读音(如果一个位置上的不同单词读音相同)。
图五:简单补零和读音相似度对齐的对比,
可以看出 FastCorrect 2 在每个位置上的单词一致性更高。
图六:FastCorrect 2 模型结构
实验表明,在开源学术数据集 AISHELL-1 和微软内部的产品数据集上,FastCorrect 2 相对于 FastCorrect 都取得了较大的提升(如图七),而且模型的提升会随着输入的增多而不断增大。
图七:在 AISHELL-1 和微软内部的数据集上,FastCorrect 2 和基线方法在词错误率和解码延迟上的对比。
FastCorrect 系列工作的代码已经开源,开源链接:
https://github.com/microsoft/NeuralSpeech
https://github.com/microsoft/NeuralSpeech/tree/master/FastCorrect
https://github.com/microsoft/NeuralSpeech/tree/master/FastCorrect2
目前,研究员们正在研发 FastCorrect 3,在保证低延迟的情况下,进一步降低语音识别的错误率。同时,FastCorrect 系列工作也将被应用于微软 Azure 的语音识别技术中,为用户构建更好的语音识别服务。
论文链接:
FastCorrect:Fast Error Correction with Edit Alignment for Automatic Speech Recognition
https://arxiv.org/abs/2105.03842
FastCorrect 2:Fast Error Correction on Multiple Candidates for Automatic Speech Recognition
https://arxiv.org/abs/2109.14420
你也许还想看: