searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Deep Voice系列模型介绍

2024-06-26 09:44:09
2
0

Deep Voice1/2基于传统SPSS流水线,用CNN进行增强。Deep Voice3采用encoder-attention-decoder 的结构,和Tacotron整体结构类似,但采用CNN而不是RNN作为主体网络。 本文对Deep Voice,Deep Voice2,Deep Voice3进行介绍。

Deep Voice

1.  提出背景

1.  现代TTS系统基于复杂的、多阶段的处理框架,每一阶段都可能依赖于手工特征和探索性步骤。由于这种复杂性,开发新的TTS系统可能是非常劳动密集的和困难的。

2.  Deep Voice采用传统TTS系统相同的架构,但是用神经网络替换所有的组件,并使用更简单的特征。

3.  实时推理,满足生产环境对速度的要求。

2.  模型结构

1.  grapheme to phoneme 获得音频对应的音素序列

模型或字典完成,字典中有的直接用字典,没有的用模型预测。

模型结构:encoder-decoder结构 encoder:多层双向GRU decoder:单向GRU

2.  segmentation 确定韵律边界,获得音素的位置和时长、基频,作为3、4步模型训练的标签

用一个ASR网络,结合CTC loss。无监督训练。

输入音频段和对应的音素,输出音素对和他们的起始时间。

 

预测音素对的原因:

对给定时间戳对应的某个音素进行预测时,在该音素发声的中间位置预测的概率是最大的。对独立单个的音素而言,给定语音对应某个音素的概率在语音的发声正中最大;而对成对的音素而言,概率最大值出现在两个音素交界点上,因此能进行更简单的定位。

 

推理时不使用,仅训练时给训练数据标注韵律边界。

1.  phoneme duration predict

2.  fundamental frequence predict

用一个模型预测3,4。输入带有stess的音素序列,输出音素持续时间、音素发声的概率、基频。

模型结构:两个DNN,两个GRU,一个DNN(由2的输出作为target吗)

3.  audio synthesis

WaveNet,输入带有持续时间和基频的音素,输出语音

 

即 训练分步,训练标签由前一步获得。训练时2步获得3、4步的标签,训练3、4步的模型。推理时直接1获得音素,经3、4的模型输出时长和基频,这些信息进行语音合成。

 

 

Deep Voice 2

1.  提出背景

1.  构建多说话人系统

2.  模型结构

与Deep Voice的区别如下;

1.  segmentation与Deep Voice对比,增加了batch norm和residual connection。发现模型在静音音素处易出错,增加一步后处理。

2.  先预测duration再预测frequency。对于duration,不再预测连续值,而是把它作为一个序列标注问题,用离散化的值标注

3.  多说话人的实现

用一个低维speaker embedding vector代表说话人,通以下几种方式添加到模型中

1.  Site-Specific Speaker Embeddings:在模型每一个用的地方,将shared embedding通过affine projection 和nonlinearity转换成合适的维度和形式。

2.  Recurrent Initialization:用site-specific speaker embedding将循环层的变量初始化

3.  Input Augmentation:在循环层的每一个时间步,将Site-Specific Speaker Embeddings和输入拼接;

4.  Feature Gating:多层激活函数和的Site-Specific Speaker Embeddings点乘,产生适应性强的信息流

4.  性能测评

1.  Deep Voice2比1性能有提升;对Tacotron用wavenet能明显提升性能。

2.  在多说话人数据集上训练,模型能学到上百种说话人口音和特征,且观察speaker embedding,发现其在一个有意义的潜在空间里。

 

Deep Voice 3

1.  提出背景

1.  提出基于完全卷积的字符到频谱图架构,基于attention,能够实行完全并行计算,且比基于RNN的模型快一个数量级。

2.  Deep Voice1/2保留了传统TTS 流水线的结构,各部分分开。Deep Voice3是seq2seq的结构。

3.  支持数千个说话人。

2.  模型结构

基于encoder-attention-decoder结构,和Tacotron整体结构类似,但采用CNN而不是RNN。decoder部分采用自回归,因果卷积。

用足够大的感受野,堆积的卷积层,捕捉序列中的上下文信息。模型结构包括三部分

1.  encoder

a.  文本预处理: 所有字符大写;删除标点符号;句号或问号结束每一句话;插入四种不同的分隔符,代表不同的停顿时长

b.  支持的输入:

字符 :需要预处理,字典/模型,将字符转化为音素

字符+音素:若仅输入字符,可能在隐式转换中出错,此时可输入音素外部修正。

音素

文本特征->中间变量(key,value)

2.  decoder

mel input-> query-> attention with encoder, context vector ->mel output/stop

3.  converter

后处理,产生能输入vocoder的变量

loss是解码器和转换器的线性组合

3.  性能测评

1.  单说话人MOS分:Wavenet做声码器,和Tacotron持平

2.  多说话人MOS分:在VCTK上与DeepVoice2可比,低于DeepVoice2

 

 

0条评论
0 / 1000
戴****茜
2文章数
0粉丝数
戴****茜
2 文章 | 0 粉丝