一些我们关于端到端语音翻译的思考和尝试

语言: CN / TW / HK
导读:

截止至 2019 年,世界上共有 200 多个国家和地区,人们使用的语言数量也高达 7000 多种,其中还不乏上千种濒危语言或者是不成文语言 (unwritten language),语言不通往往是不同地区政治、经济、文化等交流的重要阻碍。

幸运的是,随着近年来机器翻译技术的快速发展,尤其是自 2017 年 Transformer 模型提出以来,基于神经网络的机器翻译方法渐渐受到更多关注并且已经应用到了各大商业机器翻译系统当中,大大减少了语言障碍带来的不便,促进了人与人之间的交流。但与此同时,随着互联网的发展,人们日常能获取到的信息也不再局限于文本,音视频形式如今同样成为信息传递的主要手段。因此,如何将语音信息翻译成不同语言的文本也是一个要攻克的难题。

语音翻译概述

语音翻译 (Speech Translation, ST) 就是将一种语言的语音翻译成另一种语言的文本。它有非常多重要且有趣的应用,例如:

视频自动字幕

大会同传

智能翻译硬件

如今,实用的商业语音翻译系统都是通过串接自动语音识别系统 (Automatic Speech Recognition, ASR) 和机器翻译系统 (Machine Translation, MT) 实现的,语音翻译的效果一定程度上随着语音识别和机器翻译技术的发展而提升。然而这类级联的系统往往会存在错误累积的问题,即语音识别错误会直接导致机器翻译结果出错。为了解决这个问题,随着近几年序列到序列建模 (sequene-to-sequence modeling) 方法在机器翻译和语音识别上的应用和发展[1-4],研究者也开始探索能够直接将音频翻译成文本的端到端 (end-to-end) 语音翻译技术。

语音翻译建模方法

级联语音翻译 (Cascade)

级联语音翻译系统就是先使用一个语音识别模块将音频识别成文本,再用一个机器翻译模块将文本翻译成不同的语言。这种方法的优势是可以利用大规模的语音识别数据和机器翻译数据分别将两个模块优化到极致。但是,语音识别的文本有以下一些特征或常见的错误:

  • 无大小写和标点信息
  • 存在口语现象,如语气词、重复等
  • 识别错误,如同音异形字识别错误、漏词等

因此在实际应用的时候,还需要经过一定的后处理才能输入到翻译模块中。例如:

  • 口语顺滑:识别并删除识别文本中所包含的重复、冗余等口语现象;
  • 文本逆规范化 (ITN):将识别文本转换为书面化的文本(如数字转换等)
  • 改写/纠错:根据上下文语义,对文本进行改写或纠错从而提升译文准确度
  • 加标点、规范大小写

可以看到,级联系统支持我们插入各种优化处理模块,并且各个模块可以被单独优化和替换。但各种被引入用于修正/纠错的模块又可能会引入更多的错误,因此级联语音翻译系统面临最大的挑战就是错误传播问题 (error propagation) 以及计算复杂度高。

端到端语音翻译 (End-to-end)

端到端语音翻译是一个统一的直接将语音翻译成文本的模型。这得益于“编码器-解码器”框架的发展,尤其是其在机器翻译[1]和语音识别[2-4]上的应用。相比级联模型,端到端模型的优势是可以缓解错误传播的问题,还可以简化模型部署的过程。

目前,比较常用的端到端语音翻译模型还是基于 Transformer,如下图所示:

它的“编码器-解码器”主干结构就是标准的 Transformer,而与基于 Transformer 的神经机器翻译唯一不同的是输入端的词向量变成了音频的表示 (representation)。而我们知道,音频文件被读入到计算机程序之后,他的表示方式是一串离散的采样点(即声音在介质中振动的幅度),假设音频的采样率是 16,000(即每秒 16,000 个采样点),那么即便是一段只有几秒的音频,读入到程序中的序列也会非常长,因此在正式输入到 Transformer 之前,还需要进行音频特征抽取。如下图所示是两种目前最常用的端到端语音翻译模型中的音频特征提取方式:

  1. 基于声学特征: 首先提取传统的声学特征,如梅尔倒频谱系数 (mel-frequency cepstral coefficient,MFCC) 和梅尔滤波器组特征 (log-mel filterbank coefficient,FBank) 等。得到的声学特征是一个“音频帧数 × 声学特征数”的矩阵,其中的音频帧可以看作是一个时序上维度,但相比文本中的句子单词数还是稍长,因此在 FBank/MFCC 之后往往还会接若干层卷积神经网络,进一步对声学特征进行特征提取和降维。
  2. 基于无监督预训练模型:无监督语音预训练模型是近两年比较热门的研究方向,它无需抽取声学特征,而是利用深层神经网络模型直接基于大规模的音频数据训练语音的特征表示,目前在多项下游语音任务上的实验表明,预训练语音表示比传统的声学特征效果更好[5]。如上图(2)是比较经典的 wav2vec2.0[6],音频信号会通过 7 层卷积网络进行特征提取和降维,然后再经过若干层 Transformer Block 获得具备上下文信息的音频特征表示。

端到端语音翻译的潜力和挑战

端到端的建模方法比传统的级联语音翻译更具备潜力,我们可以通过如下推导进行论证(X 表示音频输入,S 和 T 分别表示语音识别结果和翻译结果)[7]:

  • 式(1):即为端到端语音翻译模型,它直接从音频 X 生成译文 T;
  • 式(2):引入了一个新的变量 S 且为(1)的条件概率展开形式;
  • 式(3):我们用一个文本翻译翻译模型来近似 P(T | S, X),显然这一步存在信息损失,因为我们忽略了原始的音频输入,导致翻译模型无法真实捕捉到说话人的语气、情感、态度等,进而可能存在歧义;
  • 式(4):即为级联语音翻译模型,它直接取语音识别模型输出的 Top 1 结果,并传给机器翻译模型。这就回到了前文所述的级联模型的不足之处:一个是语音识别的输出与机器翻译不匹配(如口语化现象、无标点、甚至领域不匹配等),二是错误传播的问题,尤其是在商业语音翻译系统中,往往还包含口语顺滑、标点恢复等模块,潜在累积更多的机器学习模型的预测错误,同时增加了模型复杂度。

因此,无论是从模型复杂度,还是从效果而言,端到端的建模方法都具备更强的潜力。

我们其实可以通过增强机器翻译模型的鲁棒性、使用 ASR 输出的 Top K 结果(如 lattice)、或者在标点模块/翻译模块中结合更多的音频信息来提升级联模型的效果,但本文对此不作过多讨论,因为要公平地比较这些方法需要大规模且相匹配的训练数据做支撑,目前端到端语音翻译的数据规模还不足以做到这一点。

如果端到端语音翻译具备强大的潜力,那为什么现在商业的语音翻译系统还都是级联的?

这就关系到端到端方法最大的不足:数据资源稀缺。

以学术界开源的数据为例,机器翻译研究中比较常用的有 WMT 数据,WMT21 En-De 就包含 4000 多万平行语料,再加上 OpenSubtitles(影视字幕)、CCMatrix(清洗自 CommonCrawl)[8]等,光 En-De 语向就能积累到上亿的平行语料。对于语音识别任务,2021 年也有研究者发布了 GigaSpeech 数据集,包含 1 万小时有标注的英文音频数据。而对于端到端语音翻译任务,目前比较常用的数据集为 MuST-C [9],其中 En-De 语向包含 400 小时的音频以及对应 25 万句转写和翻译,数据规模远不如机器翻译和语音识别任务。

究其原因,主要在于语音翻译数据集构建流程复杂、成本高。比如我们需要先找到一个数据源,能够同时满足:带有公开或者已授权的音频,对应的转写和翻译。接着需要对音频、转写和翻译进行切分,最后还要对齐以及过滤。经过这一系列的操作,最后获得的有效数据的规模也不会很可观。而对于工业界而言,标注一份数千或者上万小时的语音翻译数据也要消耗大量的人力、财力和时间。

为此,研究者们提出了许多方法来提升端到端语音翻译的效果,比如更有效地利用大规模的语音识别和机器翻译的数据、引入预训练模型、重新设计编码器和解码器等,我们也在这一方向上积累了一系列工作。

一些探索和尝试

我们尝试利用语音识别和机器翻译的数据来增强端到端语音翻译,主要围绕三个方面:更有效的编码器和解码器、训练技巧和策略、数据增强。

LUT (AAAI 2021):听,理解,再翻译

论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/17509  

深入阅读:https://mp.weixin.qq.com/s/D0BnXHh1w0AuCBBhv0nFBQ

文章认为,现有基于 Transformer 的端到端语音翻译模型存在两点不足:

  • 只用一个编码器,很难同时做好音频信号解析和语义理解;
  • 无法利用 ASR 转写的信息。因此,文章引入了两个编码器:声学编码器和语义编码器。其中声学编码器负责解析音频信号,并和转写的文字表示进行匹配,这里就可以用上 ASR
    转写的监督信号。而语义编码器则接收声学编码器的输出,并进行语义理解。

COSTT (AAAI 2021):同时识别声音和翻译

论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/17508

深入阅读:https://mp.weixin.qq.com/s/Af6p1jVlkePrIZmUrjIaNw

虽然端到端语音翻译直接接收音频作为输入,但语音到文本的跨模态翻译难度会更大。另一方面,联想到人类译员在做交传或同传的时候,通常会记录一些源语言的关键词来帮助翻译,文章便基于此,提出了在序列到序列模型的解码过程中“连续预测”的方式,即让端到端语音翻译模型的解码器先预测原音频的转写结果,再继续预测翻译结果。这样一来,解码器端的自注意力机制可以使得在生成翻译的时候“参考”到音频的转写内容,同时单独看解码器其实是一个双语的语言模型,可以利用文本翻译的中的平行语料进行预训练,也有效缓解了语音翻译训练数据稀缺的问题。

Chimera (ACL 2021):统一理解语音和文本

论文地址:https://aclanthology.org/2021.findings-acl.195/

深入阅读:https://mp.weixin.qq.com/s/G_sqv9kAebm-PvIcu1hGHQ

日常生活中,我们是否会有这样的经历,就是在听一些节奏感强、有歌词的歌的时候,工作效率会严重下降。认知神经科学对此有过相关的解释,就是声音和文字信号传入大脑之后会共享部分处理路径。文章提出的 Chimera 模型就建模了这一思路,语音/文本输入之后,会先经过各自的声学编码器/文本编码器进行编码,然后再通过若干个公共的“记忆元”提取真正有用的语义信息,而对于这套语义信息最开始是来自音频还是文本,模型不做区分,由此模型便可以得到一个同时建模音频和文本的共享语义空间。此外,从文本输入到译文输出这部分链路还可以用更多额外的文本翻译数据进行训练,进一步缓解了语音翻译语料不足的问题。

XSTNet (InterSpeech 2021):渐进多任务学习框架

论文地址:https://www.isca-speech.org/archive/interspeech_2021/ye21_interspeech.html

文章为了更充分地利用语音识别、文本翻译和语音翻译三种数据,设计了一种能够同时做这三类任务的模型。模型的编码器支持同时输入文本和音频,并且它们共享整个编码器的参数,在解码生成的时候,用生成句子的语言当作句子开始标记(如果跟音频语言一致,那么做的就是识别任务;如果不一致,就是翻译任务)。此外,文章还提出一种渐进式的学习方式 (progressive training),就是先用文本翻译的数据预训练整个网络,再逐步加上语音识别和语音翻译任务一起调优。实验表明,这样的模型训练方式会比只用语音翻译任务去微调效果更好。

IWSLT 2021 离线语音翻译评测系统

论文地址:https://aclanthology.org/2021.iwslt-1.6

文章尝试探索端到端系统的能力上限,引入了更多的语音识别数据和机器翻译数据,并结合多任务学习方法、伪标签技术、模型集成等方法,将端到端语音翻译的性能提高了将近 8 BLEU,也逐步缩小跟级联系统的效果差距。

NeurST (ACL 2021 Demo):端到端语音翻译工具包和实验基准

论文地址:https://aclanthology.org/2021.acl-demo.7/ 

项目地址:https://github.com/bytedance/neurst

文章推出了一套端到端语音翻译工具包,基于结构化的设计可以方便地插入和修改各种数据预处理模块、编码器、解码器结构等。并提供标准化的 libri-trans、MuST-C 等语音翻译数据集的数据预处理、训练和推理脚本,以及实验基准结果。

STEMM (ACL 2022):跨模态混合训练缓解模态鸿沟

论文地址:https://aclanthology.org/2022.acl-long.486/ 

近期的一些研究工作都在尝试引入更多的文本翻译数据来缓解端到端语音翻译数据稀缺的问题,但是语音和文本之间存在着表示不一致的问题,文章称之为模态鸿沟 (Modality Gap) ,这时模型难以从文本翻译数据中学习到对语音翻译有用的知识。为了更有效地利用文本翻译数据,文章提出在训练的时候在语音表示中随机替换一部分为对应的文本表示,得到混合了语音和文本表示的序列,使模型学习到语音和文本模态间共享的语义空间。同时,模型使用多任务学习的方式,让原始音频生成的翻译结果和混合表示生成的结果更接近,进而提升最后解码时候的语音翻译质量。

ConST (NAACL 2022):对比学习解决模态鸿沟

论文地址:https://arxiv.org/abs/2205.02444

文章在 XSTNet 的基础上,探讨模态鸿沟的问题。文章认为,在多任务学习的框架下同一个句子的语音表示和文本表示在语义空间中应该是相近的。为此,文章提出使用一个对比学习损失项来拉近相同句子的语音和文本表示,进而更加充分地利用额外的文本翻译数据提升语音翻译的性能。

MOSST (ACL 2022):基于单词切分的端到端同传

论文地址:https://aclanthology.org/2022.acl-long.50/

流式语音翻译需要将实时的语音输入翻译成文本。传统的端到端式语音翻译系统一般把固定的输入时长作为判断系统读写的依据,这种做法面临着两大问题:一方面对于长语音信息它无法保证每次读入的语音信息是完整的,造成翻译质量下降;另一方面对于短语音信息它也无法提前结束读入,造成翻译延迟升高。为了更好地判断流式语音翻译的读写时机,文章引入了一种单调切分模块,能够检测音频流的边界,实现动态读写。实验发现,新模块在延迟和质量两个维度上全面超越以往的流式语音翻译模型,同时还能够让模型在非流式的场景下也有不错的表现。

结语

我们认为,端到端语音翻译不仅比级联系统复杂度低,同时效果上更具备潜力。基于我们的前期的探索,我们尝试结合数据增强、多任务学习、预训练等方式构建了中-英和英-中端到端语音翻译系统,在日常对话翻译上具备不错的翻译效果。同时,我们使用了 LightSeq[10] 来提高模型推理速度,服务响应时间比级联系统快了 70%以上,目前可以在“火山翻译小程序-音频翻译”中体验到。