📄

RAVE - VAEを用いたリアルタイムの音色変換アルゴリズム (2019)

Entry

RAVE - VAEを用いたリアルタイムの音色変換アルゴリズム (2019)

Simple Title

Caillon, Antoine, and Philippe Esling. 2021. “RAVE: A Variational Autoencoder for Fast and High-Quality Neural Audio Synthesis.” arXiv [cs.LG]. arXiv. http://arxiv.org/abs/2111.05011.

Type
Paper
Year

2019

Posted at
July 10, 2024 7:32 AM (GMT+9)
Tags
sound

Overview

  • Timbre Transfer (音色の変換)をリアルタイムに48kHzの高音質で可能にする画期的な研究
  • RAVE = Realtime Audio Variational Autoencoder: VAEをベースにしたアーキテクチャ
  • 二段階の学習を利用: 一般的なVAEの学習の後に、adversarial fine-tuningでクオリティを上げる
  • オープンソースのプロジェクトとして2019年に発表されその後多くのアーティストが作品に活用。影響力の強い研究。

Abstract

Deep generative models applied to audio have improved by a large margin the state-of-the-art in many speech and music related tasks. However, as raw wave- form modelling remains an inherently difficult task, audio generative models are either computationally intensive, rely on low sampling rates, are complicated to control or restrict the nature of possible signals. Among those models, Variational AutoEncoders (VAE) give control over the generation by exposing latent vari- ables, although they usually suffer from low synthesis quality. In this paper, we introduce a Realtime Audio Variational autoEncoder (RAVE) allowing both fast and high-quality audio waveform synthesis. We introduce a novel two-stage train- ing procedure, namely representation learning and adversarial fine-tuning. We show that using a post-training analysis of the latent space allows a direct control between the reconstruction fidelity and the representation compactness. By lever- aging a multi-band decomposition of the raw waveform, we show that our model is the first able to generate 48kHz audio signals, while simultaneously running 20 times faster than real-time on a standard laptop CPU. We evaluate synthesis quality using both quantitative and qualitative subjective experiments and show the superiority of our approach compared to existing models. Finally, we present applications of our model for timbre transfer and signal compression. All of our source code and audio examples are publicly available.

Motivation

  • 音色変換 timbre transferは、音のスタイル変換ともいうべきもので、入力音を別の音に変換するアルゴリズムのことを指す。例えば、自分の声がバイオリンやドラムの音に変換される。
  • 音色変換を含む音響合成のアルゴリズムが多数発表されているが、いずれもサンプリングレートが低かったり生成に時間がかかったりした (2019年当時)
  • RAVEでは、ハイクオリティ (48kHz) かつリアルタイム (CPUでリアルタイムの20倍以上のスピード) を目指す

Architecture

RAVEのアーキテクチャ
RAVEのアーキテクチャ
  • 前提として入出力ともに, 48kHz (CDのサンプリングレート 44.1kHz 以上)の波形
  • VAEをベースにしたアーキテクチャ
  • 学習は以下の二段階で行う
    • step1: Representation learning
      • 通常のVAEの学習
      • 入出力のreconstruction lossは、Multiscale Spectral Distanceを利用
      • S(x,y)=nN[STFTn(x)STFTn(y)FSTFTn(x)F+log(STFTn(x)STFTn(y)1)]S(\mathbf{x}, \mathbf{y})=\sum_{n \in \mathcal{N}}\left[\frac{\left\|\operatorname{STFT}_n(\mathbf{x})-\operatorname{STFT}_n(\mathbf{y})\right\|_F}{\left\|\operatorname{STFT}_n(\mathbf{x})\right\|_F}+\log \left(\left\|\operatorname{STFT}_n(\mathbf{x})-\operatorname{STFT}_n(\mathbf{y})\right\|_1\right)\right]
        • N\mathcal{N} の入出力のペア. F\|\cdot\|_F フロベニウスノルム (行列のノルム) STFTn\operatorname{STFT}_n 短時間フーリエ変換の振幅成分 (位相の情報は扱われていない点に注意)
    • step2: Adversarial fine-tuning
      • step1が落ち着いたところで、学習したVAEのエンコーダをフリーズ。デコーダだけを、ファインチューニングすることで音質/自然さの向上を図る。
      • デコーダを生成器とし、識別器 DD を新たに導入。GANの学習に倣ったadversarialな学習を行う
      • Ldis (x,z)=max(0,1D(x))+Ex^p(xz)[max(0,1+D(x^))]Lgen(z)=Ex^p(xz)[D(x^)].\begin{aligned}\mathcal{L}_{\text {dis }}(\mathbf{x}, \mathbf{z}) & =\max (0,1-D(\mathbf{x}))+\mathbb{E}_{\hat{\mathbf{x}} \sim p(\mathbf{x} \mid \mathbf{z})}[\max (0,1+D(\hat{\mathbf{x}}))] \\\mathcal{L}_{\mathrm{gen}}(\mathbf{z}) & =-\mathbb{E}_{\hat{\mathbf{x}} \sim p(\mathbf{x} \mid \mathbf{z})}[D(\hat{\mathbf{x}})] .\end{aligned}

        • DDx\mathbf{x} 本物の音 x^\hat{\mathbf{x}} 合成された音 をそれぞれ入力した時の、各レイヤーの特徴量のL1を誤差関数として追加 (feature matching loss) ← MelGANの研究で提案
        • LFM(G,Dk)=Ex,spdata [i=1T1NiDk(i)(x)Dk(i)(G(s))1]\mathcal{L}_{\mathrm{FM}}\left(G, D_k\right)=\mathbb{E}_{x, s \sim p_{\text {data }}}\left[\sum_{i=1}^T \frac{1}{N_i}\left\|D_k^{(i)}(x)-D_k^{(i)}(G(s))\right\|_1\right]

      • 全体として以下の目的関数をとる (SS は 上の Multiscale Spectral Distance)
      • Ltotal (x,z)=Lgen (z)+Ex^p(xz)[S(x,x^)+LFM(x,x^)].\mathcal{L}_{\text {total }}(\mathbf{x}, \mathbf{z})=\mathcal{L}_{\text {gen }}(\mathbf{z})+\mathbb{E}_{\hat{\mathbf{x}} \sim p(\mathbf{x} \mid \mathbf{z})}\left[S(\mathbf{x}, \hat{\mathbf{x}})+\mathcal{L}_{\mathrm{FM}}(\mathbf{x}, \hat{\mathbf{x}})\right] .

  • 潜在空間をよりコンパクトに
    • 学習後 特異値分解を用いて 潜在空間の次元の中で重要な次元を算出。
      • Z=UΣVT\mathbf{Z}^{\prime}=\mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^{\mathbf{T}}
    • といっても厳密に階数 rankを算出できない = 小さい特異値が0にならないので、fidelity ff という値を導入. 次の値を満たす最初の rfr_f 次元だけを使うことにする (あとは 0.0として扱う)
      • irfΣiiiΣiif\frac{\sum_{i \leq r_f} \boldsymbol{\Sigma}_{i i}}{\sum_i \boldsymbol{\Sigma}_{i i}} \geq f
      • f = 0.99 で rfr_f は 128次元から16, 24次元程度まで小さくなることが実験でわかっている.
  • より詳細なアーキテクチャ
    • エンコーダ
      • Conv1dをベースにした構成 レイヤー数 (N) = 4 潜在ベクトル zは128次元
      • image
    • デコーダ
      • MelGANのデコーダがベース
        • 直接波形を出力する代わりに 三つのサブモジュールを利用
          • waveform conv: マルチバンドのシグナルを生成
          • loudness conv: 振幅情報を出力
          • noise synthesizer: DDSPなどで使われているノイズ生成
          デコーダの構成図
          デコーダの構成図
          デコーダの構成要素
          デコーダの構成要素

Results

Further Thoughts

論文を読んで考えた個人的感想

  • PQMFのところがよくわからない… 勉強不足!

Links

Max/PureData用のObject nn~

簡単に試したい人はオープンソースのAudioUnit/VSTホスト Neutone FX をどうぞ