Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

毕梦霄,卢恒,张仕良,雷鸣,鄢志杰作者ICASSP-2018收录于

基于深度前馈序列记忆网络,如何将语音合成速度提升四倍?

阿里妹导读:我们提出了一种基于深度前馈序列记忆网络的语音合成系统。该系统在达到与基于双向长短时记忆单元的语音合成系统一致的主观听感的同时,模型大小只有后者的四分之一,且合成速度是后者的四倍,非常适合于对内存占用和计算效率非常敏感的端上产品环境。

研究背景

语音合成系统主要分为两类,拼接合成系统和参数合成系统。其中参数合成系统在引入了神经网络作为模型之后,合成质量和自然度都获得了长足的进步。另一方面,物联网设备(例如智能音箱和智能电视)的大量普及也对在设备上部署的参数合成系统提出了计算资源的限制和实时率的要求。本工作引入的深度前馈序列记忆网络可以在保持合成质量的同时,有效降低计算量,提高合成速度。

我们使用基于双向长短时记忆单元(BLSTM)的统计参数语音合成系统作为基线系统。与其他现代统计参数语音合成系统相似,我们提出的基于深度前馈序列记忆网络(DFSMN)的统计参数语音合成系统也是由3个主要部分组成,声音合成器(vocoder),前端模块和后端模块,如上图所示。我们使用开源工具WORLD作为我们的声音合成器,用来在模型训练时从原始语音波形中提取频谱信息、基频的对数、频带周期特征(BAP)和清浊音标记,也用来在语音合成时完成从声学参数到实际声音的转换。前端模块用来对输入的文本进行正则化词法分析,我们把这些语言学特征编码后作为神经网络训练的输入。后端模块用来建立从输入的语言学特征到声学参数映射,在我们的系统中,我们使用DFSMN作为后端模块。

深度前馈序列记忆网络

紧凑前馈序列记忆网络(cFSMN)作为标准的前馈序列记忆网络(FSMN)的改进版本,在网络结构中引入了低秩矩阵分解,这种改进简化了FSMN,减少了模型的参数量,并加速了模型的训练和预测过程。

上图给出了cFSMN的结构的图示。对于神经网络的每一个cFSMN层,计算过程可表示成以下步骤①经过一个线性映射,把上一层的输出映射到一个低维向量②记忆模块执行计算,计算当前帧之前和之后的若干帧和当前帧的低维向量的逐维加权和③把该加权和再经过一个仿射变换和一个非线性函数,得到当前层的输出。三个步骤可依次表示成如下公式。

与循环神经网络(RNNs,包括BLSTM)类似,通过调整记忆模块的阶数,cFSMN有能力捕捉序列的长程信息。另一方面,cFSMN可以直接通过反向传播算法(BP)进行训练,与必须使用沿时间反向传播算法(BPTT)进行训练的RNNs相比,训练cFSMN速度更快,且较不容易受到梯度消失的影响。

对cFSMN进一步改进,我们得到了深度前馈序列记忆网络(DFSMN)。DFSMN利用了在各类深度神经网络中被广泛使用的跳跃连接(skip-connections)技术,使得执行反向传播算法的时候,梯度可以绕过非线性变换,即使堆叠了更多DFSMN层,网络也能快速且正确地收敛。对于DFSMN模型,增加深度的好处有两个方面。一方面,更深的网络一般来说具有更强的表征能力,另一方面,增加深度可以间接地增大DFSMN模型预测当前帧的输出时可以利用的上下文长度,这在直观上非常有利于捕捉序列的长程信息。具体来说,我们把跳跃连接添加到了相邻两层的记忆模块之间,如下面公式所示。由于DFSMN各层的记忆模块的维数相同,跳跃连接可由恒等变换实现。

我们可以认为DFSMN是一种非常灵活的模型。当输入序列很短,或者对预测延时要求较高的时候,可以使用较小的记忆模块阶数,在这种情况下只有当前帧附近帧的信息被用来预测当前帧的输出。而如果输入序列很长,或者在预测延时不是那么重要的场景中,可以使用较大的记忆模块阶数,那么序列的长程信息就能被有效利用和建模,从而有利于提高模型的性能。

除了阶数之外,我们为DFSMN的记忆模块增加了另一个超参数,步长(stride),用来表示记忆模块提取过去或未来帧的信息时,跳过多少相邻的帧。这是有依据的,因为与语音识别任务相比,语音合成任务相邻帧之间的重合部分甚至更多。

上文已经提到,除了直接增加各层的记忆模块的阶数之外,增加模型的深度也能间接增加预测当前帧的输出时模型可以利用的上下文的长度,上图给出了一个例子。

实验

在实验阶段,我们使用的是一个由男性朗读的中文小说数据集。我们把数据集划分成两部分,其中训练集包括38600句朗读(大约为83小时),验证集包括1400句朗读(大约为3小时)。所有的语音数据采样率都为16k赫兹,每帧帧长为25毫秒,帧移为5毫秒。我们使用WORLD声音合成器逐帧提取声学参数,包括60维梅尔倒谱系数,3维基频的对数,11维BAP特征以及1维清浊音标记。我们使用上述四组特征作为神经网络训练的四个目标,进行多目标训练。前端模块提取出的语言学特征,共计754维,作为神经网络训练的输入。

我们对比的基线系统是基于一个强大的BLSTM模型,该模型由底层的1个全连接层和上层的3个BLSTM层组成,其中全连接层包含2048个单元,BLSTM层包含2048个记忆单元。该模型通过沿时间反向传播算法(BPTT)训练,而我们的DFSMN模型通过标准的反向传播算法(BP)训练。包括基线系统在内,我们的模型均通过逐块模型更新过滤算法(BMUF)在2块GPU上训练。我们使用多目标帧级别均方误差(MSE)作为训练目标。

所有的DFSMN模型均由底层的若干DFSMN层和上的2个全连接层组成,每个DFSMN层包含2048个结点和512个投影结点,而每个全连接层包含2048个结点。在上图中,第三列表示该模型由几层DFSMN层和几层全连接层组成,第四列表示该模型DFSMN层的记忆模块的阶数和步长。由于这是FSMN这一类模型首次应用在语音合成任务中,因此我们的实验从一个深度浅且阶数小的模型,即模型A开始(注意只有模型A的步长为1,因为我们发现步长为2始终稍好于步长为1的相应模型)。从系统A到系统D,我们在固定DFSMN层数为3的同时逐渐增加阶数。从系统D到系统F,我们在固定阶数和步长为10,10,2,2的同时逐渐增加层数。从系统F到系统I,我们固定DFSMN层数为10并再次逐渐增加阶数。在上述一系列实验中,随着DFSMN模型深度和阶数的增加,客观指标逐渐降低(越低越好),这一趋势非常明显,且系统H的客观指标超过了BLSTM基线。

另一方面,我们也做了平均主观得分(MOS)测试(越高越好),测试结果如上图所示。主观测试是通过付费众包平台,由40个母语为中文的测试人员完成的。在主观测试中,每个系统生成了20句集外合成语音,每句合成语音由10个不同的测试人员独立评价。在平均主观得分的测试结果表明,从系统A到系统E,主观听感自然度逐渐提高,且系统E达到了与BLSTM基线系统一致的水平。但是,尽管后续系统客观指标持续提高,主观指标只是在系统E得分的上下波动,没有进一步提高。

结论

根据上述主客观测试,我们得到的结论是,历史和未来信息各捕捉120帧(600毫秒)是语音合成声学模型建模所需要的上下文长度的上限,更多的上下文信息对合成结果没有直接帮助。与BLSTM基线系统相比,我们提出的DFSMN系统可以在获得与基线系统一致的主观听感的同时,模型大小只有基线系统的1/4,预测速度则是基线系统的4倍,这使得该系统非常适合于对内存占用和计算效率要求很高的端上产品环境,例如在各类物联网设备上部署。

英文论文地址:https://arxiv.org/abs/1802.09194

工程前馈神经网络语音合成智能音箱语音识别
1
相关数据
参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

语音合成技术

语音合成,又称文语转换(Text to Speech)技术,是将人类语音用人工的方式所产生,能将任意文字信息实时转化为标准流畅的语音朗读出来,相当于给机器装上了人工嘴巴。它涉及声学、语言学、数字信号处理、计算机科学等多个学科技术,是信息处理领域的一项前沿技术,解决的主要问题就是如何将文字信息转化为可听的声音信息,也即让机器像人一样开口说话。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

反向传播算法技术

反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法计算对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。 在神经网络上执行梯度下降法的主要算法。该算法会先按前向传播方式计算(并缓存)每个节点的输出值,然后再按反向传播遍历图的方式计算损失函数值相对于每个参数的偏导数。

词法分析技术

词法分析是计算机科学中将字符序列转换为标记序列的过程。进行词法分析的程序或者函数叫作词法分析器,也叫扫描器。词法分析器一般以函数的形式存在,供语法分析器调用

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

长短期记忆网络技术

长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~