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

发布时间:2022-01-15 10:16:07 作者:柒染
来源:亿速云 阅读:197

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

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中的应用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. 神经网络在测试抽样中的应用
  2. 图神经网络可以应用在哪些地方

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

tts

上一篇:重启服务器后出现MySQL 'localhost' (10061)错误怎么办

下一篇:springboot整合quartz定时任务框架的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》