BLSTM-RNN、Deep Voice、Tacotron…你都掌握了吗?一文总结语音合成必备经典模型-2

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: BLSTM-RNN、Deep Voice、Tacotron…你都掌握了吗?一文总结语音合成必备经典模型

Char2Wav


Char2Wav包含两个部分:reader和vocoder。reader由encoder和decoder两部分组成,encoder是双向RNN网络,可以接受文本/音素作为输入,decoder是带attention的RNN网络,生成vocoder对应的声学特征。Char2Wav的突出贡献是可以用直接从text中学会产生wav。Char2Wav是一个端到端模型,可以对角色进行训练,使用的是SampleRNN神经声码器之前预测声码器参数。Char2Wav结构如图6所示。


图6. Char2Wav端到端的语音合成模型


Reader

基于注意力的递归序列发生器(attention-based recurrent sequence generator,ARSG)是一个递归神经网络,它以输入序列X为条件生成序列Y=(y1,...,yT),X由一个编码器预处理,输出序列h=(h1,...,hL)。在这项工作中,输出Y是一个声学特征序列,X是要生成的文本或音素序列。此外,编码器是一个双向的递归网络。在第i步,ARSG专注于h,同时生成yi :


其中,s_i-1是生成器递归神经网络的第(i - 1)个状态,α_i∈R^L是注意力权重或排列方式。使用基于位置的注意力机制,α_i = Attend(s_i-1, α_i-1),给定一个长度为L的条件序列h,我们有:


其中 κi , βi 和ρi分别代表窗口的位置、宽度以及窗口的重要性。

NEURAL VOCODER

语音合成的质量会受到vocoder的限制,为了确保高质量的输出,引入SampleRNN。SmapleRNN用于建模extremely长时依赖性,其中的垂直结构用于捕捉序列不同时刻的动态。捕捉长的audio step(词级别)和短的audio step之间的长相关很重要。使用conditional version model学习vocoder 特征序列和对应audio sample之间的映射,每一个时刻的输出取决于它的vocoder特征和过去时刻的输出。

项目 SOTA!平台项目详情页
Char2Wav 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/char2wav

Deep Voice

深度语音(Deep Voice)系统是一个完全由深度神经网络构建的高质量text-to-speech系统。该系统包含 5 个重要基础:定位音素边界的分割模型、字母到音素(grapheme-to-phoneme) 的转换模型、音素时长预测模型、基础频率预测模型、音频合成模型。聚焦于分割任务,提出了一种使用深度神经网络完成音素边界检测的新方法,使用 CTC(connectionist temporal classification)损失函数。聚焦于音频合成任务,引入了一个 WaveNet 的变体,它比原始的 WaveNet 需要的参数更少、训练速度更快。在每个组件上使用神经网络,从而实现比传统的TTS系统更简单、更灵活(传统的组件需要人工调配以及大量的专业知识)。

图7. Deep Voice结构,(a)训练程序,(b)推理程序,左边是输入,右边是输出。持续时间预测模型和F0预测模型是由一个用联合损失训练的单一神经网络实现的。字母到音素的模型被用来作为不存在于音素字典中的单词的后备手段。虚线表示非学习的成分


Deep Voice是使用DNN开发的语音合成系统,主要是使用神经网络代替传统参数语音合成中的各个模块,具体包括以下五个模块:
(1)grapheme-to-phoneme转换模型:将输入本文转为phoneme序列;
(2)segmentation模型:定位音素边界;
(3)phoneme duration模型:预测phoneme持续时长;
(4)fundamental frequency模型:预测基频F0,音素是否发声;其中,phoneme duration模型和fundamental frequency模型一起训练;
(5)audio synthesis模型:综合(1)/(3)/(4)的输出进行音频合成。

Grapheme-to-Phoneme Model

字母到音素模型是基于编码器-解码器的结构。使用一个具有门控递归单元(GRU)非线性的多层双向编码器和一个单向GRU解码器。每个解码层的初始状态都被初始化为相应编码器前向层的最终潜在状态。该架构是用teacher强迫法训练的,解码是用波束搜索法进行的。在编码器中使用了3个双向层,每个层有1024个单元,在解码器中使用了3个相同大小的单向层,并使用了宽度为5的波束搜索。在训练过程中,在每个递归层之后使用概率为0.95的Dropout。

Segmentation Model

训练分割模型来实现给定语料和目标音素序列之间的对齐。这项任务类似于语音识别中的语音与书面输出的对齐问题。在该领域,CTC损失函数已被证明非常适用于字符对齐任务,以学习声音和文本之间的映射关系。用CTC训练的网络生成音素序列,能够为每个输出音素生成短暂的峰值。直接训练的结果能使音素与音频大致一致,但却无法检测出精确的音素边界。为了克服这个问题,训练预测音素对的序列,而不是单个音素。然后,网络在接近音素对中两个音素的边界的时间段内输出音素对。

Phoneme Duration and Fundamental Frequency Model

使用一个单一的架构来联合预测音素持续时间和随时间变化的基本频率。该模型的输入是一个带有重音的音素序列,每个音素和重音都被编码为一个独热向量。该结构包括两个全连接层,每个单元256个GRU;然后是两个单向递归层,每个单元128个GRU,最后是一个全连接的输出层。在最初的全连接层和最后的递归层之后,分别引入概率为0.8的DropOut。最后一层为每个输入音素产生三个估计值:音素持续时间、音素发声的概率(即有一个基本频率)和20个随时间变化的F0值,这些值在预测的持续时间上被均匀采样。

Audio Synthesis Model

音频合成模型是WaveNet的一个变体。WaveNet由一个调节网络和一个自回归网络组成,前者在语言特征上采样到所需的频率,后者在离散的音频样本Y上生成一个概率分布P(y)。改变层数l,剩余通道的数量r(每层潜在状态的维度),以及跳过通道的数量s(在输出层之前,层输出被投射到的维度)。

WaveNet由一个上采样和调节网络组成,然后是l个2×1的卷积层,有r个Residual输出通道和门控tanh非线性。将卷积分解为每个时间段的两个矩阵乘以W_prev和W_cur。这些层与残差连接相连。每一层的潜在状态都被串联成一个l_r向量,并用W_skip投射到s个跳过通道,然后是两层1×1的卷积(权重为W_relu和W_out),具有relu非线性。具体结构如图8所示。

图8. 修改后的WaveNet架构。各部分根据功能进行着色:茶色的输入,绿色的卷积和QRNNs,黄色的单项运算和softmax,粉色的二项运算,以及靛蓝色的重塑、转置和切片


当前 SOTA!平台收录 Deep Voice 1模型实现资源。

模型 SOTA!平台模型详情页
Deep Voice 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/deep-voice


Parallel WaveNet


Parallel WaveNet 是一种新的方法:概率密度蒸馏。这种方法可以在生成的语音质量没有显著差异的情况下,通过一个训练好的 WaveNet 去训练一个平行前馈网络。结果证明, Parallel WaveNet 能以比实时快20倍的速度产生高保真语音样本,这比原来的 WaveNet 要快1000倍。现已能在生产环境中提供多种英语和日语的声音。概括来说,Parallel WaveNet 对基本的wavenet模型做了两项优化,以提高音频质量:一是,使用16bit音频,采样模型替换为离散化混合逻辑斯蒂分布;二是,将16khz的采样率提升到24khz,所采用的具体方法包括提升层数、增加扩张系数等。

图9. 概率密度蒸馏法概述。一个预先训练好的WaveNet教师被用来对学生输出的样本x进行评分。学生被训练成最小化其分布和教师分布之间的KL-散度,方法是在教师下最大化其样本的对数可能性,并同时最大化其自身的熵


直接以极大似然训练并行 WaveNet 模型是不切实际的,因为估计对数似然所需的推理过程是连续的,而且很慢。因此,引入一种新的神经网络蒸馏形式,使用一个已经训练好的 WaveNet 作为“教师”,让“学生” Parallel WaveNet可以有效地学习。为了强调“处理标准化的密度模型”,将这一过程称为概率密度蒸馏(与概率密度估计相反)。其基本思想是让学生尝试在教师学到的分布下匹配自己的样本的概率。

给定在音频数据集上训练的并行 WaveNet student pS(x) 和 WaveNet teacher pT(x),定义概率密度蒸馏损失如下:


D_KL为KL-散度,H(P_S, P_T)为学生P_S与教师P_T之间的交叉熵,H(P_S)为学生分布的熵。当KL散度为零时,学生分布完全恢复了教师分布。熵项(在以前的蒸馏目标中并不存在)至关重要,因为它防止了学生分布坍塌为教师模式。更重要的是,所有估计这个损失的导数所需的操作(从pS(x)采样,评估pT(x)和评估H(pS))都可以有效地执行。

熵项H(P_S)写作:


第一个等式中,x = g(z), z_t 为 logistic 分布得出的独立样本。第二个等式中,因为逻辑分布 L(u, s) 的熵是 lns+2 因此,我们可以计算这一项而不必显式地生成x。然而,交叉熵项H(P_S, P_T)明确依赖于x = g(z),因此需要从学生取样来估计:


对于从学生 pS 中抽取的每个样本 x ,可以与教师并行计算所有的 pT(xt|x<t) ,然后通过在每个时间步长中从 pS(xt|z<t) 中抽取多个不同的样本 x_t ,计算 H(p_S(xt|z<t) , p_T(xt|x<t))。这个无偏估计量的方差比单纯地用第一个等式评估样本的方差要小得多。将教师的输出分布 pT(x_t|x<t) 参数转换,这使得损失项 lnpT(x_t|x<t) 对于 x_t 和 x<t 都是可微分的。另一方面,分类分布只能是可微分的 w.r.t. x<t 。

此外,单独使用概率密度蒸馏训练可能不足以约束学生生成高质量的音频流。因此,引入额外的损失函数来引导学生分布向期望的输出空间。包括:功率损失:


以及,对比蒸馏损失:



当前 SOTA!平台收录 Parallel WaveNet  2模型实现资源。

项目 SOTA!平台项目详情页
Parallel WaveNet  前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/parallel-wavenet

GAN

这篇文章提出了一种结合生成式对抗网络的基于静态参数的语音合成方法,具体由两个神经网络组成:区分自然样本和生成样本的鉴别器,以及欺骗鉴别器的发生器。在所提出的框架中,训练鉴别器以区分自然和生成的语音参数,同时训练声学模型以最小化传统的最小生成损失和用于欺骗鉴别器的对抗性损失的加权和。GAN的目的是最小化自然语音参数和生成的语音参数之间的KL-divergence,所提出的方法有效地减轻了对所生成的语音参数的过度平滑效应。这篇文章在验证GAN模型有效性的实验中,同时考虑了TTS和VC(Voice Conversion)两种任务,TTS是基于文本的语音合成,而VC则是从另一个语音来合成具有原始语言信息的语音的技术(在保留原始语音的语言信息的同时)。


图10. 基于GAN的多任务学习框架的系统示意图


GAN是一个生成模型,可以通过对抗过程学习随机噪声输入向量z和输出参数y之间的复杂关系。GAN的估计由两个模型组成:一个是生成模型G,它从随机噪声z中捕捉数据分布;另一个是鉴别模型D,它能最大限度地正确判别真实例子和从G中生成的虚假样本的概率。在这个对抗过程中,生成器倾向于学习一个映射函数G(z),以从均匀随机的噪声分布p_z(z)中拟合真实数据分布p_data(x),而鉴别器的目的是完美地判断样本是来自G(z)还是p_data(x)。因此,G和D都是在具有价值函数的two-player min-max game中同时训练的:


在上述生成模型中,由于指导性不强,生成样本的模式无法控制,由此引入了条件生成对抗网络(CGAN),通过考虑额外的信息y来指导生成。损失函数可以表示为:


在传统的SPSS声学模型中,我们通常在估计过程中最小化预测参数X_model和自然语音X_real之间的MSE。这个目标可以写成


数字上的差异(以MSE计)只涉及到估计,而数字上的错误减少不一定会导致合成语音的感知改善。为了解决这个问题,引入GANs,通过鉴别过程来学习合成语音和自然语音之间的本质区别。GAN能够生成数据而不是估计密度函数。为了解决GAN中生成模型的模型崩溃问题,进一步提出了以下生成器损失函数,以指导GAN收敛到最佳解决方案,从而使生成模型产生预期的数据:


最终目标函数为:


将语言特征视为额外的向量y,并使输入噪声z服从于[-1,1]区间的均匀分布。然后,我们的框架可以通过G(z|y)生成语音X_model,并且在训练期间同时估计loss_mse和loss_cgan。

图11. 带有音素信息的鉴别器


在多任务框架中,也尝试使用音素信息来指导鉴别过程,如图11所示。假设标签是一个代表音素类别的独热编码向量,它是D的虚假和真实样本的类别。那么我们的目标是最小化真实的交叉熵(CE),最大化虚假的损失,而后者意味着我们不知道虚假的音素属于哪个音素。因此,在loss_multi中GANs的目标函数可以被更新为


考虑到音素分类,我们得到新的损失函数如下:


当前 SOTA!平台收录 GAN 1 个模型实现资源。

项目 SOTA!平台项目详情页
GAN 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/gan-voice
相关文章
|
23天前
|
人工智能 数据处理 语音技术
LatentLM:微软联合清华大学推出的多模态生成模型,能够统一处理和生成图像、文本、音频和语音合成
LatentLM是由微软研究院和清华大学联合推出的多模态生成模型,能够统一处理离散和连续数据,具备高性能图像生成、多模态大型语言模型集成等功能,展现出卓越的多模态任务处理能力。
79 29
LatentLM:微软联合清华大学推出的多模态生成模型,能够统一处理和生成图像、文本、音频和语音合成
|
1月前
|
机器学习/深度学习 人工智能 Linux
Fish Speech 1.5:Fish Audio 推出的零样本语音合成模型,支持13种语言
Fish Speech 1.5 是由 Fish Audio 推出的先进文本到语音(TTS)模型,支持13种语言,具备零样本和少样本语音合成能力,语音克隆延迟时间不到150毫秒。该模型基于深度学习技术如Transformer、VITS、VQVAE和GPT,具有高度准确性和快速合成能力,适用于多种应用场景。
129 3
Fish Speech 1.5:Fish Audio 推出的零样本语音合成模型,支持13种语言
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【NPL自然语言处理】带你迅速了解传统RNN模型
【NPL自然语言处理】带你迅速了解传统RNN模型
|
5月前
|
自然语言处理 语音技术 开发者
ChatTTS超真实自然的语音合成模型
ChatTTS超真实自然的语音合成模型
170 3
|
6月前
|
机器学习/深度学习 自然语言处理
彻底改变语言模型:全新架构TTT超越Transformer,ML模型代替RNN隐藏状态
【7月更文挑战第25天】近年来,NLP领域取得显著进展但也面临挑战,如长上下文建模与计算效率的平衡。为此,研究人员提出Test-Time Training (TTT) 模型架构。TTT由多机构合作开发,旨在解决长上下文建模难题及提高计算效率。通过将隐藏状态视为可学习更新的模型,TTT能随输入增长提升表示能力;采用自监督学习更新规则确保线性计算复杂度的同时保持高性能。实验显示TTT在多种NLP任务中表现优秀,尤其在长上下文处理方面超越Transformer。尽管如此,TTT仍面临训练资源需求高及自监督学习鲁棒性等挑战。[论文](https://arxiv.org/abs/2407.04620)
139 5
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
176 9
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
|
6月前
|
机器学习/深度学习 TensorFlow 语音技术
使用Python实现深度学习模型:语音合成与语音转换
【7月更文挑战第19天】 使用Python实现深度学习模型:语音合成与语音转换
135 1
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。
【7月更文挑战第2天】计算机视觉借助深度学习实现了革命性进步,从图像分类到复杂场景理解,深度学习模型如CNN、RNN重塑了领域边界。AlexNet开启新时代,后续模型不断优化,推动对象检测、语义分割、图像生成等领域发展。尽管面临数据隐私、模型解释性等挑战,深度学习已广泛应用于安防、医疗、零售和农业,预示着更智能、高效的未来,同时也强调了技术创新、伦理考量的重要性。
78 1
|
7月前
|
语音技术
【手把手教学】最新ChatTTS语音合成项目使用指南【附所有源码与模型】
【手把手教学】最新ChatTTS语音合成项目使用指南【附所有源码与模型】

热门文章

最新文章