声明:平时看些文章做些笔记分享出来,文章中难免存在错误的地方,还望大家海涵。平时搜集一些资料,方便查阅学习(如转载,请标明出处):
TTS 论文列表:http://yqli.tech/page/tts_paper.html TTS
开源数据:http://yqli.tech/page/data.html
WeNet: Production Oriented Streaming and Non-streaming End-to-End Speech Recognition Toolkit
Unified Streaming and Non-streaming Two-pass End-to-end Model for Speech Recognition
Wenet系统是出门问问联合西北工业大学开发的面向产业界的端到端语音识别系统。该系统基于pytorch生态提供了开发,训练和部署服务等一条龙服务方案。
具体的具体文章链接:
https://arxiv.org/pdf/2102.01547.pdf
https://arxiv.org/pdf/2012.05481.pdf
代码:https://github.com/wenet-e2e/wenet
(最近一直研究ASR,我看的脑壳疼。相对于TTS来说,ASR太复杂了,尤其是GMM-HMM和DNN-HMM那套。等到阅读end-to-end方案的时候,感觉从地狱进入天堂,眼前一片光明。Wenet整体结构简单明了,提供了示例,适合初学者学习e2e的asr整个服务方案。本系统上线以来,已经获取800 star,受到业界的强烈关注。另外,我根据以上两篇文章对本系统进行解读,解读存在错误,还希望读者指出)
1 研究背景
端到端的ASR最近几年受到学术界和产业界的关注,诸如CTC, RNN-T,AED(attention based encoder-decoder)等等。但开发部署端到端的ASR需要解决一系列问题:1)streming problem;很多场景需要流式识别,比如同传。2)streaming和non-streaming的统一,使同一个模型同时支持该两种模式;3)production。即端到端ASR的产品落地方案。Wenet针对以上的问题,提供了很好的解决方案。
2 详细设计
针对streaming 和non-streaming,Wenet使用U2模型,即CTC/AED的混合模型。具体的系统架构如图1所示,CTC和AED使用共同的encoder,为了实现streaming方式,encoder就要实现增量式来编码(这个TTS也有增量式研究,但真正落地的感觉很少,主要效果太差,而且需要借助语言模型来预测后续语言序列),即使用部分context来编码。我们先看一下图2展示的encoder可采用的关注context的方案,(a)full attention就是关注整句话语境,这种方式为non-streaming,效果当然很好;(b)的left attention即只关注过去,是streaming的方式,效果较差。(c)即为本文提出的chunk attention,它关注本chunk以及过去的语境,及引入少量未来信息。另外我们需要分清该系统如何进行训练和推理。在训练系统时,每个batch随机在full attention和chunk attention之间进行选择,同时chunk size也随机选取,本方案即train by dynamic chunk size ,具体为公式2


另外训练的时候ctc和AED是同时进行训练,因此loss函数由该两部分组成,具体参考公式1。接下来说一下推理流程,我们选选取chunk size后,第一pass把shared encoder输出通过ctc decoder来生成N-best 的备选结果。第二pass要注意一下,该系统把ctc decoder生成N-best 的备选结果作为teacher-force输入到attention decoder进行rescoring,从而避免了AED的自回归解码过程。以上两个pass即U2的two-pass。最后把ctc和AEd的结果进行最后的计算,具体公式3好了,接下来就是整个系统结构,兼顾开发,训练和部署。具体参看图2所示。
3 实验
先看一下non-streaming的decoder效果,由第一个table1可知,rescoring方案的CER优于ctc和AED。当然第二个table 1是对比训练和推理都是full attention (M1)模式和Unified mode (M2)由结果可知,M1比M2好一些,但不支持streaming,rescoring方案的CER优于ctc和AED。下表对比static chunk 和dynamic训练方式,dynamic方案较好。


下表table2 和table3对比量化操作,量化操作在牺牲较小cer性能,提高较大RTF。


4 总结
Wenet系统是面向产业级支持streaming和non-streaming的ASR系统,为学术界和产业界研究E2E的ASR提供简单易学的工具。