aria tech blog

深層学習に関する調べものなどをまとめます

論文解説:Phonetic Posteriorgrams based Many-to-Many Singing Voice Conversion via Adversarial Training

目次

論文情報

arxiv[2012.01837] Phonetic Posteriorgrams based Many-to-Many Singing Voice Conversion via Adversarial Training
demo : https://hhguo.github.io/DemoEASVC/

概要

本論文では、end-to-endの敵対的歌声変換手法であるEA-SVC(End-to-end Adversarial Singing Voice Conversion)を提案しています。

EA-SVCでは、発生内容を表すPPG(phonetic posterior-gram、音素事後確率)、ピッチを表すF0、音色を表す話者埋め込みの3種類の特徴量から任意の歌声音声波形を直接生成することが可能です。 提案するモデルは、Generator G、Audio Generation Discriminator D_A、Feature Disentanglement Discriminator D_F の3つのモジュールから構成されています。 Generator G は入力される3種類の特徴量を並列にエンコードし、それらをconcatした物をデコードすることで目的の波形へと変換します。 さらに、Feature Disentanglement Discriminator D_F を適用し、Generator G によりエンコードされたPPGに残っているPitchとtimbrerの情報を除去することで、よりロバストで正確な歌声変換を実現することが可能となります。
また、提案手法では訓練を2段階に分けて行っており、これにより安定した効果的な敵対者訓練プロセスを維持することが可能となります。
実験より、提案モデルは品質と話者類似性の両方において従来のcascadeな畳み込みの手法とWaveNetベースのend-to-endの手法を凌駕していることが確認できました。 また客観分析では、提案する2段階の訓練により学習したモデルはより滑らかでシャープなフォルマントを生成し、高品質化な生成が可能になることが明らかになりました。

提案手法

本論文では、end-to-endの敵対的歌声変換手法であるEA-SVCを提案しています。
本論文のContributionsとして、以下のことが挙げられます。

  • 波形にPPG、F0、話者埋め込みをマッピングするために、MelGAN[2]をベースにしたジェネレータを設計しています。
    入力特徴量を波形に変換する際に、CNN-BLSTMベースのモジュールにより、PPGとF0シーケンスからそれぞれの特徴量を抽出し、concatしています。 また、ロバストで制御可能な音色表現を獲得するため、話者埋め込みは異なる音色・話者を表す訓練可能なベクトルの重み付け和として表現されます。

  • 2つの識別器がGenerator G の学習プロセスに追加されます。
    Audio Generation Discriminator D_A は、本物の音声と生成された偽の音声を分類することで、より良い品質の音声を生成できるようにGenerator G に制約を加えます。 Feature Disentanglement Discriminator D_FエンコードされたPPGの情報からピッチ情報と音色情報を推測するような学習を行い、Generator G はそれをさせないように学習をします。その結果、よりロバストで正確な変換品質が得られることが確認できました。

  • 上記学習プロセスを効率的かつ安定的に行うために、2段階の学習戦略を採用しています。
    提案手法では、まずmulti-resolution STFT(MR-STFT) Lossを用いて生成器を訓練し、その後モデルをより安定させるためにMR-STFT Lossと敵対的Lossの両方を用いてモデルを訓練します。

  • 手法の評価のために、主観試験と実験分析を実施しています。
    MOSによる評価の結果、提案手法の有効性が実証されました。 提案手法は従来のcascadeな畳み込みの手法やWaveNetベースのend-to-endの手法に比べて品質と話者類似度の両方において優れた性能を示したました。 客観分析では、提案する2段階の訓練により学習したモデルはより滑らかでシャープなフォルマントを生成し、高品質化な生成が可能になることが明らかになりました。 さらに、提案手法の有効性を検証するために、提案モデルを用いて音色やピッチの制御実験を行いました。

Generator

f:id:ariacat3366:20201215200836p:plain:w900
Generator Gアーキテクチャ
Generator G は、上記の概要図の左側と右側でそれぞれ別の役割を持っています。
図の左側のモジュールはEncoderとしての役割を担っています。入力としてPPG、F0、話者埋め込みベクトルのsequentialな情報を受け取り、並行して情報の圧縮を行います。

ここで、より良い話者埋め込み表現を獲得するため、GST-Tacotron[3]で提案された話者埋め込み手法にinspiredされた話者埋め込みのモジュールを提案しています。 以下が提案している話者埋め込みのモジュールを表す式となります。

f:id:ariacat3366:20201216130358p:plain:w600
ここで、S非線形変換がなされた入力話者ベクトルを、 E_{1:N} はtrainable weight vectorを表しています。
直接 S を用いるのではなく、S を用いて E_{1:N} のweightを学習することで、clusteringもしくはdisentanglementを促すことができるという主張です。(詳細に関しては自分もまだ理解出来ていません)

図の右側のモジュールはUpsamplerとしての役割を担っています。Encoderにより圧縮された特徴量から、音声波形を直接生成します。
Upsamplerモジュールの構造はMelGAN[2]に非常によく似ており、またLossに関してもMelGANと同じmulti-resolution STFT Loss Loss_{stft} を用いています。
以下はSTFT Lossの定義を示す式となります。

f:id:ariacat3366:20201216130634p:plain:w600

 L_{sc}はspectral convergence Loss、 L_{mag}はlog STFT magnitude Lossを表し、それぞれスペクトル領域での周波数の割合と大きさについての差分を計算するようなLossとなっています。
multi-resolution STFT Loss では、STFT Lossを複数の解像度で計算し、そのsumをとることで計算されます。論文では以下の表のパラメタを用いています。

f:id:ariacat3366:20201216130651p:plain:w600

後述する D_AD_F からのadversarial lossと上記をまとめると、 G に対するLossは以下のようになります。

f:id:ariacat3366:20201216130701p:plain:w600

Audio Generation Discriminator

f:id:ariacat3366:20201216125506p:plain:w600
Audio Generation Discriminator D_Aアーキテクチャ
Audio Generation Discriminator D_A は、入力された音声がオリジナルの音声なのか、Generator G により生成された音声なのかを識別するような学習を行います。D_A を騙せるように G の学習を行うことで、 G の生成する音声の品質を高めるのが狙いです。

D_A に対するLossは以下のようになります。

f:id:ariacat3366:20201216130411p:plain:w600

G に対しては、通常のAdversarial Lossに加えて、以下の式で定義されるFeature Mapping Loss L_{FM} を与えます。

f:id:ariacat3366:20201216130424p:plain:w600

L_{FM} はオリジナルの音声が入力された場合と G により生成された音声が入力された際に、 D_A のブロックiごとの出力が同じになるような制約を G に与えています。この制約により、 GD_A の各特徴空間レベルでオリジナルの音声に似ている音声を生成できるように促します。

最終的に D_A により与えられる G に対するLossは以下のようになります。

f:id:ariacat3366:20201216130434p:plain:w600

Feature Disentanglement Discriminator

f:id:ariacat3366:20201216125538p:plain:w600
Feature Disentanglement Discriminator D_Fアーキテクチャ
Feature Disentanglement Discriminator D_F は、敵対的学習によりGenerator G によりエンコードされたPPGからF0と話者性に関する情報を除去するためのモジュールです。
PPGはコンテンツ情報をよく表現する一方で、音程や話者性の情報を含んでしまうことが知られており、モデルがその情報に依存してしまうと情報の衝突が発生しノイズの原因となってしまいます。
D_F は、Generator G によりエンコードされたPPGから、同じくエンコードされたF0と話者埋め込み情報がconcatされた値を予測するように学習を行い、 G にはそれを妨げるように制約を与えます。

ここで、 D_F に対するLossは以下のようになります。

f:id:ariacat3366:20201216130448p:plain:w600

また、D_F を用いた G に対するLossは以下のようになります。

f:id:ariacat3366:20201216130504p:plain:w600

2段階の訓練

Generator G 、Audio Generation Discriminator D_A 、Feature Disentanglement Discriminator D_F の3つのモジュールを効率的に、安定して学習させるために、提案手法では学習を2つの段階に分けて行うアプローチを提案しています。

Stage 1では、 G のみを学習させます。Lossは Loss_{stft} のみを用います。
ここでの目的は、 G が学習により入力特徴量と音声波形間の正確で安定したマッピングを獲得することです。これにより、 G により安定した生成が行われることが保証されます。

Stage 2では、GD_AD_F の全てのモジュールを学習させます。Lossは全て用います。 ここでの目的は、Stage 1で学習した G のweightを、より最適な分布へと近づけることです。

実験

実験では、従来のcascadeアプローチの手法・WaveNetベースの手法と提案手法のMOS比較を行っています。
cascadeアプローチには、EA-SVCににたモデルを用意しています。違いとして、f0やspk_embを用いていないこと、生成対象がメルスペクトログラムであることが挙げられます。生成されたメルスペクトログラムは、学習済のMelGANを用いて音声波形へと変換します。
WaveNetベースのアプローチには、NVIDIAが以下のリポジトリで公開しているend-to-endの歌声変換モデルを用いています。
GitHub - NVIDIA/nv-wavenet: Reference implementation of real-time autoregressive wavenet inference

また、 D_AD_F の効果を検証するための D_AD_F の有無による生成音声の比較実験、2段階の訓練を行う事による生成音声の比較実験、生成音声の制御性検証のためのピッチコントロール・話者性のコントロール実験についても追加で行っています。

結果

以下は、作者が公開している本手法のデモ音声が聴けるサイトです。
demo : https://hhguo.github.io/DemoEASVC/

以下は従来のcascadeアプローチの手法・WaveNetベースの手法と提案手法のMOS比較の結果を示す表になります。

f:id:ariacat3366:20201216194015p:plain:w500
MOS比較の結果
ここで、C-SVCcascadeアプローチの手法を表しています。
提案手法のMOSが優れていることが確認出来ます。

以下は、 D_AD_F の有無による品質と話者類似性の比較実験の結果を示す表になります。

f:id:ariacat3366:20201216194616p:plain:w500
D_AD_F の有無による比較実験の結果
D_AD_F が品質に強く影響を与えていることが確認出来ます。

以下は2段階の訓練を行うことで、生成される音声のスペクトログラムにどのような差が生じるかの検証実験の結果を示す図になります。

f:id:ariacat3366:20201216195038p:plain:w600
2段階の訓練の検証実験の結果
ここで、 M_0M_0M_0 はそれぞれ以下のような設定で学習したものになります。

  • M_0:Stage2のみの学習、 GL_{adv}のみで学習。
  • M_1 :Stage2のみの学習、 G は全てのLoss(L_{adv}L_{stft})で学習
  • M_2 :Stage1+Stage2を段階的に学習、 G は全てのLoss(L_{adv}L_{stft})で学習

M_2 がもっとも明瞭で滑らかなスペクトログラムであることが確認出来ます。

以下は、話者性を逐次的に変化させて行った際のaveraged magnitude spectrogramを示した図になります。

f:id:ariacat3366:20201216200511p:plain:w600
また、以下は入力F0のピッチをシフトさせた際の生成音声のピッチを表す図になります。
f:id:ariacat3366:20201216200706p:plain:w400
それぞれの図より、提案手法の生成音声の制御性が確認出来ます。

所感

最近の音声変換手法はPPGを使うアプローチが頭ひとつ抜けて品質が良い印象があります。
また、MelGAN[2]は学習が安定すること、生成音声の品質が良いこと、推論が従来のNeuralVocoderと比較して早いことなどから個人的に好きな手法だったので、MelGANのアーキテクチャをベースにしたEA-SVCのモデルアーキテクチャはかなり良いなと思いました。

参考文献

  1. Guo, Haohan & Lu, Heng & Hu, Na & Zhang, Chunlei & Yang, Shan & Xie, Lei & Su, Dan & Yu, Dong. (2020). Phonetic Posteriorgrams based Many-to-Many Singing Voice Conversion via Adversarial Training.

  2. Kumar, Kundan & Kumar, Rithesh & Boissiere, Thibault & Gestin, Lucas & Teoh, Wei & Sotelo, José & Brebisson, Alexandre & Bengio, Y. & Courville, Aaron. (2019). MelGAN: Generative Adversarial Networks for Conditional Waveform Synthesis.

  3. Wang, Y., Stanton, D., Zhang, Y., Ryan, R., Battenberg, E., Shor, J., Xiao, Y., Jia, Y., Ren, F. & Saurous, R.A.. (2018). Style Tokens: Unsupervised Style Modeling, Control and Transfer in End-to-End Speech Synthesis. Proceedings of the 35th International Conference on Machine Learning, in PMLR 80:5180-5189