技术领域
[0001] 本发明涉及AI(Artificial Intelligence,人工智能)领域,尤其涉及一种语音合成方法、装置、电子设备和存储介质。
相关背景技术
[0002] 作为AI领域的重要分支,TTS(Text‑to‑Speech,文本生成语音,简称文生语音)结合了语音合成、人工智能和自然语言生成等相关技术,旨在将纯文本转化为人耳可识别的自然语音。TTS已被广泛应用于智能语音播报、导航、智能音响、语音助手等产品中。
[0003] 用于实现文生语音的TTS模型通常由文本前端、声学模型和声码器构成。作为TTS模型的核心组件,后两者通常采用基于神经网络技术搭建的神经编解码网络和神经声码器,所述神经编解码网络用于提取语音的中间声学特征,而神经声码器用于将该特征转换为语音信号作为TTS模型的输出。
[0004] 常规的基于GAN(Generative Adversarial Networks,生成对抗网络)的神经声码器需要复杂的鉴别器配置,因而模型不稳定性较强,运行过程易崩溃。为此,相关技术提出DDPM(Denoising Diffusion Probabilistic Model,即去噪扩散概率模型)声码器。但是,虽然这类基于扩散的声码器能够从声学特征中快速重建语音信号,但往往存在显著的去噪后语音特征丢失、去噪过程延长、模型参数量过大导致运算量以及模型收敛缓慢等问题。
具体实施方式
[0031] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与本发明的一些方面相一致的装置和方法的例子。
[0032] 在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0033] 应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0034] 作为AI领域的重要分支,TTS结合了语音合成、人工智能和自然语言生成等相关技术,旨在将纯文本转化为人耳可识别的自然语音。TTS已被广泛应用于智能语音播报、导航、智能音响、语音助手等产品中。
[0035] 用于实现文生语音的TTS模型通常由文本前端、声学模型和声码器构成,其中声码器是TTS的核心组件,其用于将声学模型提取到的中间声学特征转换为语音信号。其中,基于神经网络实现的声码器(即神经声码器)是声码器的常见类型。
[0036] 传统的神经声码器可分为两大类:AR(Auto regressive,自回归)声码器和NAR(non‑AR,非自回归)声码器。其中AR声码器基于自回归模型,其当前时刻的输出取决于前一时刻的输出。如WaveNet是一种代表性的AR声码器,它通过预测后续采样点以逐步的方式生成整个音频波形。AR声码器虽然能够生成高质量的音频波形,且在捕获音频的详细信息时具有高度的保真度,但其语音生成速度较慢,因为它需要逐个样本生成音频波形样本。
[0037] 区别于AR声码器,非AR声码器通常不依赖于前一时刻的输出,而是直接生成整个音频波形。WaveGlow和MelGAN是两种典型的非AR声码器,这类声码器能够避免逐个样本生成音频波形的繁琐过程,但非AR声码器生成的音频波形可能不会达到与AR声码机生成的波形相同的质量水平。
[0038] 鉴于传统声码器存在的上述缺陷,业内提出基于GAN的神经编码器。例如HiFi GAN能够在效率和性能之间取得较佳的平衡。另外业内还提出了多尺度子带常数Q变换(MS‑SB‑CQT)鉴别器和多尺度时间压缩连续小波变换(MS‑TC‑CWT)鉴别器,以用于提高基于GAN的神经编码器的语音合成质量。但是,上述基于GAN的神经声码器通常需要复杂的鉴别器配置,因而模型不稳定性较强,运行过程易崩溃。
[0039] 为此,相关技术进一步提出DDPM声码器,图1示出了一种典型的DDPM声码器的语音合成原理。如图1所示,该声码器的语音合成包括正向的扩散过程和反向的逆扩散过程两部分。其中,扩散过程从原始的、清晰的语音数据(比如一段文本对应的纯净语音信号)开始,这是整个扩散过程的起点,模型此时拥有的是高质量、无噪声的语音信息。然后在预先设定好的多个时间步(通常用“T”表示)上按照高斯分布逐渐向语音数据中添加噪声。上述添加噪声的过程具有马尔可夫性质,即每一个时间步的状态只依赖于上一个时间步的状态和当前添加的噪声,而与之前的时间步无关。这使得整个正向扩散过程在数学上更容易建模和分析。而逆扩散过程属于模型的学习和训练阶段。其目标是训练一个深度学习模型,使其能够在不知道原始语音信号的情况下,从充满噪声的语音信号中逐步去除噪声,恢复出接近原始的语音信号,上述目标是通过让模型学习预测添加到语音信号中的噪声来实现的。在训练过程中会预测噪声并去噪,如对于每一时间步,模型会根据当前的噪声信号以及对应的时间步信息,预测出从当前时间步到上一个时间步之间添加的噪声的平均值,然后用当前的噪声信号减去预测到的该平均值,从而实现对噪声的去除使语音信号逐渐变得清晰。经过多个时间步的逆向去噪过程,模型最终能够将完全被噪声淹没的语音信号逐步恢复成接近原始的、清晰的语音信号。通过上述逆扩散过程,模型可以学习到从噪声到清晰语音的映射关系,从而具备了生成新的语音信号的能力。
[0040] 但是,虽然这类基于扩散的声码器能够从声学特征中快速重建语音信号,但往往存在显著的去噪后语音特征丢失、去噪过程延长、模型参数量过大导致运算量以及模型收敛缓慢等问题。
[0041] 针对相关技术中存在的上述技术问题,本发明提出一种全新的语音合成方法,将能够表征语音的客观声学特征的时域包络特征引入神经声码器的训练和推理过程,以期提升神经声码器在生成目标语音过程中更准确地学习到更多语音特征,从而有效提升所预测目标语音的语音质量,并加快模型收敛速度、降低其运算量。
[0042] 下面结合附图对本发明的语音合成方法的实施例进行详细描述。
[0043] 本发明实施例所述的语音合成方法需要基于一种特殊的神经声码器才能实现,下面先对该神经声码器的训练过程进行介绍。图2是本发明实施例示出的一种神经声码器的训练方法的流程图,该方法包括下述步骤202‑206。其中,步骤202‑204用于准备训练样本,步骤206用于利用训练样本进行模型训练。
[0044] 步骤202,获取样本语音和所述样本语音的样本中间声学特征。
[0045] 首先需要说明的是,所述神经声码器的训练方法可以应用于模型训练设备,该设备可以为服务器,例如可以为包含一独立主机的物理服务器,或者主机集群承载的虚拟服务器、云服务器等。当然,在上述训练过程中,相关技术人员往往需要通过其使用的电子设备中运行的客户端与所述服务器进行交互,如上传训练样本、设置损失函数、调整模型参数等。其中所述电子设备可以为PC(Personal Computer,个人电脑)、手机、平板设备、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)、可穿戴设备(如智能眼镜、智能手表等)、VR(Virtual Reality,虚拟现实)设备、AR(Augmented Reality,增强现实)设备等的至少一种,本说明书一个或多个实施例并不对此进行限制。所述客户端可以在该电子设备上被启动并运行。该客户端可以为电子设备上安装的原生应用程序(Application,即APP),或者也可以为小程序(Mini Program)、快应用(Quick APP)或其他类似的形式。当然,当采用诸如HTML5或类似的网页技术时,可以通过浏览器展示的页面实现相关功能,这里的浏览器可以为独立的浏览器应用,也可以是某些应用内嵌的浏览器模块。
[0046] 本发明实施例所述的样本语音是自然语言对应的语音,该语音可以由人说话并录制得到,或者也可以通过其他TTS技术或相关模型生成,本发明实施例并不对此进行限制。但需要说明的是,所述样本语音应当是纯净的、不含噪声(或含有噪声但噪声占比低于预设值)的语音。
[0047] 在训练神经声码器之前,需要先获取样本语音及其样本中间声学特征。其中,本说明书所述的样本中间声学特征可以为Mel谱(Mel‑spectrogram,即梅尔语谱图,或称梅尔谱)、对数Mel谱(Log‑Mel‑spectrogram)、语谱图(Spectrogram)、线性频谱(Linear Spectrum)、基频特征(Fundamental Frequency Features,或称F0特征)之一。当然,使用其中任意一种特征作为样本中间声学特征训练得到的神经声码器后,在推理阶段也需要使用该种特征作为中间声学特征,以确保神经声码器推理结果的准确性。
[0048] 其中,Mel谱是在语谱图的基础上,根据人耳听觉特性对频率进行非线性变换得到的频谱表示。Mel频率尺度是一种基于人耳听觉感知的频率尺度,它将线性频率转换为Mel频率,使得在较低频率区域分辨率较高,在较高频率区域分辨率相对较低。由于Mel谱更符合人耳的听觉特性,所以使用该特征作为样本中间声学特征用于训练神经声码器,使得训练完成的神经声码器能够提取到更符合人耳感知规律的语音特征,从而有助于提升所合成语音的质量。下文实施例即以样本中间声学特征包括Mel谱为例进行方案说明。
[0049] 在一实施例中,所述样本中间声学特征可以包括Mel谱。在该场景下,获取所述样本中间声学特征时,可以先将所述样本语音划分为位于多个窗口内的语音帧,并对各个窗口内的语音帧进行傅里叶变换(Fourier Transform,简称FT)得到线性频谱;然后对所述线性频谱进行Mel滤波处理得到所述Mel谱。该方式依次通过分帧(即划分语音帧)、加窗(即添加时间窗口)、傅里叶变换和Mel滤波处理等一系列处理,可以从所述样本语音中顺利提取到其对应的Mel谱。
[0050] 其中,可以通过Mel滤波器实现Mel滤波处理,所述Mel滤波器主要用于将线性频谱转换为Mel谱,从而使频谱特征更符合人耳的听觉感知。人耳对声音频率的感知不是线性的,在低频部分感知敏锐,能够分辨较小的频率差异;在高频部分相对不那么敏感,对频率变化的分辨能力较弱。Mel滤波器组的这种转换可以更好地模拟人耳对不同频率声音的感知,在语音处理领域能够提供更符合人类听觉感知的特征表示。具体而言,可以将FT得到的所述线性频谱输入Mel滤波器组(由多个Mel滤波器构成)。对于每个滤波器,计算线性频谱与该滤波器的乘积,并在整个频率范围内积分(求和),得到该滤波器对应的输出。这个输出就是Mel谱中的一个频率点的值。这样,通过所有Mel滤波器的处理,就可以得到完整的Mel谱,它表示了样本语音在Mel频率尺度下的能量分布。经过Mel滤波器组处理后的特征能够突出样本语音中的重要信息,减少无关的频率变化对后续处理的干扰,如在嘈杂环境下,Mel谱可以更好地聚焦于样本语音的主要频率成分,从而有助于提升所训练神经声码器的鲁棒性。
[0051] 步骤204,根据所述样本中间声学特征生成样本先验噪声信号,并将所述样本先验噪声信号添加至所述样本语音得到样本加噪语音;以及,从所述样本中间声学特征中提取所述样本语音的样本时域包络特征。
[0052] 在获取到所述样本中间声学特征之后,需要根据该特征生成样本先验噪声信号,以将其添加至所述样本语音中得到样本加噪语音。可以理解的是,因为样本中间声学特征是样本语音的强相关特征,所以相对于随机噪声或者预设的有规律噪声,从该特征中提取到的样本先验噪声信号更加符合样本语音的自身规律,因而能够便于待训练声码器更准确地学习相关特征,从而提升该模型的预测精确地。
[0053] 在一实施例中,可以先从所述样本中间声学特征中提取所述样本语音的先验分布信息,再对所述先验分布信息进行采样得到样本先验噪声信号。以样本中间声学特征包括Mel谱的情况为例,此时可以先计算Mel谱的均值和方差等指标作为样本语音的先验分布信息,然后对该信息进行采样得到所述样本先验噪声信号。其中,对先验分布信息的采样方式可以为随机采样,或者也可以为分层采样、重要性采样等,本发明实施例并不对此进行限制。可以理解的是,根据Mel谱的值计算出的分布相对于一般的分布(如正态分布)更容易让待训练声码器学习,有助于提升声码器的训练质量。另外,从样本中间声学特征中提取先验分布信息可以实现自适应先验,将该先验分布信息作为训练过程中的前向扩散目标,有助于提高训练对象(即所述神经声码器)的语音合成效率。
[0054] 另外,还需要从样本中间声学特征中提取样本语音的样本时域包络特征。本说明书实施例所述的时域包络特征(Envelope Feature,简称包络特征)也称为包络跟踪响应,其用于描述人脑在听与语音包络变化同步的语音时产生的神经响应。研究表明,时域包络特征的出现表明听觉皮层编码与语音包络相关的信息,这构成了人脑语音处理的重要组成部分。时域包络特征可以可视化为一条曲线,该曲线连接语音中不同频率信号的最高振幅点,反映了声压随时间的变化情况。
[0055] 在一实施例中,在所述样本中间声学特征包括前述基频特征(即F0特征)的情况下,可以直接基于该基频特征生成样本语音的样本时域包络特征。而在所述样本中间声学特征包括Mel谱的情况下,可以先利用自相关函数的峰值估计所述Mel谱中每一帧的基频特征,再基于该基频特征生成样本语音的样本时域包络特征。其中,所述自相关函数可以采用线性自相关函数、归一化自相关函数或偏自相关函数等,本发明实施例并不对此进行限制。
[0056] 如图3所示,样本语音的时域信号与相应的Mel谱相对应,进一步的,可以从语音对应的Mel谱中提取得到样本时域包络特征(即图中所示时域包络特征)。通过该方式,可以准确地提取到样本语音的样本时域包络特征,以便于后续模型训练。
[0057] 步骤206,利用包括所述样本加噪语音、所述样本中间声学特征和所述样本时域包络特征在内的样本数据训练所述神经声码器;其中,所述样本语音与所述神经声码器输出的预测语音之间的差异被作为所述神经声码器的模型损失。
[0058] 在通过前述方式获取到样本加噪语音、样本中间声学特征和中间声学特征时域包络特征等信息后,可以利用包括这些信息在内的样本数据训练神经声码器。如可以将所述样本数据输入待训练声码器进行训练,并得到训练完成的神经声码器。
[0059] 其中,所述样本数据可以包括多条数据,其中每一条数据可以包括所述样本加噪语音、所述样本中间声学特征和所述中间声学特征时域包络特征等信息。或者,在这些信息之外还可以包括所述样本中间声学特征对应的采样时间步,其中每一时间步及其对应的一组上述信息共同构成一条样本数据。
[0060] 另外,训练前还可以将全部样本数据划分为训练集(Training Set)、测试集(Test Set)和验证集(Validation Set)。其中,测试集用于训练机器学习模型的数据集,在训练期间,模型使用训练集中的样本来学习特征和模式,以便做出预测或分类。测试集用于评估训练好的模型性能的数据集,在模型训练完成后,测试集被用来验证模型对未知数据的泛化能力。模型在测试集上的表现可以帮助评估模型的准确性和性能。验证集用于调整模型超参数和评估模型性能的数据集,在训练过程中,验证集用来调整模型的参数,以防止模型在训练集上过拟合。为了平衡训练效率和质量,可以对训练集、测试集和验证集的大小设置适当的比例,如三者所包含样本数据的条数可以依次减少,示例性的,可以将全部样本数据的60%作为训练集、剩余各20%分别作为测试集和验证集;或者,在样本数据的总数量较多的情况下,也可以将全部样本数据的80%作为训练集、剩余各10%分别作为测试集和验证集,不再赘述。
[0061] 由前述实施例可知,本方案用于训练神经声码器的样本数据除了包括所述样本加噪语音和所述样本语音的样本中间声学特征之外,还包括样本时域包络特征。该方式可以确保训练完成的神经声码器能够在推理过程中更准确地学习到更多语音特征,从而在避免语音特征丢失的同时,提升所预测目标语音的语音质量,并加快模型收敛速度、降低其运算量。
[0062] 待训练声码器本质上就是一预先搭建完成的神经网络,该网络包括多个输入端,训练过程中将样本数据输入待训练声码器,就是将该样本数据中的各个信息通过相应的输入端分别输入该网络。
[0063] 在一实施例中,可以将一条样本数据单独输入模型,或者也可以将多条样本数据构成的一个Batch批量输入模型,以减少输入次数。无论何种输入方式,实际一条样本数据中的多个信息(即一组信息)都会按序输入。示例性的,可以将一组所述样本加噪语音、所述样本中间声学特征和所述样本时域包络特征分别输入待训练声码器的相应输入端,并获取该网络输出的预测语音;以及,还需要根据所述预测语音与所述样本语音之间的差异调整所述待训练声码器的网络参数并继续训练,直至预设的终止条件满足时终止训练,得到所述神经声码器。其中,所述终止条件可以为测试结果和/或验证结果的误差不超出预设值,或者测试集使用完毕等,本发明实施例并不对此进行限制。
[0064] 在一实施例中,还可以确定所述样本中间声学特征对应的采样时间步,该采样时间步用于构成所述样本数据。相应的,此时用于训练神经声码器的样本数据可以包括前述样本先验噪声信号、样本中间声学特征、样本时域包络特征和所述采样时间步等信息。对此,可以将这些信息分别输入待训练声码器的相应输入端中,以用于训练神经声码器。
[0065] 在一实施例中,所述待训练声码器可以包含扩张卷积(Dailated Conv,或称空洞卷积、膨胀卷积,英文也称为Atrous Convolution)块,该扩张卷积块可以由上采样卷积、层归一化和ReLU顺序连接构成;当然,也可以采用其他结构以适应不同的处理要求。所述扩张卷积块用于对所述样本先验噪声信号和所述采样时间步的累加特征进行扩张卷积运算,以扩大不同层的感受野,即在不增加参数数量的情况下,让卷积核覆盖更大的区域,从而获取更广泛的上下文信息。另外,所述扩张卷积块还可以捕捉长时依赖关系,以有助于模型更好地理解语音信号中的长距离相关性,提高对语音特征的建模能力。可见,所述扩张卷积块可以在一定程度上减少模型的计算量和参数数量,同时保持了对长时信息的捕捉能力。
[0066] 在一实施例中,所述待训练声码器还可以包含DWT(Discrete Wavelet Transform,离散小波变换)模块和iDWT(Inverse Discrete Wavelet Transform,离散小波逆变换)模块,其中,所述DWT模块用于对所述样本先验噪声信号进行离散小波变换运算,以将所述样本先验噪声信号拆分成样本高频噪声信号和样本低频噪声信号;所述iDWT模块用于对所述样本高频噪声信号和样本低频噪声信号的处理结果进行逆离散小波变换运算,以得到所述预测语音。有赖于上述DWT模块和iDWT模块,所述待训练声码器可以对样本先验噪声信号拆分出的样本高频噪声信号和样本低频噪声信号分别进行处理,使得每一路的计算量较小,并确保最终生成的预测语音能够同时包含所述样本先验噪声信号的高频特征和低频特征,以提升预测语音的质量。
[0067] 其中,DWT是一种时频分析方法,它将信号沿正交基分解为不同频率的分量,从而在时间和频率上提供局部信息。经过一阶DWT后,信号的通道数量从1维变为2维,而时间维度则减半,通过该方式实现了下采样,从而有效减少了模型中参数的数量。该方式能够相对更全面地理解语音信号的独特特征和潜在结构。
[0068] DWT模块和iDWT模块的工作原理可参见图4。如图4所示为经典的快速离散小波变j j换,该变换是一维DWT的有效实现。如图4所示,原始信号的长度为2 ,可以写为x =x,H d(z)、Ld(z),Hr(z)和Lr(z)是根据理想重建条件设计的滤波器阵列。H d(z)和Ld(z)为分解滤波器,Hr(z)和Lr(z)为重建滤波器。↓2和↑2分别表示两路的下采样和两路的上采样。在分解滤波器并对信号进行下采样后,即获得低频分量L和高频分量H。
[0069] 以样本Mel谱包括样本中间声学特征的场景为例,图5绘出了此时待训练模型的内部结构。如图5所示,该待训练声码器包括四个输入端,分别用于输入下述四个参数:样本Mel谱;用于表征采样时刻的采样时间步,即时间序列t~μ({0,1,2,…,T});对样本语言添加样本先验噪声信号后得到的样本加噪语音;从样本Mel谱中提取到的样本时域包络特征。
[0070] 所述采样时间步包括T+1个采样时刻,所述待训练声码器需要按照各个采样时刻执行T+1。如图5所示,待训练声码器中的神经网络共包括T+1层神经网络(最上层如实线所示、其余层为虚线所示),每一层的内部结构都相同。任一层神经网络中包含由上采样卷积、层归一化和ReLU顺序连接构成的扩张卷积块,其作用是在不改变特征图大小的情况下,在每一层实现不同的感知场,而无需采用池化和跨步处理。该网络遵循DiffWave的频率感知网络,该网络是基于扩散的声码器的骨干网络。其中,所述感知场沿时间轴增加而不会丢失信息,因此每个卷积输出可以包含更大范围的信息,同时保持语音信号的原始持续时间。
[0071] 从数据流的角度而言,首先对样本语音(即干净的语音信号)进行加噪处理(添加的是对样本语音进行先验分布采样得到的样本先验噪声信号)得到样本加噪语音,所述样本加噪语音经过DWT处理后输入某一时间步对应的一层神经网络。在与该时间步经过一维卷积(Conv1D)的结果相加后(相加的结果为包含采样步信息的音频特征)输入所述扩张卷积块。扩张卷积块的输出与样本时域包络特征和样本Mel谱(即被作为条件的先验知识)经过一维卷积后的结果相加,相应的结果通过门控激活单元(包括tanh激活函数和sigmoid激活函数)激活处理。对这两种非线性函数的输出进行逐元素相乘后再经过一维卷积和iDWT即得到该层神经网络的输出,每层神经网络的输出采用残差连接的方式避免信息遗忘;并且,每层神经网络的输出相加,再经过一维卷积、ReLU激活和一维卷积后输出最终的预测语音。
[0072] 其中,所述样本语音与所述神经声码器输出的预测语音之间的差异被作为所述神经声码器的模型损失,即待训练声码器的Loss=f(|预测语音‑样本语音|)。
[0073] 通过前述实施例可见,本说明书所述的训练过程,是对一个干净的样本语音进行逐步加噪并结合先验特征训练得到一个从样本加噪语音恢复干净数据的神经声码器过程;换言之,训练完成的神经声码器能够基于中间声学特征和噪声(加噪语音可视为一种特殊的噪声)进行推理运算,最终生成(或称合成)并输出一条语音。鉴于所述噪声可以从所述中间声学特征中提取,因而也可以简单认为该神经声码器能够根据中间声学特征生成语音。
[0074] 进一步的,本发明提出一种基于前述实施例训练得到的神经声码器实现的语音生成方法,即利用所述神经声码器完成推理以生成语音的方法。图6是本发明实施例示出的该语音合成方法的流程图,该方法包括下述步骤602‑606。
[0075] 步骤602,获取根据目标文本生成的中间声学特征,所述中间声学特征对应于待合成的目标语音。
[0076] 与前述训练过程类似的,该语音生成方法(即推理过程)可以由神经声码器的运行方设备(神经声码器即被部署并运行在该设备中)所执行。该设备可以为包含一独立主机的物理服务器,或者主机集群承载的虚拟服务器、云服务器等。另外,该神经声码器的调用方(如请求生成目标语音的用户)需要与该模型或相关服务进行交互,因此其可以在自身使用的电子设备中运行相应的客户端。该电子设备同样可以为PC、手机、平板电脑等,所述客户端同样可以采用APP、小程序、H5网页等形式,不再赘述。
[0077] 本发明所述的目标文本是可以按照自然语音阅读的文字,本发明实施例对于该文字所属的语言、所包含字符的数量等并不进行限制,例如可以为中文、英文、日文、韩文、俄文等。本方案的目的即为生成按照自然语言阅读所述目标文本时预期应当发出的目标语音。如用户可以在客户端中输入中文“你到哪里去”,在用户向服务器提交携带该文本的语音生成请求后,服务器即可响应于该请求将该文本作为目标文本,并按照步骤602‑步骤606进行处理,最终调用本地部署的神经声码器进行推理以生成该文本对应的用汉语说该文本时发出的声音。可见,本方案即期望生成用目标文本对应的语言读所述目标文本中时应当发出的声音。
[0078] 如前所述,本方案所使用的神经声码器被训练为根据中间声学特征生成语音,因此首先需要获取前述目标文本对应的中间声学特征。可以理解的是,该特征是能够用于反映(待生成的)目标语音的音频规律的特征,即此时需要获取的实际上是目标语音的中间声学特征——只是此时中间声学特征尚未被生成。
[0079] 与前述神经声码器的训练阶段使用的样本中间声学特征类似的,神经声码器的推理阶段使用的中间声学特征也可以包括Mel谱、对数Mel谱、语谱图、线性频谱或基频特征。当然,在训练阶段使用了何种特征(如Mel谱)作为样本中间声学特征,在推理阶段也应当获取目标文本对应的该特征作为中间声学特征,以确保神经声码器在推理阶段的顺利运行,不再赘述。
[0080] 在一实施例中,在获取目标文本对应的中间声学特征时,可以先获取该文本对应的音素序列,再根据该音素序列生成该目标文本对应的中间声学特征。其中,可以按照词汇分析、音素拆分和音素连接的步骤获取目标文本对应的音素序列。示例性的,可以先对目标文本中的各个字符(如汉字、词语、英文单词、英文短语等)进行分析以确定各个字符的发音,再将各个字符的发音拆分成单个的音素,最后按照各个词汇在目标文本中的位置和前后顺序,将各个音素依次连接起来即得到目标文本对应的音素序列。
[0081] 或者,也可以将所述目标文本输入预训练的G2P(Grapheme to Phoneme,字素到音素)模型,并接收所述G2P模型输出的所述目标文本对应的音素序列。G2P是语音合成中的关键步骤,其目的是将书写形式(字母、字符等)转化为其对应的发音形式(音素)。这个过程通常需要考虑上下文,因为一个字符或字母在不同单词或句子中的发音可能不同。所述G2P模型可以使用大规模标注的语料库进行预训练,以使该模型学习到字符与音素之间的映射关系,从而根据该映射关系确定目标文本中各个字符分别对应的音素,进而生成相应的音素序列。
[0082] 其中,所述音素序列可以选用颗粒度更细的IPA(International Phonetic Alphabet,国际音标)进行嵌入编码,以缓解漏字、复读等问题。
[0083] 在一实施例中,还可以获取基准语音并提取其声学特征和/或语义特征等条件特征,基于此,在生成目标文本对应的中间声学特征时,可以根据所述音素序列和上述条件特征生成所述目标文本对应的中间声学特征。其中,所述语义特征用于表征所述目标文本中不同词汇之间的上下文语义,所述声学特征可以包括音色、发音模式、高低音频等。可以理解的是,本方案除了基于所述音素序列之外,还基于目标文本的声学特征和/或语义特征生成中间声学特征,因此能够生成较高质量、携带较全面信息的中间声学特征,从而有助于神经声码器学习到基准语音的音色、韵律等信息,最终生成相对较为自然、流畅且符合基准语音习惯的个性化目标语音。
[0084] 步骤604,获取先验噪声信号,并从所述中间声学特征中提取所述目标语音的时域包络特征。
[0085] 进一步的,一方面可以获取先验噪声信号,另一方面可以从前述方式获取到的中间声学特征中提取(目标语音的)时域包络特征。
[0086] 在一实施例中,可以将训练阶段根据样本中间声学特征生成的前述样本先验噪声信号直接先验噪声信号用于推理过程了,以减轻推理过程中数据预处理的工作量。或者,也可以先从所述中间声学特征中提取先验分布信息,再对所述先验分布信息进行采样得到先验噪声信号。与前述样本先验噪声信号类似的,以中间声学特征包括Mel谱的情况为例,此时可以先计算Mel谱的均值和方差等指标作为目标语音的先验分布信息,然后对该信息进行采样得到所述先验噪声信号。其中,对先验分布信息的采样方式可以为随机采样,或者也可以为分层采样、重要性采样等,本发明实施例并不对此进行限制。可以理解的是,根据Mel谱的值计算出的分布相对于一般的分布(如正态分布)更容易让待训练声码器学习,有助于提升神经声码器所生成目标语音的质量。另外,从中间声学特征中提取先验分布信息可以实现自适应先验,将该先验分布信息作为推理的前向扩散目标,有助于提升神经声码器生成目标语音的效率。
[0087] 另外,还需要从中间声学特征中提取目标语音的时域包络特征。在一实施例中,在所述中间声学特征包括基频特征的情况下,可以直接基于该基频特征生成目标语音的时域包络特征。而在所述中间声学特征包括Mel谱的情况下,可以先利用自相关函数的峰值估计所述Mel谱中每一帧的基频特征,再基于该基频特征生成目标语音的时域包络特征。其中,所述自相关函数可以采用线性自相关函数、归一化自相关函数或偏自相关函数等,本发明实施例并不对此进行限制。
[0088] 以Mel谱为例,可以按照平滑处理、峰值检测、包络拟合的方式提取中间声学特征。示例性的,可以先对Mel谱进行平滑操作,以减少噪声的影响;再寻找Mel谱中的峰值点,以确定包络曲线的关键位置;最后可以使用合适的函数(如前述自相关函数)对峰值点进行拟合得到包络曲线。另外,还可以从包络曲线上提取目标语音的均值、方差等相关特征,以用于后续处理,不再赘述。
[0089] 步骤606,将所述先验噪声信号、所述中间声学特征和所述时域包络特征输入预训练的神经声码器,并获取所述神经声码器输出的匹配于所述目标文本的目标语音。
[0090] 在获取到前述先验噪声信号、中间声学特征和时域包络特征等信息之后,可以将这些信息输入神经声码器进行推理运算,以期输出目标文本对应的目标语音。在一实施例中,还可以确定所述中间声学特征对应的采样时间步,并将该采样时间步作为输入信号与其他信息一并输入所述神经声码器。此时输入神经声码器的信息共包括四个:根据目标文本生成的Mel谱、所述采样时间步、根据Mel谱生成的先验噪声信号、从Mel谱中提取到的时域包络特征。
[0091] 在一实施例中,所述神经声码器可以包含扩张卷积块,该扩张卷积块可以由上采样卷积、层归一化和ReLU顺序连接构成;当然,也可以采用其他结构以适应不同的处理要求。所述扩张卷积块用于对所述先验噪声信号和所述采样时间步的累加特征进行扩张卷积运算,以扩大不同层的感受野,即在不增加参数数量的情况下,让卷积核覆盖更大的区域,从而获取更广泛的上下文信息。另外,所述扩张卷积块还可以捕捉长时依赖关系,以有助于模型更好地理解语音信号中的长距离相关性,提高对语音特征的建模能力。可见,所述扩张卷积块可以在一定程度上减少模型的计算量和参数数量,同时保持了对长时信息的捕捉能力。
[0092] 在一实施例中,所述神经声码器还可以包含DWT模块和iDWT模块,其中,所述DWT模块用于对所述先验噪声信号进行离散小波变换运算,以将所述先验噪声信号拆分成高频噪声信号和低频噪声信号;所述iDWT模块用于对所述高频噪声信号和低频噪声信号的处理结果进行逆离散小波变换运算,以得到所述目标语音。有赖于上述DWT模块和iDWT模块,神经声码器可以对先验噪声信号拆分出的高频噪声信号和低频噪声信号分别进行处理,使得每一路的计算量较小,并确保最终生成的目标语音能够同时包含所述先验噪声信号的高频特征和低频特征,以提升目标语音的质量。
[0093] 对应于前述图5所示的训练过程,图7为训练得到的神经声码器的内部结构图,可见,图7所示的神经声码器内部结构与图5所示待训练声码器的内部结构相同。从数据流的角度而言,先验噪声信号经过DWT处理后输入某一时间步对应的一层神经网络。在与该时间步经过一维卷积(Conv1D)的结果相加后(相加的结果为包含采样步信息的音频特征)输入扩张卷积块。扩张卷积块的输出与时域包络特征和Mel谱(即被作为条件的先验知识)经过一维卷积后的结果相加,相应的结果通过门控激活单元(包括tanh激活函数和sigmoid激活函数)激活处理。对这两种非线性函数的输出进行逐元素相乘后再经过一维卷积和iDWT即得到该层神经网络的输出,每层神经网络的输出采用残差连接的方式避免信息遗忘;并且,每层神经网络的输出相加,再经过一维卷积、ReLU激活和一维卷积后输出最终的目标语音。
[0094] 在本发明所述实施例中,先根据对应于待合成的目标语音的中间声学特征生成先验噪声信号,并从该中间声学特征中提取所述目标语音的时域包络特征,然后将先验噪声信号、中间声学特征和时域包络特征一并输入预训练的神经声码器进行推理,并获取其输出的匹配于目标文本的目标语音,从而完成TTS过程。其中,所述时域包络特征是指目标语音在时域的幅值变化模式,属于该语音信号在时域内的客观声学特征。
[0095] 可以理解的是,本方案除了对应于目标语音的中间声学特征之外,还获取该语音的时域包络特征并将其输入神经声码器(当然,该神经声码器需要预先利用样本时域包络特征完成训练)用于预测目标语音,因而声码器能够在推理过程中更准确地学习到更多语音特征,从而在避免语音特征丢失的同时,提升所预测目标语音的语音质量;并且减少了变量数量从而降低了模型的运算量,加快了模型收敛速度从而提升了语音生成效率。
[0096] 图8是本发明实施例示出的一种电子设备的示意结构图。请参考图8,在硬件层面,该设备包括处理器801、网络接口802、内存803、非易失性存储器804以及内部总线805,当然还可能包括其他业务所需要的硬件。本发明一个或多个实施例可以基于软件方式来实现,比如由处理器801从非易失性存储器804中读取对应的计算机程序到内存803中然后运行。当然,除了软件实现方式之外,本发明一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0097] 图9本发明实施例示出的一种语音合成装置的框图。请参考图9,该装置可以应用于如图8所示的设备中,以实现本发明所述的技术方案,该装置包括:
[0098] 特征获取单元901,用于获取根据目标文本生成的中间声学特征,所述中间声学特征对应于待合成的目标语音;
[0099] 特征提取单元902,用于获取先验噪声信号,并从所述中间声学特征中提取所述目标语音的时域包络特征;
[0100] 语音合成单元903,用于将所述先验噪声信号、所述中间声学特征和所述时域包络特征输入预训练的神经声码器,并获取所述神经声码器输出的匹配于所述目标文本的目标语音。
[0101] 可选的,所述特征获取单元901具体用于:
[0102] 获取所述目标文本对应的音素序列,并根据所述音素序列生成所述目标文本对应的中间声学特征。
[0103] 可选的,还包括基准语音获取单元904,用于获取基准语音,并提取所述基准语音的条件特征,所述条件特征包括声学特征和/或语义特征;
[0104] 所述特征获取单元901具体用于:根据所述音素序列和所述条件特征生成所述目标文本对应的中间声学特征。
[0105] 可选的,还包括第一时间步确定单元905,用于:
[0106] 确定所述中间声学特征对应的采样时间步,并将所述采样时间步一并输入所述神经声码器。
[0107] 可选的,所述中间声学特征包括Mel谱,所述特征提取单元902具体用于:
[0108] 利用自相关函数的峰值估计所述Mel谱中每一帧的基频特征,并基于所述基频特征生成所述目标语音的时域包络特征。
[0109] 可选的,还包括声码器训练单元906,用于:
[0110] 获取样本语音和所述样本语音的样本中间声学特征;
[0111] 根据所述样本中间声学特征生成样本先验噪声信号,并将所述样本先验噪声信号添加至所述样本语音得到样本加噪语音;以及,从所述样本中间声学特征中提取所述样本语音的样本时域包络特征;
[0112] 利用包括所述样本加噪语音、所述样本中间声学特征和所述样本时域包络特征在内的样本数据训练所述神经声码器;其中,所述样本语音与所述神经声码器输出的预测语音之间的差异被作为所述神经声码器的模型损失。
[0113] 可选的,所述样本中间声学特征包括Mel谱,所述声码器训练单元906具体用于:
[0114] 将所述样本语音划分为位于多个窗口内的语音帧,并对各个窗口内的语音帧进行傅里叶变换得到所述样本语音的线性频谱;
[0115] 对所述线性频谱进行Mel滤波处理得到所述Mel谱。
[0116] 可选的,所述样本中间声学特征包括Mel谱,所述声码器训练单元906具体用于:
[0117] 利用自相关函数的峰值估计所述Mel谱中每一帧的基频特征,并基于所述基频特征生成所述样本语音的样本时域包络特征。
[0118] 可选的,所述声码器训练单元906具体用于:
[0119] 从所述样本中间声学特征中提取所述样本语音的先验分布信息,并对所述先验分布信息进行采样得到样本先验噪声信号。
[0120] 可选的,所述声码器训练单元906具体用于:
[0121] 将一组所述样本加噪语音、所述样本中间声学特征和所述样本时域包络特征分别输入待训练声码器的相应输入端,并获取该网络输出的预测语音;
[0122] 根据所述预测语音与所述样本语音之间的差异调整所述待训练声码器的网络参数并继续训练,直至预设的终止条件满足时终止训练,得到所述神经声码器。
[0123] 可选的,还包括第二时间步确定单元907,用于:
[0124] 确定所述样本中间声学特征对应的采样时间步,所述采样时间步用于构成所述样本数据。
[0125] 可选的,所述神经声码器包含扩张卷积块,所述扩张卷积块用于对所述先验噪声信号和所述采样时间步的累加特征进行扩张卷积运算,以扩大不同层的感受野。
[0126] 可选的,所述神经声码器包含DWT模块和iDWT模块,其中,
[0127] 所述DWT模块用于对所述先验噪声信号进行离散小波变换运算,以将所述先验噪声信号拆分成高频噪声信号和低频噪声信号;
[0128] 所述iDWT模块用于对所述高频噪声信号和低频噪声信号的处理结果进行逆离散小波变换运算,以得到所述目标语音。
[0129] 可选的,所述中间声学特征或所述样本中间声学特征,包括下述之一:
[0130] Mel谱、对数Mel谱、语谱图、线性频谱、基频特征。
[0131] 相应的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一实施例所述的语音合成方法。
[0132] 相应的,本说明书还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述任一实施例所述语音合成方法的步骤。
[0133] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0134] 在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0135] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0136] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。