近期,来自北京大学和腾讯AI LAB, ASR oteam的研究人员在主流端到端语音识别系统上进行了两点改进:(1)将LF-MMI准则用于端到端语音识别系统的训练和解码中;(2)使用词级别N-gram模型进行在线解码。集成上述两点的端到端模型在通用中文语音识别数据集AISHELL-1 test和AISHELL-2 test-ios上分别实现了4.18%和5.06%的字错误率(CER)。相关实验代码已开源。
相关论文:
将LF-MMI准则用于端到端语音识别系统的训练和解码(ICASSP 2022接收):
https://arxiv.org/abs/2112.02498

使用词级别N-gram语言模型进行在线解码(投稿于SPL):
https://arxiv.org/abs/2201.01995

代码开源:
https://github.com/jctian98/e2e_lfmmi
一、 将LF-MMI准则用于端到端语音识别系统的训练和解码
端到端语音识别系统的性能近年来取得了长足进步。当前,Attention-based Encoder-Decoder(AED)和Neural Transducer(NT)是两种常见的端到端语音识别模型。然而,训练这些模型的准则,如CE, CTC, Transducer Loss都只考虑最大化正确文本的后验概率,而不考虑那些具有竞争性的假设。
考虑竞争性假设的训练准则称为区分性训练准则。在DNN-HMM系统中,区分性训练准则的使用已经成为通行做法且能提供可观的性能提升。然而,仅有少数工作尝试将区分性训练准则引入端到端语音识别系统中,这些方法主要使用的是最小贝叶斯风险(MBR)准则。使用MBR准则将带来两个问题:首先MBR方法需要使用一个已经收敛的模型进行初始化和在线解码,因此具有复杂的工作流程,较低的训练效率和高额的显存占用;其次,这些方法都只考虑了训练过程,而不考虑解码过程。

图:将LF-MMI准则用于AED和NT系统的架构图。字符级CTC为选用。所有损失加权后进行联合优化
本项工作提出将LF-MMI准则(另一种区分性训练准则)应用于端到端语音识别系统中(主要是AED和NT两种系统)。在训练时,使用LF-MMI和其他非区分性训练准则进行联合优化。在解码时,由LF-MMI准则提供的依据将被用于集束搜索或者重打分。具体的,在AED集束搜索时,我们提出一种名为MMI Prefix Score的算法来进行联合解码;在NT系统的解码过程中,我们提出一种名为MMI Alignment Score的算法来进行联合解码。除了联合解码外,LF-MMI还可以用于解码后的Rescore环节,称为MMI Rescoring。为了将LF-MMI适配于英文任务,我们还提供了一种Lookahead机制保证MMI Prefix Score和MMI Alignment Score能够正常工作。
实验结果表明,基于LF-MMI的一致性训练和解码方法在AED和NT系统上都实现了性能提升。使用LF-MMI进行多任务学习能直接减小识别的字错误率。而使用对应的解码方法(MMI Prefix Score, MMI Alignment Score 和MMI Rescoring)将进一步带来性能提升。

表:使用LF-MMI一致性训练和解码实验效果
二、使用词级别N-gram模型进行在线解码
为了生成更加符合语言习惯的假设,端到端语音识别系统常和外部语言模型进行联合解码。中文的端到端语音识别系统常以字为建模单元。为了和端到端语音识别系统对齐,外部语言模型也常是字级别的。
然而,字级别的语言模型丢失了词级别的信息,进而限制了外部语言模型的能力:相较于单个汉字,中文词的语义更加单一、明确,从而更有利于语言建模。基于这一动机,这项工作提出了一种使用词级别N-gram语言模型与端到端语音识别系统进行联合解码的算法。
新的联合解码算法依旧使用经典的ShallowFusion作为集成外部语言模型的方法。不妨设
是解码中产生的字级别局部假设序列,其中仅有
是由语音识别系统产生的最新字符。ShallowFusion要求使用语言模型计算对数后验概率
。当使用字级别语言模型时,这一对数后验概率的计算是容易的。但当使用词级别语言模型时,上述概率则依赖于序列对数概率
的一阶差分:
。因此,使用词级别语言模型进行联合解码的关键在于计算序列概率
。
为了使用词级别语言模型计算
,首先需要将字序列转化为词序列。然而,将中文字序列转化为词序列存在多种可能。例如,字序列“我要去吃饭”既可以解释为词序列“我要去 吃饭”,也可以解释为词序列“我要 去吃饭”。为了充分考虑所有的可能的词序列,字序列将首先被转化为一个Lattice。自Lattice的起始状态到结束状态之间的每一条路径均代表一个唯一的词序列。为了减少不必要的路径,还要求每条弧上的输入标签均来自一个已知的词表。一个由字序列“孙悟空”构成的Lattice如图所示,其表达了“孙悟空”三个字转化为词序列的所有情形。弧“孙悟”因不是一个恰当的中文词(不在词表中)而不存在。

图:字序列“孙悟空”所构成的Lattice
词表为{“孙”,“悟”,“空”,“悟空”,“孙悟空”}
Lattice和词级别N-gram语言模型均可以被表示为有限状态接收机(FSA)。将上述两个FSA执行Intersect操作,将得到一个新的FSA。在此FSA上计算前馈分数(ForwardScore)将可以直接得到对数序列概率
。至此,我们实现了使用词级别N-gram语言模型对字级别局部假设进行在线打分。
在AISHELL-1和AISHELL-2上的实验结果表明,对于常见的两种端到端语音识别模型(Attention-basedEncoder-Decoder和NeuralTransducer),词级别N-gram所带来的提升一致的超过了各种字级别的语言模型。在AISHELL-1test和AISHELL-2test-ios测试集上,上述方法带来了4.18%和5.06%的字错误率。

表:在通用数据集上AED和NT系统使用词级别N-gram语言模型进行联合解码的结果
同时,在一个21k小时的中文语音识别数据集上,使用词级别N-gram语言模型将带来最高2%的绝对性能提升。

表:在21k小时中文数据集上NT系统使用较大规模词级别N-gram语言模型进行联合解码的结果
