语音合成综览

1.简介

1. 传统合成方法

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

2. 拼接合成:

在这里插入图片描述

2.1. 拼接合成的主要思想:

拼接合成首先需要录制大量的语料,然后对语料进行拆分,成为很小的语音单元,一并存储在一个很大的语料数据库(large database)当中。 合成的时候,根据输入的文本提取出的语言学特征,从数据库中寻找最接近的音频片段,将这些片段拼接起来,进过平滑处理得到最终的speech。

2.2 需要解决的问题

  • 语料库大,占用存储空间,对移动设备不友好。
  • 并不是每个发音仅存储一个,实际上‘a’这个音对应着很多的不同的片段,以及跟其他音素相连的时候是怎么发音的等等。
  • 拼接后需要平滑处理。

3. 参数合成:

在这里插入图片描述

4. 基于LSTM的语音合成。

SLTM语音合成示意图
基于LSTM的语音合成仍然需要大量的语言学知识,需要一个较为复杂的前端处理模块,将原始文本处理成语言学特征,才能输入到模型中进行训练。
LSTM的语音合成需要训练两个模型,一个是时长模型,用于确定每一个发音单元的发音时长,另外一个是声学模型,用于将语言学特征转换为声学特征。最后仍然需要一个VOCODER将声学特征转换为语音波形。

5. 端到端TTS

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

5.1. 架构

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

5.2 DeepVoice

在这里插入图片描述每个蓝色的模块都是一个model, 有专门的功能,G2P是吧文本转为音素(发音信息), 中间两个分别用于预测 duration 和 F0(声学特征)。最后用 声码器(vocoder)合成声音。
DV并不是严格意义上的端到端系统,更像是对Deep Learning架构一次简化的尝试。

5.3 Tacotron2

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

Vocoder

1. WaveNet

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

3.小结

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

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

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

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

  5. 缺点:

    ● 端到端现在亟待解决的是速度问题。
    ● 因端到端合成速度较慢,因此很难应用于实时系统。
    ● 基于attention机制时, 容易出现丢帧、重复等,反应在语音上是跳字或者重复。

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

  7. TTS是一个涵盖了较多分支课题的领域:

  • 首先是文语转换,追求自然度,可懂度。
  • 其次是个性化合成,追求的是个性化,如音色控制,情感、态度、风格等控制
  • 多语言合成,追求的是仅使用一个模型,实现多个语种自然准确的合成,包括multilingual(说两种语言的句子),code-switch(一句话当中出现两种语言)等等。
  • 低资源。包括训练数据的低资源(zero-shot,one-shot, low resource), 计算资源的低资源(终端合成系统,模型压缩,模型量化,模型加速)
  • 语音转换。可以说是TTS交叉课题,研究语音到语音的转换。
  • 上述课题的结合或者综合。比如多说话人的code-switch. 多说话人多风格合成,低资源的多话者合成等

Reference :

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值