语音合成综览

1.简介

  1. 传统合成方法

    语音合成,通常又称文语转换(Text To Speech,TTS),是一种可以将任意输入文本转换成相应语音的技术,是人机语音交互中不可或缺的模块之一。
    现代TTS的流程十分复杂。比如,统计参数 TTS(statistical parametric TTS)通常具有提取各种语言特征的文本前端、持续时间模型(duration model)、声学特征预测模型和基于复杂信号处理的声码器。这些部分的设计需要不同领域的知识,需要大量精力来设计。它们还需要分别训练,这意味着来自每个组件的错误可能会复合到一起。现代 TTS 设计的复杂性让我们在构建新系统时需要大量的工作。
    语音合成系统通常包含前端和后端两个模块。 前端模块主要是对输入文本进行分析,提取后端模块所需要的语言学信息。对中文合成系统来说,前端模块一般包含文本正则化、分词、词性预测、多音字消歧、韵律预测等子模块。后端模块根据前端分析结果,通过一定的方法生成语音波形。后端模块一般分为基于统计参数建模的语音合成(Statistical Parameter Speech Synthesis,SPSS,以下简称参数合成),以及基于单元挑选和波形拼接的语音合成(以下简称拼接合成)两条技术主线。
    传统的语音合成系统一般采用隐马尔可夫模型来做统计建模。近年来,深度神经网络由于其较高的建模精度,被越来越多地应用到语音合成领域。语音合成技术中用到的神经网络模型主要有 DNN、RNN、LSTM-RNN等。

  2. WaveNet

    WaveNet是一种用于生成音频的强大模型。它对 TTS 来说效果良好,但由于样本级自回归采样的本质(sample-level autoregressive nature),速度较慢。它还需要对来自现有 TTS 前端的语言特征进行调节,以及他并不是直接从文本生成语音的,因此不是端到端的:它只取代了声码器和声学模型。

  3. 端到端TTS

    端到端的生成式文本转语音模型,可以直接从字符合成语音。通过配对数据集进行训练。端到端模型结构为基于encoder-decoder的Seq2Seq的结构。有的还引入了注意机制(attention mechanism)。

2.端到端语音合成

  1. 架构

    当前端到端处理一般分为两部分,一部分是encoder-decoder的Seq2Seq的结构,;另一部分是vocoder解码器.encoder负责将文本转换成声学特征,decoder负责将声学特征转换成语音频谱(现在用的比较多的是MEL频谱)。Vocoder负责将decoder输出的频谱图转换成语音。其中使用比较多的解码器是WaveNet。 WaveNet虽然速度较慢,但是由于其在合成方面的优异表现,被广泛作为合成器使用。另外,WaveNet经过谷歌公司的不断改进,运行速度越来越快,我们在以后工作中,可以使用更快的WaveNet(比如parallel WaveNet)作为vocoder。
    对于中文端到端语音合成,我们还需要考虑的问题是分词,因为英文由于单词之间有空格隔开,可以很方便地实现停顿等,但是中文则需要通过分词,将文本中的词语、短语等分离出来。目前阶段,我们可以先使用现有的比较成熟的中文分析工具,对文本进行处理。

  2. Tacotron2

    Tacotron 由谷歌公司开发,经历两个版本,Tacotron的合成器并没有使用WaveNet 作为vocoder。 Tacotron开始采用modified WaveNet作为vocoder。Tacotron2 采用了加入了attention 机制的encoder-decoder结构。如图2所示:
    语音合成综览_第1张图片
    Encoder将字符序列转换为解码器的隐藏特征,该特征将会放入decoder用于预测谱图。3个卷积层中的最后卷积层的输出层被传递到单个双向LSTM层,每个层包含512个单元来输出编码后的特征。
    语音合成综览_第2张图片
    PreNet的输出与使用上一个解码步输出计算而得的上下文向量做拼接,然后整个送入RNN解码器中,RNN解码器的输出用来计算新的上下文向量,最后新计算出来的上下文向量与解码器输出做拼接,送入投影层(projection layer)以预测输出。输出有两种形式,一种是声谱帧,一种是 的概率,后者是一个简单二分类问题,决定解码过程是否结束。使用缩减因子(reduction factor)即每一个解码步仅允许预测rr(缩减因子)Mel谱帧,能够有效加速计算,减小内存占用。
    Vocoder 的输入时decoder产生的频谱图,输出是音频。一旦解码器完成解码,预测得到的Mel谱被送入一系列的卷积层中以提高生成质量。

3.小结

  1. 端到端系统目前大都采用 encoder-decoder结构,输入文本,输出频谱。

  2. 端到端输出的频谱需要输入vocoder,再转换成语音。现在大多使用修改后的WaveNet。端到端输出的频谱需要输入vocoder,再转换成语音。现在大多使用修改后的WaveNet。

  3. 端到端系统内部,大多加入了BLSTM卷积层,并加入了attention机制。端到端系统内部,大多加入了BLSTM卷积层,并加入了attention机制。

  4. 优点:
    ● 结构相对于传统TTS更简单
    ● 简化了传统语音合成系统的组件,减少了合成系统搭建过程中涉及的不同领域的知识。
    ● 简化了合成流程,减少了人工干预,因此较少了合成过程中出错的机会。
    ● 对语言学知识的要求降低
    ● 将系统用于其他方面,比如用于个性化合成等,会变得更加容易,不必考虑传统系统中因应用环境变化导致各组件配合方式变化。
    ● 相对会出现错误叠加效应的多阶段模型,单一模型倾向于更鲁棒。这些优势意味着,一个端到端的模型能够允许我们在现实世界容易获取的大量的丰富生动的同时也很嘈杂的数据上执行训练。

  5. 缺点:

    ● 端到端现在亟待解决的是速度问题。
    ● 因端到端合成速度较慢,因此很难应用于实时系统。
    ● 端到端现在亟待解决的是速度问题。
    ● 因端到端合成速度较慢,因此很难应用于实时系统。

  6. 建议: 鉴于现在深度学习在语音合成中的应用,基于深度学习的语音合成将会是未来的趋势。由于端到端语音合成目前存在的速度缓慢的问题,我们可以暂时把精力放在LSTM语音合成上。另外,端到端语音合成的提速也可以作为未来努力的方向。

你可能感兴趣的:(语音合成综览)