近年来,大规模语言模型(LLMs)建模在 NLP 领域取得了许多突破,特别是 ChatGPT 的成功,正引领大家迈入一个新的AI时代。截止目前,基于 encoder-decoder 框架的模型在语音处理任务中仍占主导地位,而基于语言模型(LM)的方法还处于初期探索阶段。AudioLM 和 VALL-E 作为前期工作已经证明了利用离散语义单元(Semantic Units)和离散声学单元(Acoustic Units)联合语言模型建模在音频生成任务上的有效性。
基于此,字节跳动的研究者们提出了基于语音离散单元的语音到语音翻译(S2ST)框架 PolyVoice。PolyVoice 有两点突出贡献:
(1)decoder-only:使用 decoder-only 框架实现直接的语音翻译,同时能够容纳多源的训练数据。
(2)textless:构建了基于 units 的音频 LM 用于语音翻译,可以用于非书写语言。
demo地址:speechtranslation.github.io/polyvoice/
语音到语音翻译(S2ST)是一项具有挑战性的任务,因为它需要同时解决自动语音识别(ASR),机器翻译(MT)和文本到语音合成(TTS)中的所有难题。与传统的级联方法不同,直接建模的方法具有低延迟和简化 pipeline 的优点。现有的 S2ST 直接建模的方法可以根据模型是预测连续的梅尔谱图特征还是离散单元进一步分类。近来,基于 units 的方法变得越来越受欢迎,有如下几点原因:
(1)基于 units 的方法可以将语音的离散单元视为一种“伪语言”,可以适用现有的 NLP 技术;
(2)基于 units 的方法缓解了谱图的学习难度;
(3)基于 units 的方法可以通过无监督的方式获取离散单元,可以对非书写语言进行建模。
Semantic Units 和 Acoustic Units 是两种常用的语音离散单元。Semantic Units 主要用于捕获语音中的语义内容。Acoustic Units 也可以被称为 Codec Units,最初用于在有限的带宽下传输高质量的语音信号。
PolyVoice介绍
PolyVoice 是一种基于语言模型的 S2ST 框架,能够处理书写和非书写语言。PolyVoice 使用通过自监督训练方法获得的离散单元作为源语音和目标语音之间的中间表示。PolyVoice 由两部分组成:
-
Speech-to-Unit(S2UT)翻译模块,将源语言语音的离散单元转换为目标语言语音的离散单元;
-
Unit-to-Speech(U2S)合成模块, 在保留源语言语音说话人风格的同时合成目标语言语音。
下图是 PolyVoice 的整体架构:
Speech-to-Unit(S2UT)翻译模块
通过使用通过自监督训练获得的离散单元,从连续语音表示中去除语义无关的信息。S2UT 利用语言模型学习基于语音离散单元的跨语言生成。
-
Semantic Unit Extractor:S2UT 通过 Semantic Unit Extractor 对原始语音进行处理。首先使用 k-means聚类离散化 HuBERT 输出的连续表示,进而合并重复 units 的连续序列来压缩序列长度,这样可以减少计算成本,并有助于收敛。
-
基于 units 的跨语言语言模型(U-XLM):U-XLM 将源语言 units “{src_unit}” 翻译为目标语言 units “{tgt_unit}”。U-XLM 的 prompt 形式可定义为:Translate [src lang] unit “{src_unit}” to [tgt ****lang] unit: “{tgt_unit}**”。
-
S2UT的训练:为了解决在现实场景下跨语言 units 平行数据稀缺的问题,如下表所示,PolyVoice 适配地修改了提示符,为各种类型的数据源(例如 ASR, MT等)构建训练样本,然后通过参数共享的方式训练模型。
U-XLM 有几个突出特性,有处理书写和非书写语言的能力、多语言建模功能,以及通过利用大量无标注数据进行 zero-shot 预测的能力。 这些特性使 U-XLM 成为推进语音到语音翻译研究的一个有潜力的框架。
Unit-to-Speech(U2S)合成模块
-
Unit-to-Speech 语言模型(U-SLM):与 VALL-E一样,U-SLM 也包括一个自回归模型和一个非自回归模型。在 PolyVoice 中,输入为源语言和目标语言的 Semantic Units 以及包含源说话人说话风格的 Codec Units。
-
SoundStream codec:SoundStream 的 encoder 用于生成包含源说话人说话风格的 Codec Units,decoder 将 U-SLM 预测的 Acoustic Units 重构为语音波形。
-
Duration model:离散单元的时长信息对于合成语音的稳定性非常重要。PolyVoice 使用 LM 来预测时长信息。具体地,如上图右下角所示,合并后的源 Semantic Units、合并后的目标 Semantic Units 和源时长值序列(D)作为提示输入到 Duration LM中。Duration LM 基于输入的提示信息预测目标时长值序列,并对每个目标 Semantic Units 进行相应次数的重复操作。
实验分析
作者在两个 S2ST 基准数据集 EMIME 和 CVSS 上验证了 PolyVoice 的性能。
S2ST实验
ASV 评分用来评估在输出语音中保留源说话人音色的能力,ASR-BLEU 用来测评翻译质量。通过实验作者给出了一些结论:
-
当真实的目标翻译序列可用时,PolyVoice 展示了更好的语音克隆能力。
-
PolyVoice 在翻译质量方面略有下降,但在语音质量方面有显著的提升。翻译质量下降可能是由于无监督的音频离散化会引入信息损失。语音自然度提升则可能是因为大规模语言模型的数据容纳能力可以带来更好的生成效果。
为了验证 PolyVoice 在非书写语言上的有效性,作者在不使用西班牙语的任何文本监督情况下,评估了一个英语→西班牙语S2ST系统,ASR-BLEU(18.3)的结果表明 PolyVoice 生成的西班牙语语音在语义上是可理解的。
分析和消融实验
-
Decoder-only 和 Encoder-Decoder 两种框架的对比
Decoder-only 模型带来了 3.9 个 BLEU 的显著改进,当用 U2S 代替声码器合成语音时,缩小了性能差距,证明了 U2S后端的鲁棒性。
-
多任务训练
U-XLM 在涉及的多个任务(包括 S2ST、ASR、ST、MT和 TTS)上都取得了可观的性能,验证了 Decoder-only 框架的通用建模能力。
-
U2S模块的优化
从实验结果发现从 U2S 中去掉时长模型,WER 会急剧增加,可能是由于 units 本身不包含与音素一样多的时长信息。因此,在使用无监督训练得到的离散单元时,时长模型是必不可少的。此外,作者额外训练了一个中英的多语言 HuBERT 模型(mHuBERT_zh_en)作为 Semantic Unit Extractor,实验对比发现更大的模型可能会生成更好的 Semantic Units。
结论
PolyVoice 是一个基于语音离散单元的 S2ST 框架。实验结果表明,基于 units 的 S2ST 系统在 ASR-BLEU、ASV 和自然度方面优于现有系统。此外,作者还证明了 PolyVoice 在不使用文本信息监督的情况下在非书写语言场景中的能力。由于 PolyVoice 性能与语音离散单元的质量高度相关,未来的工作将持续研究如何更好地进行语音离散化。