📄

Self-Supervised VQ-VAE for One-Shot Music Style Transfer

Cífka, O., Ozerov, A., Şimşekli, U., & Richard, G. (2021). Self-Supervised VQ-VAE For One-Shot Music Style Transfer. http://arxiv.org/abs/2102.05749

Overview - 何がすごい?

画像の領域では割と当たり前になっている one-shot(=大量の学習データを必要としない)のStyle Transferをオーディオの領域で実現する。つまり、あるメロディーのピッチはそのままに音色だけを入れ替える。

そのためにVector Quantized VAE(VQ-VAE)を利用する。他の手法よりも優れた結果が得られることが定量的に示された。

Abstract

Neural style transfer, allowing to apply the artistic style of one image to another, has become one of the most widely showcased computer vision applications shortly after its introduction. In contrast, related tasks in the music audio domain remained, until recently, largely untackled. While several style conversion methods tailored to musical signals have been proposed, most lack the 'one-shot' capability of classical image style transfer algorithms. On the other hand, the results of existing one-shot audio style transfer methods on musical inputs are not as compelling. In this work, we are specifically interested in the problem of one-shot timbre transfer. We present a novel method for this task, based on an extension of the vector-quantized variational autoencoder (VQ-VAE), along with a simple self-supervised learning strategy designed to obtain disentangled representations of timbre and pitch. We evaluate the method using a set of objective metrics and show that it is able to outperform selected baselines.

Motivation

音色の変換を実現したい → 最近、いろいろと手法が提案されているが、どれもターゲットとなる音色ごとに学習用のデータが必要 or ボコーダーなどの特定のアーキテクチャの縛りがあってなんでも変換できるというわけではない (もしくはその両方) → 変換したいターゲットになる音色が一つあれば良い、と言う風にしたい!! (One-shot) → ピッチと音色、両方を切り離して (disentangled) で学習する必要があるが、本手法では self-supervisedで学習するので、アノテーション付きの学習データもいらない。

Architecture

本手法ではアーキテクチャとして Vector Quantized VAE(VQ-VAE)を利用する。

VQ-VAEは、Van Den Oord, et.al, Neural discrete representation learningで提案されたVAEの一種。連続的な潜在ベクトルの代わりに、離散的な複数のベクトルを潜在ベクトルとしてもつ。イメージとしては、ベクトルが格納された暗号表(codebook)があって、エンコーダは入力データを暗号表のどれかのベクトルにエンコードする。デコーダはそこから入力データに近くなるようにデコードする。暗号表のサイズは決まっているが、暗号表に載せるベクトル自体もより効率的に入力を表現できるようにアップデートしていく。

Neural discrete representation learning.

以下、例えば、ピアノのメロディーをバイオリンの音に変換するとする。

アーキテクチャの特徴は、ピアノの音のピッチの情報をエンコードするContent Encoderとターゲットとなる音色(バイオリン)をエンコードするStyle Encoderにエンコーダが分かれていて、この二つの入力でデコーダに繋がっていること。さらにConetent EncoderはVQ-VAEを利用するのに対して、Style Encoderは連続的なVAEになっている。

入力はピアノの音(content) xx と 変換したいターゲットとなる音色(この場合はバイオリン) の yy (style)の二つ。 学習時にStyle encoderに入力される音 yy は、Content encoderに入力される xx とは別の箇所の音になっている(=ピッチの並びが全然違う)のがポイント

Contentの方がVQ-VAEなのは、音楽的なピッチ(音階)が離散的である点からくる。さらに yyxx とは違う箇所なので、ピッチの情報は共有していない。したがって、Contentはピッチの情報を、Style encoderの方は音色だけをエンコードしてくれるのでは... こうして self-supervisedでの学習を可能にしている。

image

モデルへの入出力は、logスケールのSTFTスペクトログラム。最終的な音を得るところは Griffin-Limでスペクトログラムを音に変換。

Results

学習データにはLakhのMIDIデータを使って同じピッチで違う音色の音声ファイルをたくさん作ったりして学習。

Further Thoughts

  • 結構音楽系で知らない論文が参考文献に上がっている... 追いつかないと!
  • 別の場所の入力を使うという考え方はどこか別のところでもあったよなぁ...
  • コードが公開されているので試してみたい!

Links

VQ-VAEについてはこちら

Van Den Oord, A., Vinyals, O., & Kavukcuoglu, K. (2017). Neural discrete representation learning. Advances in Neural Information Processing Systems, 2017-Decem, 6307–6316. https://arxiv.org/abs/1711.00937