一、同传翻译技术背景以及面临的一些挑战
同传翻译任务是要把源方向的音频翻译成目标方向的文本。该技术主要有两个应用场景:离线语音翻译场景和同传翻译场景。这两个场景最大的区别在于信息量。
场景 | 区别描述 |
同传翻译 | 实时互动,所以只能获取到当前音频流,不能有效获取全量上下文的信息 |
语音翻译 | 已经获取整个音视频的全文的信息 |
语音翻译/同传翻译领域主要有两种技术路线:端到端的技术方案和级联的技术方案。学术界多以端到端的系统为研究方向。端到端的技术方案是直接从源语音到目标的文本生成。端到端的语音翻译模型训练依赖二元数据组集 <源端音频,目标端文本>,但这样的数据对只有万级别的数据量,不支持在工业界完整地落地。所以工业界的语音翻译系统还是以级联的这种技术方案为主。级联的技术方案包含两个模块ASR和MT。ASR把源端的音频先识别为源端的文本,然后MT把它变成目标端的文本。
级联的方案依赖三元数据组集<源端音频,源端文本,目标端文本>。源端音频到源端文本用到ASR模块,而源端文本到目标端文本用到翻译模块。这两个模块的数据量是很大的。另外,在真实场景中,还有很多的单语文本数据/无标签音频做MT/ASR的增强训练以提升质量。
1、ASR技术
ASR的模型结构可以分成音频特征抽取和文本生成两个模块。
音频特征抽取模块主流的提取方式为Transformer和Conformer。Conformer是在Transformer基础上进行改进,加入了CNN模块。
文本生成模块最经典的生成方式是CTC。CTC将音频特征输入,一次性解码所有文本。第二种生成方式是AED,即token by token的自回归式生成,直到生成一个结束符号。
根据场景划分,ASR可以分成离线解码和流式解码两种。其中,流式解码是学术界的研究热点,并且通常会假定一种没有字符跳变的理想情况。目前,有三种技术方向。第一个方案是Transducer系列,如RNN-T,Transformer-T等。第二个方案对Attention模块引入Chunk-wise的改造。在提取音频特征时,让后面的和前面的信息在不同的chunk之间进行隔断,让前面chunk的特征信息不依赖于后面chunk信息,从而保证在一个chunk内解出来信息不会发生跳变。近期比较热门的研究是incremental decoding的方案。这种方案采用离线模型流式化改造的解码策略,因此不需要改变模型或者专门训练一个流式的模型。
2、MT技术
MT领域目前以Transformer模型为主。Transformer是一个标准的解码器-编码器的结构。在工程上,有两个特别有效的策略可以进行模型加速或质量提升。第一个策略是加深模型维度,Deep Transformer。众所周知,模型的参数量越大,效果和质量越好。但是大模型的弊端在于计算量特别大。为了解决这个难点,东北大学-小牛翻译团队提出Deep Transformer结构。通过Layer Norm前置的方式保证可以稳定的叠加模型深度,最终提升质量。从标准的6*6模型,可以加深到35层或者更多层。因为Transformer是并行式的解码,所以在保证模型的宽度时,只加深网络的深度不会带来特别多额外的计算量。第二个策略是一种数据增强的方案,Back Translation。翻译技术依赖于对齐的原文本和目标文本数据,但是对齐的数据是稀缺的。而另一方面,一些大语种比如英文,能从网上找到上千万的单语数据。那通过一个反向的翻译模型把单语构造成一个伪平行语料,然后结合原始真实平行语料进行训练。这样能明显提高翻译质量。
机器翻译最近的研究方向是解码策略。Transformer是自回归式(Autoregressive,AR)解码策略。而非自回归式(Non-Autoregressive, NAR)的解码策略可以提高解码速度,一次性生成结果。非自回归生成在机器翻译的作用,类似于CTC在语音翻译的作用。非自回归式的生成的不足之处是没有上下文的依赖,一些比较热的研究方向是通过迭代式生成或者使用AR模型当teacher模型进行蒸馏来提升它的质量。
我们团队在这方面也有一些进展。
第一个是HI-CMLM模型,对CMLM的改进,通过迭代式生成目标文本。
第二个是Diformer模型。这个模型是AR和NAR策略的大一统,将解码方向通过direction embedding融合到decoder中,从而可以任意方向解码。
3、语音翻译或者同传技术里面所遇到的挑战
系统的难点跟每一个单点技术的难点息息相关。
单点技术挑战
ASR准确性是工业界和学术界一直在解决的问题。另外一个问题是MT领域风格。翻译软件在开放的领域数据集上的训练涉及到领域迁移的问题。比如技术论坛会议有一些特别的翻译的风格和一些特殊词汇。这个通用模型差异需要领域风格的迁移。
系统的挑战
第一个是级联错误放大问题。转录结果的错误从源端的文本传到下游任务,可能会引起误差放大。
第二个问题是上下文一致性的问题。前段时间和后段时间出现同样词时,期望ASR和翻译的结果是一致的。ASR的一致性的问题通常会归到long-form transcript方向。在MT领域,一般是把它归为document-level 方向。
同传技术挑战
同传场景因为其对实时性的特定要求又有额外的技术挑战。
首先翻译质量越高,对上下文的信息要求越多,延迟会越高。但是同传场景对实时性要求又很高。所以同传策略考虑质量和实时性的平衡问题。
第二个是跳变的过程。从用户体验的角度,先解码的结果有一些错误,可以通过re-transcript / re-translation 来修正,但是如果有大量修正,用户体验会很差。
二、同传的这个项目架构的设计和策略
我们的同传架构有两个大的分支:语音流到语音流(speech to speech)和语音到文本(speech to text)。两个比较核心的模块是ASR服务和MT服务,除此之外还有TE(Text Editor)基于文本编辑服务和干预服务,使结果更加鲁棒。
经常面临的问题是领域的ASR模型训练。比如某个会议或论坛的场景涉及到领域的模型,但是领域模型的数据是有限的,有限的数据其实很难有比较好的结果。一个解决方案是大数据集下做预训练然后迁移到这个领域的数据。有两个技术方向预训练大模型和领域的小模型。
1、预训练大模型
例如做一个多语言模型大模型训练时,把中文的数据和英文的数据混在一块,解决多语言之间的问题并且也能提高模型泛化能力。
训练策略是基于一个MindSpore深度学习训练框架,和D芯片等AI芯片的分布式的训练,因为存储和计算特别耗算力。
训练架构选择混合式结构。既支持CTC的解码也支持auto decoder解码,针对不同的下游任务有多元的选择。另一个是自监督训练架构。进行下游训练有一些策略。
2、领域小模型
训练策略是Fine-tune或Continue Training,进行增量的训练。如果直接进行增量训练,可能会出现过拟合情况而且训练的成本比较高。可以采用Domain Adapter的训练方式,把模型参数冻住然后训练少量层的参数。也可以使用Lora,通过矩阵分解训练两个比较小的参数,得到比较好的结果。只训练少量参数是在实践中验证过比较有效的方案。另一个策略就是Spec Augmentation,在频谱是增强样本的方式。这种增强方式在小数据领域迁移上面,经工程验证是非常有效的。因为它可以起到正则化的作用,提高整个模型的鲁棒性。
流式的场景例如同传场景存在过程态和终态的概念。
过程态或者流式解码在工程落地的时候采用CTC解码策略。因为流式场景特性需要快速的解码结果,所以采用一次性解码方式。
终态使用AED的解码方式,因为它有上下文的依赖性,生成文本结果更加流畅。采用两种不同的解码方会引入文本结果不一致的问题,又叫做跳变问题。在工程里比较有效的解决方法是使用蒸馏数据进行伪标签训练。
对一大批无标签的音频数据,先用离线的解码方式生成伪标签,然后基于这批伪数据对去训练流式模型,让流式解码拟合解码结果。这个蒸馏的方式已经被验证特别有效。
有效的ASR策略:
Ensemble-based ASR De-noise
领域迁移的问题涉及到各种各样领域的数据,但是最终目标领域或测试评价集是某一个领域,所以存在训练数据和验证集或者真实落地场景数据的领域差异问题。在公开演讲的场景,一些掌声或者笑声在里面,这些被定位空白音或者静音片段。这些片段在标准的Transformer解码或者AED等自回归式解码时,可能会产生乱码的情况,所以先要de-noise。不引入其他技术方案前提下,使用这种Robust模型的方式对这些音频去噪。
Context-aware Re-ranking for ASR
这个策略是要保持上下文一致性。首先按照片段去解码,然后对每个片段的转录结果生成beam。在有多个beam之后,从beam里面去筛选。
使用更大数据训练、重新打分和计算,然后去选择上下文更加一致性的结果作为最终的结果,有效得提高整个长序列文本的一致性。
ASR Domain Controlled Training & Decoding
Large Scale Pre-training & Domain Fine-tuning for MT
业界的领域迁移大方向为大数据+大模型。有一些开源模型如OpenAI Whisper训练数万小时。
多语言加多任务。多任务学习方式是提高鲁棒性的训练方式。ASR识别、Translation和语言检测任务融合做多任务学习。
无监督和自监督预训练模型。自监督是特别有效的方式但是训练成本很高,所以要平衡效果和成本。Meta提出来的wave2vec的对比学习.先在无标签全量的音频数据上做表征学习,然后下游ASR任务做fine-tuning。最近Meta的MMS和Google的USM类似于这样的训练方式。
多语言大模型需要大数据量。构建大数据量比较典型的有效方案有Back Translation和迭代式的方案等,从而增加这个目标端和译文端的多样性。翻译评价指标叫BLEU(Bilingual Evaluation Understudy。BLEU本质上是文本相似度的计算方式。有一个问题是数据增强策略之后指标确实提升了,但是人工对翻译的结果的感知并没有变化。因为领域里有翻译腔的问题,生成数据那倾向模型本身的bias。一个特别有效的减少bias的方法叫Text Style Transfer Back-Translation。
文本生成数据里面有翻译腔问题。一个策略是在目标文本和翻译文本之间应用文本迁移小模型。在构造伪数据的时候,小模型让风格迁移,额外增加文本多样性。在各个指标包括人工评价感知上都取得了明显的效果。
另外一个问题就是领域迁移。比如科技论坛和医疗论坛的专用词等跟通用场景景象是不太一样的。领域迁移训练流程涉及到一个从indomain 到outdoman包括数据的筛选、过滤以及训练的流程。领域迁移属于低资源训练,因为领域的数据一般都是受限的。一个最直观有效的策略就是R-Drop。在训练的时候随机drop out,生成多个结果后加一个KL约束使结果更加一致。本质上提升模型的鲁棒性。这种策略在低资源或者低数据量上是有效的。在训练大模型时没有特别明显效果并且跟一些方案比如模型的ensemble有一些潜在的冲突,不能同时有效。
机器翻译领域每年都会WMT比赛。去年的Biomedical Shared Task是一个典型的医疗领域的领域迁移的任务。工程里面特别常见的一些策略,最核心的是Continue Training under R-Drop。这是特别有效的手段。结合着数据过滤、Diversification、下游的Fine-tuning和BT能最终取得比较好的结果。这些方法可以在工程里实践落地。
在语音翻译的同传场景里,原文和译文的长度保持基本一致的时候,用户的体验上会有明显的比较友好的感受。这个策略定义为等长或者等距翻译。这个方式已经落地到真实场景。
去年等距的翻译比赛,有多种策略融合达到百分之96的准确率。策略包括Length Encoding,beam等。这些策略融合后能满足用户体验的诉求。比如智慧手表会收集来一些信息。如果手表的屏幕比较小,译文长度特别长,用户体验就会不好。
工程落地有意思的点就是TE服务。整个系统的构建里面最大问题在于级联错误放大。ASR错误会级联传下去,导致这块错误的累积放大。降低这种错误延续的一个方法是在ASR和MT加一个桥梁。这个模块叫TE服务,服务里面包含一些子服务。
首先是对ASR Output 做一些口水词的顺滑(Disfluency)。然后ASR的识别结果可能是有些错误,可以通过NLP文本的技术手段找到一些潜在的错误,并做修正(Correction)。接着是标点还原(Punctuation)。ASR是天然的不带标点,这和文本风格上的差异。翻译里面就带着文本和语音的停顿信息然后送到下游的标点还原的服务。这个大模型从数据维度角度去解决这个问题。比如在训练数据时,基于带标点和上下文的长音频长文本去训练。那可能TE服务不需要标点还原模块。
技术还是需要去积累。因为训练一个端到端的大模型时,在数据里面一定是有噪声的。数据噪声需要通过标点还原模型去过滤和修正数据。
一个纠错的无监督的框架。预训练模型已经学到了有效的信息,不需要应用错误纠正的model而是需要把大模型的能力用进来。经过验证这个策略能够得到一个比较好的纠错效果。它能比较鲁棒地找到特别不明显的低错问题。
标点还原目前不是一个难点问题。在大模型背景下,有Zero-Shot方式的一个标点还原的工作。
同传场景需要保证实时性。ASR和MT用极低的时延得到转录和翻译的结果。这里涉及到很多技术包括模型层面像蒸馏的小模型或者底层的推理加速。华为诺亚Bolt团队支持一些支持CPU量化等推理加速的技术手段。Effiency Task是翻译领域的任务,在Bolt框架里得到比较好的结果。推理加速能有效得缓解同传场景里遇到的问题。
应对挑战主要包括两个方向:面向用户场景和忠于用户体验。
面向用户场景
首先语音翻译可天然分成两个场景:离线的场景和流式的场景。不同的场景有不同技术方案。所以需要针对用户场景和领域场景,去做模型算法上的工作。
忠于用户体验
语音翻译不能只看BLUE等指标,还要关注到关键词不能错,否则会影响整个体验。工程落地的额外指标叫关键词F1值。提升关键词的准确性包括等长翻译最终的用户体验。
华为翻译目前是公司内部机器翻译能力的提供者。产品包括在内部微群和工具,对外也是在华为云上面应用。整个公司的底层由MindSpore框架和芯片来支持多模态同传翻译落地及优化。