conformer是将一种transformer和cnn结合起来,对音频序列进行局部和全局依赖都进行建模的模型。目前基于transformer和卷积神经网络cnn的模型在ASR上已经达到了较好的效果,Transformer能够捕获长序列的依赖和基于内容的全局交互信息,CNN则能够有效利用局部特征,因此针对语音识别问题提出了卷积增强的transformer模型,称为conformer,模型性能优于transformer和cnn。目前提供版本支持在NPU和GPU上使用conformer模型在aishell-1数据集上进行训练/测试和推理。
Conformer整体结构包括:SpecAug、ConvolutionSubsampling、Linear、Dropout、ConformerBlocks×N,可见如下结构图。
ConformerBlock结构(N个该结构):Feed Forward Module、Multi-Head Self Attention Module、Convolution Module、Feed Forward Module、Layernorm。其中每个Module都是前接一个Layernorm后接一个Dropout,且都有残差链连接,残差数据为输入数据本身。
马卡龙结构:可以看到ConformerBlock神似马卡龙结构,即两个一样的Feed Forward Module中间夹了Multi-Head Self Attention Module和Convolution。

| model | decoding mode | CER |
|---|---|---|
| conformer | ctc greedy search | 5.05 |
| conformer | ctc prefix beam search | 5.05 |
| conformer | attention decoder | 5.00 |
| conformer | attention rescoring | 4.73 |
有关如何训练和推理模型的信息,请查看MindAudio GitHub 仓库.