您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何實現圖神經網絡在TTS中的應用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
G = {V, E}, 有向, 無向, 加權, 非加權, 同構, 異構(不同結構/意義的邊/點)
為什么要用? 數據有非歐幾里的距離的信息含義
歐幾里得距離: 比如識別貓圖片的 CNN, 就是可以通過簡單的距離就可以描述(不需要建邊)
圖神經網絡: 學習一個包含鄰居節點信息的狀態特征(state embedding), 表征鄰居的就是邊, 有了邊, 也就升級成為了圖
引入迭代函數 F, (最終可以讓圖穩定狀態, 也可以不穩定, 流動是關鍵), H 就代表了 general 的圖的信息
圖神經網絡分為: 傳播步, 輸出步
loss 可以訓練點的值, 邊的值, 并且邊的值和點的值都和整幅圖有信息溝通
建模韻律
與 NLP 引入復雜特征類似
圖的結構和專家知識對文本的分析一致, GNN 更合適
直接替換原本 Encoder 結構
定義文本中的點和邊: 英文字母是點, 虛擬點是詞點和句子點. 順序邊, 逆序邊, 父節點詞邊, 父節點句子邊
與 # 標簽的區別就是, 利用結構的便利, 顯示的使用了詞邊界信息
代碼角度是, Encoder 中的 RNN 變 GCN, 有傳播步, 輸出步
保留 Tacotron 的 Encoder, 單獨設計 GAE 模塊建模語法與韻律的信息關系
GAE 的輸入是邊界信息 + 文本, 輸出作為 Attention 的 Memory(可以與 Encoded Output 拼接, 做一個信息殘差)
使用圖, MOS 就會好
GGNN 比 GCN效果更好
使用圖, attention 會容易錯, 所以 GAE 各方面都最好
但事實上, GAE 模型中, GAE 模塊天然結構和 input 利于捕捉韻律信息, 同時和 Encoder 一起表示發音信息, 其實不是特征解耦的思路, 而是一個 post-net 殘差的思路, 多了這個結構, 強化下就可
style sequence 和 style embedding 在哪里拼接到 Encoder 的特征上
Relation Encoder, 建模兩個單詞的語法關系, 表征他們的語法依存樹 -> 語法依存圖(單向邊變成雙向, 并且權重不同); 圖中節點之間的最短路徑代表兩個單詞的關系(因為距離是差距的直觀度量); 單詞之間的距離確定了(自己與自己建一條 self 邊), char 級別就是所屬單詞之間的距離. 最終可以得到任意兩個字之間的依存關系 (N * N - 1) 個序列, Rij, Rii -> Cij, Cii; N * N - 1 個序列 N * N-1通過 同一個Bi-GRU, 計算出來 Cij
Graph Encoder, 把 Transformer 改進為基于語法來做一個 Attention, Cij 改進 dot-score 或者 add-score; 相當于更精準的 Positional Encoding
根據逸軒的思路, 逸軒想要用 GCN 直接使用詞依存關系, phoneme + bert_out + 依存關系 -> linguistic feature (但是這種方式比GraphSpeech更難, 是訓練不出來的)
只有詞父節點信息的 GCN 就已經不好調了, 因此這種方法需要簡化 GCN 的結構和權重
確定邊的總類, 再確定同一類下共享邊(相同邊)是哪些, 由于文本的語法依存很規則, 很統一, 可以利用這個來簡化圖神經網絡的 edge weights
詞的詞性也要體現在 node 上, 有一定 dim 的共享
這個可以叫 TTS-Simplify-GCN, 類比于 TTS 的 Attention 并不需要那么強大
PyG
DGL
以上就是如何實現圖神經網絡在TTS中的應用,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。