https://github.com/espnet/espnet
End-to-end text-to-speech (E2E-TTS) 缓解了文本预处理的复杂度,并以数据驱动的方式学习输入序列和输出序列之间的对齐关系,实现高质量的语音合成。
本文主要提供一个名叫ESPnet2-TTS的工具包,类似于Kaldi,基于Pytorch。
主要贡献有以下几个
主要提到了几种E2E-TTS工具包
其中,Tensorflow-TTS和conqui-ai TTS只可用于TTS任务。其余支持多种任务,例如语音识别、机器翻译、语音翻译等。
然后介绍了ESPnet的一些优点。比如支持多语言、多场景、提供了众多预训练模型,以及支持众多语音处理任务(语音识别、语音增强、语音二值化、自监督学习等)
文本预处理包括文本清洗、grapheme-to-phoneme(G2P)、声学特征提取、数据增强等
基于shell脚本使用,提供了20+种的脚本,涵盖多种语言多种场景
模型
提供了text-to-mel、mel-to-wav、text-to-wav等不同种的模型
text-to-mel就是我们常说的声学模型,输入文本,经模型后得到声学特征;mel-to-wav则是声码器,将声学特征转换到波形点;text-to-wav是一种端到端的TTS模型,旨在直接由文本生成波形。
text-to-mel声学模型
提供了自回归和非自回归各两种结构。自回归结构由Tacotron2和Transformer-Speech,非自回归结构有FastSpeech和FastSpeech2。对于自回归结构,使用attention学习输入和输出之间的对齐关系。对于非自回归结构,需要提供每个输入音素的时长信息,文章中是用自回归模型的attention权重计算出来的,当然也可以单独训练一个对齐模型出来得到音素时长。此外,可使用speaker embedding或者x-vector加入话者信息,使用全局风格tokens提供风格信息
mel-to-wav声码器模型
支持Griffin-Lim和一系列基于GAN的声码器。基于GAN的声码器有Parallel WaveGAN, MelGAN, StyleMelGAN, HiFiGAN以及以上GAN的多子带版本。由于GAN包括生成器和分类器,该工具支持不同生成器和分类器的自由组合
Jointly text-to-wav模型
即联合训练声学模型和声码器,这里的声学模型和声码器也可以任意组合
text-to-wav端到端模型
支持VITS模型,该模型基于变分思想和flow模型,有兴趣可自行学习
PS:
非自回归结构合成语音的速度可达实时
可学习的全局或者细粒度嵌入可以控制说话人特征或者说话风格。