search
LoginSignup
11

More than 5 years have passed since last update.

posted at

アート・音楽生成 magentaプロジェクトの概観

はじめに

本記事は、TensorFlow Advent Calendarの21日目の記事です。

今年は機械学習、DeepLearningがニュースなどでも取り上げられるようになり、また書籍もたくさん出るなど、大変話題になった一年だったと感じています。
活用事例としても、Google翻訳の刷新や、Everfilterのような(問題のある)アプリなど、良くも悪くも賑わっていたように思います。

今回ご紹介するのは、TensorFlowを活用してアート・音楽を作成するmagentaというプロジェクトです。

magentaとは

magentaはGoogleBrainチームによるプロジェクトです。
DeepLearningを用いて芸術作品、音楽を作ろうとしています。

ブログ: https://magenta.tensorflow.org/
Github: https://github.com/tensorflow/magenta

2016/6/1に発表され、更新が続けられています。

モデル

magentaには現時点で、モデルが6つあります。
主に音楽生成のモデルで、1つ画風生成のものがあります。

magenta/magenta/models

音楽生成

音楽も言語などのように、それまでどのような音が出ていたかが、その次の音を決めるのに影響を与えます。そのため、magentaではRNNが用いられています。
また、用いるデータはMIDIデータのため、学習させたい音楽のMIDIを準備する必要があります。

  1. melody_rnn

    • magentaの中でも一番初めに(?)公開されたモデル
    • LSTMでメロディを生成する
    • 1音ずつメロディを与えていき、次の音符を予測する。
    • 読み込む音、鳴る音は1つのみ
    • melody_rnnには3つの種類がある
      • Basic
      • LookBack : 1小節、2小節前のメロディが繰り返されやすくなっており、より音楽らしくなる
      • Attention : ある時点でのステップから出力する際に、直近のいくつかの出力を参考にする
  2. polyphony_rnn

    • 複数の同時音のモデリングが可能になっている。(後述のimprov_rnnも可能)
    • 複数音の響きを1つのかたまりとして捉えて学習している
  3. improv_rnn

    • 基本的には前述のmelody_rnn Basicと似ていますが、音をコード(C7等)に変換し学習するところが異なっている
    • Basic Improv : MIDIから48のコードにベクトル化し学習している。(48というのは、ドからシの音まで黒鍵白鍵の数が12で、それぞれにつき、major/minor/augmented/diminishedの4パターンあるから。)
    • Attention Improv : melody_rnn Attentionを基とし、コードで学習させたもの
    • Chord Pithces Improv : Basic Improvと近いですが、コードのベクトルではなく、ドからシまでの音のどれが鳴っているかの長さ12のベクトルに変換し、学習する
  4. rl_tuner

    • 強化学習 DQN で実装されたモデル
    • LSTMで学習した内容と、音楽理論の2つを報酬とし、強化学習を行う。
  5. drums_rnn

    • ドラムのトラックを生成するモデル
    • One Drum : すべてのドラムの音を1つのドラムに集約して、何かしらのドラムが叩かれたかどうかだけを学習する
    • Drum kit : バスドラムやスネアなど9つのドラムの叩かれる組み合わせを512行のOne-hot vectorにして学習

画像生成

  1. image_stylization
    • ある画像を、別の画像の様式を真似て、新たな画像に変換するモデル(画風を真似る)
    • スマホアプリのPRISMAのようなことができる
    • 学習済みのモデルとしては、モネやその他の数十名の画家のものが準備されている
    • A Learned Representation For Artistic Styleの論文を参考にしたもの
    • 自分で準備した画像での、モデルのトレーニングも可能。例えば新海誠さんの画像を集めれば、ある画像を新海誠さんテイストに変換できそうですね。

開発への参加方法

2016/12/20時点では、外部メンバーによるContributionはできないようです。
ただし、GoogleGroupでは議論が行われており、自由に参加可能です。質問もこちらで受け付けられてます。

難しさと終わりに

音楽データ、MIDIデータは、画像データと比べて収集が難しいのがネックかなと思います。アーティストを絞るとなると、さらに厳しくなるのではないでしょうか。
また、音楽理論の知識や基本用語などを知っている方は、より開発を進めやすいかと思います。

実装まで落とし込みたかったのですが、ここまでとなります。
ありがとうございました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
11