如何实现图神经网络在TTS中的应用

本篇文章给大家分享的是有关如何实现图神经网络在TTS中的应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都雨棚定制小微创业公司专业提供企业网站建设营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。

1. GNN 概念

1.1. 图神经网络概念

  1. G = {V, E}, 有向, 无向, 加权, 非加权, 同构, 异构(不同结构/意义的边/点)

  2. 为什么要用? 数据有非欧几里的距离的信息含义

  3. 欧几里得距离: 比如识别猫图片的 CNN, 就是可以通过简单的距离就可以描述(不需要建边)

  4. 图神经网络: 学习一个包含邻居节点信息的状态特征(state embedding), 表征邻居的就是边, 有了边, 也就升级成为了图

1.2. GNN具体结构

  1. 引入迭代函数 F, (最终可以让图稳定状态, 也可以不稳定, 流动是关键), H 就代表了 general 的图的信息

  2. 图神经网络分为: 传播步, 输出步

  3. loss 可以训练点的值, 边的值, 并且边的值和点的值都和整幅图有信息沟通

2. GraphTTS-1

2.1. GraphTTS 的目标

  1. 建模韵律

  2. 与 NLP 引入复杂特征类似

  3. 图的结构和专家知识对文本的分析一致, GNN 更合适

  4. 直接替换原本 Encoder 结构

2.2. GraphTTS 结构

  1. 定义文本中的点和边: 英文字母是点, 虚拟点是词点和句子点.   顺序边, 逆序边, 父节点词边, 父节点句子边

  2. 与 # 标签的区别就是, 利用结构的便利, 显示的使用了词边界信息

  3. 代码角度是, Encoder 中的 RNN 变 GCN, 有传播步, 输出步

3. GraphTTS-2

3.1. GAE

  1. 保留 Tacotron 的 Encoder, 单独设计 GAE 模块建模语法与韵律的信息关系

  2. GAE 的输入是边界信息 + 文本, 输出作为 Attention 的 Memory(可以与 Encoded Output 拼接, 做一个信息残差)

4. 两个结构的实验结果

  1. 使用图, MOS 就会好

  2. GGNN 比 GCN效果更好

  3. 使用图, attention 会容易错, 所以 GAE 各方面都最好

  4. 但事实上, GAE 模型中, GAE 模块天然结构和 input 利于捕捉韵律信息, 同时和 Encoder 一起表示发音信息, 其实不是特征解耦的思路, 而是一个 post-net 残差的思路, 多了这个结构, 强化下就可

5. 疑惑

style sequence 和 style embedding 在哪里拼接到 Encoder 的特征上

6. GraphSpeech

如何实现图神经网络在TTS中的应用

如何实现图神经网络在TTS中的应用

如何实现图神经网络在TTS中的应用

6.1 核心工作

  1. Relation Encoder, 建模两个单词的语法关系, 表征他们的语法依存树 -> 语法依存图(单向边变成双向, 并且权重不同); 图中节点之间的最短路径代表两个单词的关系(因为距离是差距的直观度量); 单词之间的距离确定了(自己与自己建一条 self 边), char 级别就是所属单词之间的距离. 最终可以得到任意两个字之间的依存关系 (N * N - 1)  个序列, Rij, Rii -> Cij, Cii;  N * N - 1 个序列 N * N-1通过 同一个Bi-GRU, 计算出来 Cij

  2. Graph Encoder, 把 Transformer 改进为基于语法来做一个 Attention, Cij 改进 dot-score 或者 add-score; 相当于更精准的 Positional Encoding

7. Idea

7.1 GCN 在 TTS 中的简化

根据逸轩的思路, 逸轩想要用 GCN 直接使用词依存关系, phoneme + bert_out + 依存关系 -> linguistic feature (但是这种方式比GraphSpeech更难, 是训练不出来的)

只有词父节点信息的 GCN 就已经不好调了, 因此这种方法需要简化 GCN 的结构和权重

  1. 确定边的总类, 再确定同一类下共享边(相同边)是哪些, 由于文本的语法依存很规则, 很统一, 可以利用这个来简化图神经网络的 edge weights

  2. 词的词性也要体现在 node 上, 有一定 dim 的共享

  3. 这个可以叫 TTS-Simplify-GCN, 类比于 TTS 的 Attention 并不需要那么强大

8. 实现细节

8.1. GNN 库

  1. PyG

  2. DGL

以上就是如何实现图神经网络在TTS中的应用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


网站栏目:如何实现图神经网络在TTS中的应用
本文路径:http://scyanting.com/article/jjpodo.html