乌龟TTS--TorToiSe

abstract

  • 当前图像生成领域发生重大变革,趋势有两个:一是自回归transformer,二是DDPM。
  • 本文尝试将这两种方法的优点结合,将大规模预训练语言模型领域的经验引入合成,实现高表现力,多音色的语音合成,并将此工作命名为TorToiSe。本文使用UnivNet作为vocoder进行波形重建。
  • 本文通过:(1)使用通用的transformer结构;(2)使用超大的、高质量的数据集;(3)用非常大的batch_size训练。实现了SOTA的语音合成。坚持这三点非常重要,并且任何数字模态使用这个框架都可以训练通用的模型。

intro

图像生成

  • 基于DALL-E的方法:实际上是NLP模型的decoder,基于输入做slf-attention,因此计算量是 O ( N 2 ) O(N^2) O(N2),N是序列的长度。如果序列过长,计算复杂度爆炸。而且,传统自回归方法基于离散的image tokens,重建为图像像素点,DALL-E 1 使用VQVAE进行量化,可以重建出模糊的图片。
  • 基于DDPMs的方法:
    • 生成模型存在的两类问题:(1)mean-seeking behavior,导致生成图像模糊;(2)mode-collapse,导致泛化性不好。
    • DDPMs比价好的规避了上述两个缺点,可以使用低质量的引导信号生成高分辨率的图片。
    • DDPMs存在的问题:(1)DDPMs需要引导信号和输出对齐,但是text和audio本身不是序列的对齐关系。(2)DDPMs要生成高质量的图片,需要多轮前向,消耗计算量。
  • re-ranking:DALL-E在自回归的过程中使用“re-ranking“的策略,从k个输出中选择最好的一个用于后续使用。这就要求有一个很好的判别器,可以分别什么是好的text–image pair。 比如,DALL-E使用CLIP。

小结

  • 自回归模型长于不同模态间的转换,然后DDPMs困于对齐问题
  • DDPMs在连续域生成高表现力的模态,自回归模型使用离散特征?why
  • 两种方法都可以通过增加计算量提升输出效果

method

  • 本文将自回归和DDPMs结合,通过自回归生成text-to-audio的离散特征,然后通过DDPMs生成高质量的语音。

Applying Autoregression+DDPMs to TTS

在这里插入图片描述

  • condition input:从同一说话人的音频中裁剪一段作为条件输入,用以控制合成语音的tone/prosody。单独的condition encoder输入AR Decoder和DDPMs。
  • fintune DDPM:首先完成speech discrete tokens到mel-spec的训练,模型收敛以后,用GPT模型输出的结果finetune DDPM。这个步骤是对生成结果改善最大贡献的

CLVP:Contrastive Language-Voice Pretrained Transformer

  • 像DALL-E使用CLIP一样,训练一个对比学习判别器用于re-ranking。
  • 因为TTS数据是text-speech pair,因此训练的CLVP 可以在本文限定的判别任务上表现很好,判别speech token和text token是否匹配。

training & inference

  • 8*NIVIDIA 3090,大约1年时间
  • AR Decoder的输出是nucleus sampling方式
  • 使用的DDPM配置(非最新流行)
    在这里插入图片描述
  • 数据集:
    • train:LibriTTS and HiFiTTS datasets(890h)+网上爬取的49000h数据
    • test:LibriTTS test

evaluation

  • tts-scores:借鉴图像上Frechet Inception Distance 评估生成质量的方法,代替MOS打分,提升效率,且可以在训练阶段使用。

Appendix I:Extended Dataset Collection

  • 对网上爬取的9.8wh数据进行清洗,去掉有明显背景噪声、多人同时讲话、低质量的数据
  • 使用wav2vec-large model,并使用LibriTTS and HiFiTTS对模型进行finetune,因为比如标点符号在ASR任务中不重要,但是在TTS任务中很重要。

Appendix II - Training and Architecture Details

VQ-VAE

参考Neural Discrete Representation Learning的设计,输入mel-spec,预测离散的speech tokens。10k steps以后,log mse loss收敛。

在这里插入图片描述

AR-Decoder

在这里插入图片描述

  • 使用GPT2的结构,和DALL-E的区别在于只使用slf-attention结构

  • prompt的结构:在这里插入图片描述

  • condition input:输入最大是6s的mel-spec,来自同一个说话人的另外一条音频,经过encoder之后得到一个vector embedding。对于一条训练样本,得到两个encodings,平均一下,放在开头< SC >。

  • 在这里插入图片描述
    使用learned positional embedding:text/mel各自有位置信息,最大的长度是403 text tokens+604 mel tokens。训练初期使用6s的音频,后期加入~27s音频。AR-Decoder收敛以后,使用LibriTTS and HIFITTS的干净数据finetune。

CLVP

双encoder,编码text和mel。输入tokens随机丢掉15% ,最大的text 约350,最长的mel为293,约13s

diffusion

  • 3个condition输入:时间步长信号(网络norm的比例);speech condition;AR-decoder的输入。

future work

  • 对VQVAE code dim进行约束,可以得到很大的提升;
  • 相对位置编码代替绝对位置编码,可以免于输入长度的限制;
  • 对比学习的batch size越大,效果越好;
  • 更大的音频长度:CLVP的感知野13s,更长的无用;
  • 前后端mismatch:声学模型22k,vocoder 24k

おすすめ

転載: blog.csdn.net/qq_40168949/article/details/129791000