tacotron

18
Tacotron何云超 [email protected]

Upload: yunchao-he

Post on 21-Jan-2018

164 views

Category:

Engineering


4 download

TRANSCRIPT

Page 1: Tacotron

Tacotron介绍何云超

[email protected]

Page 2: Tacotron

语音合成

•目标: 文字转语音

• 经典方法:• 流程:前端提取文字特征、duration model、声学模型、vocoder

• 每个模块都需专业知识、错误叠加

•端到端• 输入:<文本、语音> 对

• 减少提特征过程

• 自定义条件容易加入,例如不同说话人、不同情感等

• 新数据自适应性强

• 单一模型比多阶段模型更健壮

Page 3: Tacotron

端到端做TTS的挑战

• TTS为解压过程,ASR为压缩过程

•相同的文本,对于不同的发音风格,有不同发音

• TTS输出是连续的,MT, ASR输出是离散

• 输出往往比输入长得多,e.g. 输入5个字,输出1s音频对应16K采样点

Page 4: Tacotron

端到端

•原始输入 -> 理想输出• E.g面粉、水、糖 -> 面包

• 文字 -> 语音(TTS),源语言 -> 目标语言 (MT),语音 -> 文字 (ASR),QA

•方法:sequence to sequence model

Page 5: Tacotron

seq2seq主要构成

• 编码方式

•解码方式

• 编码信息使用方式

红色:输入蓝色:输出绿色:隐含状态

多个:文本序列、语音序列一个:类别

Page 6: Tacotron

编码阶段

•作用:对输入进行表示

•如何表示?• CNN -> 看图说话

• RNN -> 机器翻译

• DNN

• 手工等

•表示结果?• 单一向量,只保留总体记忆

• 多个向量,保留中间记忆

单一向量

多个向量

Page 7: Tacotron

解码阶段

•作用:依据编码阶段产生的向量(可能多个),产生输出

• 问题:• 如何用编码向量

• 如何产生输出

•静态或动态的使用编码向量• 静态:每次所用编码向量不变

• 动态:每次会发生变化(注意力机制)

•用RNN、CNN或NN产生输出

Page 8: Tacotron

Examples

seq2seq for MT

Encoder Decoder Model编码:将输入表示为一个向量解码:静态使用次数:单次使用(理论上可以)缺点:1) 单一一个向量可能不足以描述完整原始输入 2) 原始信息损失

编码:将输入表示为一个向量解码:静态使用次数:多次使用(重复利用)缺点:在产生输出时并不是都依赖于这一全局向量,可能只依赖局部信息

Page 9: Tacotron

Examples

编码:将输入表示为多个向量解码:动态使用次数:多次使用优点:通过调整注意力权值,可以刻画当前输出和哪一个输入更相关

编码:将输入表示为一个向量解码:静态使用次数:多次使用(重复利用) 同前

Page 10: Tacotron

More Detail

编码:将输入表示为多个向量解码:动态使用次数:多次使用优点:通过调整注意力权值,可以刻画当前输出和哪一个输入更相关

如何产生注意力权值?

attention model

C: 场景(查询)向量(context vector)Yi: 即ht,编码器产生的输入表示Z: attention加权输出

Page 11: Tacotron

Encoder-Decoder

RNN Encoder-Decoder With attention

• 输入:

• RNN cell:

• 编码向量:

• 通常:

• Decoder:• 通用:

• RNN:

Page 12: Tacotron

Tacotron Model

• 输入输出:character index -> 80-band mel-scale spectrogram

• 编码• 目标:文字转矩阵• 模型:Pre-net (NN)、CBHG (CNN)

• 解码• 目标:产生输出• 模型:Pre-Net、RNN

• 注意力• 目标:文字矩阵转向量(依据context)

Page 13: Tacotron

Tacotron Model 简化

Encoder

Attention Models

Decoder

Character Embeddings

Context Vector from hidden state

New Context Vector

Previous Output

Output

Page 14: Tacotron

Encoder

• Pre-net + HBCG

• Pre-net: 两个全连接层 [N, T, C] -> [N, T, C] -> [N, T, C/2]

• HGCG: CNN bank + max pooling + CNN + Highway Nets + Bi-GRU

• Highway Nets:

• 𝑦 = 𝑔 ∗ 𝑅𝑒𝐿𝑈 𝑊𝑥 + 𝑏 +1 − 𝑔 ∗ 𝑥

• 𝑔 = 𝜎( 𝑤𝑥 + 𝑏 )

Page 15: Tacotron

Decoder

Attention Models

DecoderContext Vector

from hidden state

New Context Vector

Previous Output

Output

Attention RNN2 GRUs layers with residualDropout in Pre-netTarget: 80-band mel-scale spectrogram

Page 16: Tacotron

论文参数

Page 17: Tacotron

论文实验比较

Page 18: Tacotron

我们的结果

• http://git.n.xiaomi.com/heyunchao/tacotron/tree/4e16daac48988bf7bf349cdb4b653e6032edd935/samples