通过线性预测改进神经语音合成外文翻译资料
2022-08-22 15:20:57
英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料
通过线性预测改进神经语音合成
摘要
神经语音合成模型最近被证明有能力合成高质量的语音,用于文本到语音和压缩应用。这些新模型通常需要强大的gpu来实现实时操作,因此能够降低它们的复杂性将为许多新应用程序开辟道路。我们提出了LPCNet,这是一种将线性预测与递归神经网络相结合的WaveRNN变体,可以显著提高语音合成的效率。我们证明了在相同的网络规模下,LPCNet可以比WaveRNN实现更高的质量,并且在复杂度为3 GFLOPS的情况下,可以实现高质量的LPCNet语音合成。这使得在低功耗设备(如嵌入式系统和移动电话)上部署神经合成应用程序变得更加容易。
介绍
神经语音合成算法使高质量的语音合成和以极低的比特率编码高质量的语音成为可能。这些算法的第一代通常基于WaveNet之类的算法,使用高端GPU提供所需的每秒数百亿次浮点运算(GFLOPS),实时给出了有希望的结果。我们希望在移动电话等终端用户设备上进行合成,这些设备没有强大的gpu,电池容量也有限。
最近的工作集中在寻找更有效的模型,以减少语音合成的复杂性。在这项工作中,我们继续朝着这个方向努力,提供了更多的效率改进,使合成语音变得更容易,即使在较慢的cpu上,对电池寿命的影响也很有限。
低复杂度的参数合成模型如低比特率的vo编码器已经存在了很长时间,但其质量一直受到严重限制。虽然它们通常可以有效地利用线性预测来建模语音的频谱包络(声道响应),但对于激励来说,却不存在这样简单的模型。尽管取得了一些进展,但对激励信号的建模仍然是一个挑战。
在这项工作中,我们提出了LPCNet模型,它将频谱包络建模的负担从神经合成网络中剥离出来,因此它的大部分能力可以用来建模频谱平坦的激励。这使得用更少的神经元来匹配最先进的神经合成系统的质量成为可能,大大降低了复杂性。从第2节总结的WaveRNN算法出发,我们对模型进行了改进,降低了模型的复杂度,具体如第3节所述。在第4节中,我们基于所提出的模型,评估了LPCNet在与讲话者无关的语音合成环境中的质量和复杂度。我们在第5节总结。
WAVERNN
[7]中提出的WaveRNN结构以之前的音频样本stminus;1为输入,加上调理参数f,并为输出样本生成离散概率分布P (s t)。虽然它被提议为一个16位模型(分割为8个粗位和8个细位),我们在这个摘要中省略了粗/细分割,这既是为了清晰,也是因为我们在这个工作中没有使用它。WaveRNN模型主要由一个门控递归单元(GRU)[13]和两个全连接层组成,并以一个softmax激活结束。
在整篇文章中,为了清楚起见,省略了偏见。合成的输出样本是通过概率分布抽样得到的。为了减少复杂性,GRU使用的矩阵可以变得稀疏,[7]建议使用大小为4x4或16x1的非零块,以确保向量化仍然是可能的和有效的。
LPCNET
本节介绍LPCNet模型,我们对WaveRNN的改进。图1显示了其架构的概述,本节将对此进行更详细的说明。它包括一个运行在16khz的采样速率网络,和一个处理10毫秒帧(160个采样)的帧速率网络。在这项工作中,我们将合成的输入限制在只有20个特征:18个巴克尺度的倒谱系数和2个基音参数(周期、相关)。对于低比特率编码应用程序,倒频谱和音高参数将量化,而对于文本到语音,它们将使用另一个神经网络从文本计算出来。
图1所示。LPCNet算法概述。网络的左侧部分(黄色)每帧计算一次,其结果在整个框架内保持不变,用于右侧的采样率网络(蓝色)。计算预测块根据之前的样本和线性预测系数预测t时刻的样本。micro;-law和线性之间的转换都忽略了以便更清晰。去加重滤波器应用于输出s t
3.1调节参数
作为帧速率网络的一部分,这20个特性首先经过两个卷积层,滤光片大小为3 (conv 3x1),结果接受域为5帧(前两帧和后两帧)。将两个卷积层的输出添加到剩余连接中,然后经过两个全连接层。帧速率网络输出一个128维的条件向量f,然后由采样速率网络使用。向量f在每一帧的持续时间内保持不变。
3.2预加重和量化
一些合成模型WaveNet使用8位micro;-law量子化来减少可能的输出样本值的数量仅为256。因为语音信号的能量主要集中在低频段,micro;-law白色量化噪声通常是高频率的声音,尤其是16 kHz信号具有更高的频谱倾斜。为了避免这个问题,一些方法将输出扩展到16位。相反,我们建议只应用一阶预加重过滤器E (z) = 1minus;alpha;zminus;1训练数据,alpha;= 0.85提供良好的结果。
合成输出可以使用反(去empahsis)滤波器有效地对噪声进行滤波,使其在奈奎斯特速率下的功率降低16 dB。这会显著减少感知噪声(见4.3节),8位micro;-law输出可行的高质量的合成。
3.3线性预测
在许多神经语音合成方法中,神经网络必须模拟整个语音生成过程,包括声门脉冲、噪声激励以及声道响应。虽然其中一些的确很难建模,但我们知道声道响应可以用一个简单的全极线性滤波器很好地表示出来。设t为时刻t的信号,其基于先前样本的线性预测为
其中ak为当前帧的M阶线性预测系数(LPC)。
预测系数a k的计算方法是先将18波段的巴克频率倒谱转换为线性频率功率谱密度(PSD)。然后使用反FFT将PSD转换为自相关。从自相关的角度出发,采用Levinson-Durbin算法进行预测。从倒谱计算预测器可以确保不需要传输(在语音编码上下文中)或合成(在文本到语音上下文中)额外的信息。尽管以这种方式计算的LPC分析不如对输入信号计算的精确(由于倒谱的分辨率较低),但对输出的影响很小,因为网络能够学会补偿。这是与开环滤波方法[12]相比的一个优点。
作为使用线性预测器来帮助神经网络的一个明显的扩展,我们也可以让网络直接预测激励(预测残差)而不是样本值。这不仅是一个稍微简单的任务网络,但也稍微减少了micro;-law量化噪声,自励磁通常比pre-emphasized信号振幅较小。该网络以先前采样的激励et - 1,以及过去的信号st - 1和当前的预测p t作为输入。我们仍然包括stminus;1和p t,因为我们发现仅基于etminus;1的开环合成产生的语音质量很差(参见第3.8节)。
3.4输出层
为了在不显著增加前一层大小的情况下更容易地计算输出概率,我们将两个完全连接的层与一个元素加权和组合在一起。该层,我们称为双全连接(或双alfc)被定义为
dual_fc(x) = a 1 ◦ tanh(W 1 x) a 2 ◦ tanh(W 2 x) , (4)
其中w1和w2是权重矩阵,而a1和a2是权重向量。虽然对于所提出的方法来说并不是必须的,但是我们发现,与同等复杂度下的常规全连接层相比,DualFC层可以稍微提高质量。DualFC背后的含义是判断一个值落在一定范围内(在这种情况下micro;-law量化间隔)需要两个比较,与每个全双曲正切层实现相当于一比较。在一个训练有素的网络中可视化权重支持这种直觉。DualFC层的输出与softmax激活一起使用,以计算每个可能的激励值对et的概率P (et)
3.5稀疏矩阵
为了保持低复杂度,我们对最大的GRU使用稀疏矩阵(图1中的GRU A)。我们使用了块-稀疏矩阵,正如[7]中所建议的那样,而不是允许一般的元素-元素之间的稀疏性(这阻止了有效的向量化)。训练从密集的矩阵开始,并逐步强制最小块的零,直到达到所需的稀疏性。我们发现,16x1块提供了良好的准确性,同时使它很容易矢量化的产品。
除了非零块,我们还包括稀疏矩阵中的所有对角项,因为它们是非零的可能性最大。即使它们不是水平或垂直对齐的,对角线项也很容易向量化,因为它们会导致与向量操作数的元素相乘。包含对角线项可以避免仅对对角线上的单个元素强制16x1非零块。
3.6嵌入和代数简化
我们使用micro;-law值的离散特性学习一个嵌入矩阵E,而非在标量样本值送进网络前将他们拓展到一个固定范围。嵌入把每个micro;-law级别映射为一个向量,本质上学习一组非线性函数应用到micro;-law值。可视化的嵌入矩阵训练网络,我们能够确认嵌入获悉——除此之外micro;-law尺度转换为线性的函数。只要将嵌入直接发送到GRU,就可以通过预先计算嵌入矩阵与GRU的非递归权值(U(·))的对应子矩阵的乘积来避免增加复杂度。让U的子矩阵的列组成的适用于嵌入s tminus;1的输入样本,我们可以推出一个新的嵌入矩阵V (U,年代)= U (U, s) E直接映射示例s tminus;1的临时术语更新门计算。同样的变换适用于所有的门(u, r, h)和所有的嵌入式输入(s, p, e),总共有9个预先计算好的V(·,·)矩阵。这样,嵌入的贡献可以简化为每个门、每个嵌入的输入只有一个加法操作。因为每个样本中每个嵌入矩阵只使用一个条目,所以即使它们不适合缓存,这些矩阵的大尺寸也不是问题。
与嵌入类似,帧条件向量f的贡献也可以简化,因为它在整个帧上是常数。每帧一次,我们可以计算g(·)= U(·)f,即f对每个GRU门的贡献。
上面的简化基本上使得主GRU的所有非经常性输入的计算成本可以忽略不计,因此(1)中的计算变为
其中v(·,·)向量是列向量i对对应的V(·,·)矩阵的查找,而GRU B(·)是一个规则的非稀疏GRU,用于代替(1)中ReLU激活的全连通层。
图2所示。在训练过程中,噪声与表示micro;-law量化的Q和表示从micro;-law转换到线性的Q-1加合。预测滤波器P(z)应用于有噪声的量化输入。激励被计算为干净的、非量子化的输入和预测之间的差。注意噪声添加在micro;-law域。
3.7概率分布抽样
直接从输出分布中采样有时会产生过多的噪声。在[6]中,通过将logits乘以声音的常数c = 2来解决这个问题,这相当于降低采样过程的“温度”。我们没有做一个二进制的声音决定,而是设置
c = 1 max(0,1.5g p minus; 0.5) (6)
其中g p是音高相关(0 lt; g p lt; 1),作为第二步,我们从分布中减去一个常数,以确保任何低于该常数阈值T的概率为零。这可以防止由低概率引起的脉冲噪声。修正后的概率分布变成
其中,R(·)运算符将两个步骤之间的分布和结果上的分布重新正规化为单位。我们发现,T = 0.002在减少脉冲噪声和保持语音的自然度之间提供了一个很好的平衡。
3.8训练噪声注入
当合成语音时,网络在与训练不同的条件下运行,因为生成的样本与训练中使用的样本不同(更不完美)。这种不匹配会放大并导致合成中的过度扭曲。为了使网络对失配具有更强的鲁棒性,我们在训练过程中向输入添加噪声,如[6]中所建议的那样。
线性预测的使用使得噪声注入的细节变得尤为重要。当在信号中注入噪声,但对网络进行净激励训练时,我们发现系统产生的伪影与合成分析前的声码器时代相似,其中噪声的形状与合成滤波器相同.相反,我们发现,通过加入如图2所示的噪声,网络有效地学会了最小化信号域内的误差,因为即使它的输出是预测残差,它的一个输入与用来计算残差的预测是相同的。这类似于CELP中通过合成分析的效果[18,19],大大减少了合成语音中的伪影。
为了使噪声与信号的振幅成正比,我们直接注入micro;-law域。我们在训练数据中改变它的分布,从无噪声到在[minus;3,3]范围内的均匀分布。
图3所示。主观质量(MUSHRA)结果是GRU a中密度当量单位数的函数。
评估
这项工作的源代码可以在https://github.com/mozilla/LPCNet/的开源许可下获得。本节中的评估基于commit 0ddcda0。
4.1复杂度
所提出的LPCNet模型的复杂性主要来自于两个gru和两个全连通层。它对应于每个产生的样本的每重量的两个操作(一个加法,一个乘法),为
NA和NB是两个GRU的大小,d是GRU的密度,Q是micro;-law的数量水平和F s采样率。使用N A = 384, N B = 16, Q = 256的宽带语音(F s = 16000),并考虑约0.5 GFLOPS的复杂性为被忽视的术语(偏差,调节网络,激活函数,hellip;),我们得到的总复杂性约2.8 GFLOPS。实时合成可以在苹果A8 (iPhone 6)的单核上实现,也可以在2.4 GHz的英特尔Broadwell核上实现。
作为比较,与说话者相关的FFTNet模型——声称比原始WaveNet[5]算法复杂度更低——的复杂度约为16 GFLOPS[6]。原始WaveRNN的复杂度——作为一个依赖于说话者的模型进行评估——并没有明确说明,但是我们对WaveRNN[7]论文中提供的数据的解释表明,稀疏移动版本的复杂度大约为10 GFLOPS。SampleRNN的复杂性也没有明确说明,但是从文章中我们估计大约有50 GFLOPS(主要是1024个单元的MLP层造成的)。
4.2实验设置
虽然我们提出的系统可以是依赖或独立于扬声器,我们评估它在更具挑战性的独立扬声器的环境。为了隔离声码器本身的质量,我们直接从录制的语音样本中计算特征。倒谱使用与[20]相同的频带布局,基音估计器基于开环互相关搜索。
训练数据只包含来自NTT多语言语音测试数据库(21种语言)的4小时语音,我们排除了测试中使用的所有说话者的样本。每个网络训练了120个epoch (230k更新),批处理大小为64,每个序列包含15个10-ms帧。培训进行的Nvidia GPU Keras 1 / Tensorflow 2使用CuDNN GRU实现和AMSGrad[21]优化方法(亚当变种),步长alpha;=,其中=0.
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[239455],资料为PDF文档或Word文档,PDF文档可免费转换为Word