希尔贝壳与出门问问联手更新WeNet

2021-03-31


近日,北京希尔贝壳科技有限公司(AISHELL)与出门问问联手,在 WeNet 中更新了对 AISHELL-2 数据集的支持,开放数据准备、训练和解码测试和部署等流程,并开放基于 AISHELL-2 的预训练模型。


AISHELL-2是希尔贝壳和AISHELL Foundation创建的开源数据库,截至当下,AISHELL-2依旧是目前全球最大的语音技术中文开源数据库,搭配了Kaldi的语音识别系统方案。数据规模达1000小时,由1991名来自中国不同口音区域的说话者参与录制,经过专业语音校对人员转写标注,通过了严格质量检验,数据库文本正确率在98%以上,录音文本涉及唤醒词、语音控制词、智能家居、无人驾驶、工业生产等12个领域。

下面是本次更新数据集实验的具体内容:


  数据处理

在 AISHELL-2 数据中已整理好 wav.scp 和 trans.txt 文件,其中 wav.scp 中保存了 utterance ID 与对应的音频的相对路径,trans.txt 中保存了 utterance ID 与对应的标注文本。与 AISHELL-1 不同的是 AISHELL-2 中存在部分中英混的数据,英文部分使用与中文相同的字进行建模,首先需要把英文字母统一转化为大写,然后将英文单词间的分隔符(空格)替换为特殊的字符(▁)并作为建模单元之一,最终使用标注文本中的中文字、大写英文字母以及▁作为训练的字典,并在字典中加入训练所需的 blank、sos、eos 等标签。


  模型结构

模型使用 Joint CTC/Attention 结构。输入特征为80维 FBank,并用 SpecAug 对特征进行增强,然后经过 Convolution SubSampling 将采样率缩小为原来的4倍;Encoder 使用12层 Transformer encoder layer,每个 Block 中 Attention 维度为256,Feedforward 维度为2048;Decoder 包含了两种方式,一种是 CTC Decoder,另一种是 Attention Decoder,CTC Decoder 使用一层 Linear layer 将 Encoder 的输出转为词典大小计算 CTC Loss,Attention Decoder 包含了6层 Transformer decoder layer,每层维度与 Encoder 相同,同样需要通过一层 Linear layer 将 Attention Decoder 的输出转为词典大小计算 Attention Loss,最终使用 Adam optimizer 对 CTC 和 Attention Loss 联合进行优化。在训练中使用 Dynamic chunk[2]  的方式训练了一个 streaming 的模型。


  实验结果

在 WeNet[3]中实现了4种解码方式,attention decoder ,ctc greedy search、ctc prefix beam search 和 attention rescoring。使用不同 chunk 大小在 AISHELL-2 测试集上进行测试,在 test_ios 测试结果如下表:

和其他语音识别工具在 test_ios 测试集上的对比:

希尔贝壳作为全球领先的人工智能大数据服务商,一直致力于共享数据,助力人工智能发展,实现人工智能民主化。


  参考资料

[1] AISHELL-2: http://www.aishelltech.com/aishell_2

[2] Unified Streaming and Non-streaming Two-pass End-to-end Model for Speech Recognition: https://arxiv.org/pdf/2012.05481.pdf

[3] WeNet: Production First and Production Ready End-to-End Speech Recognition Toolkit: https://arxiv.org/pdf/2102.01547.pdf