Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

SessionRun

484 Aufrufe

Veröffentlicht am

2020 GW Hackason

Veröffentlicht in: Ingenieurwesen
  • Als Erste(r) kommentieren

SessionRun

  1. 1. みなさんは 即興演奏が したいですか?
  2. 2. 僕はしたいです。
  3. 3. えっでも練習は嫌?
  4. 4. そんなあなたに
  5. 5. SessionRun Deep Learning を用いた即興演奏支援システム ● 8つのキーで音の乗降、下降を操作 ● キーを押した際、今までのメロディと現在のコード情報を元にいい感じの音を出して くれる(はず) (ちなみに実装に使用しているライブラリに session.run という概念があります) AI に曲を作ってもらうんじゃねぇ!お前が主体になるんだよ!!
  6. 6. 音楽の基礎知識 ● 音楽の三要素 ○ メロディ ○ ハーモニー(和音、コード) ○ リズム ● メロディとハーモニーの間には強い関係がある Key: C
  7. 7. SessionRun による即興演奏 ● 即興演奏(特にジャズ)では右図のように Chord だけ書かれた楽譜を元にその場 で演奏する ● SessionRun ではキーが押されたタイミングの Chord とそれまで生成したメロディ を元に新しい音をリアルタイムに生成 即興演奏に使用されるコード譜 SessionRun における 即興演奏のイメージ 生成! キー投下
  8. 8. Demo https://twitter.com/minux302/status/1258045716359864321
  9. 9. モデル モデル ● piano-genie モデル[1]をベースとして使用 ○ LSTM を用いた encoder-decoder モデル ● Chord 情報を考慮したモデル ○ Chord 情報を自動作曲に組み込んだ JamBot [2] 学習データ ● TheoryTab [3] からスクレイピングしたデータ
  10. 10. モデルの概略 (眠いので図を作る元気がなかった) これにコード進行を表す情報を付け加えた piano genie モデル[1]
  11. 11. モデルの概略 学習時 元のメロディを再生成するようにモデルを学習 piano genie モデル[1]
  12. 12. モデルの概略 推論時 8つの中間表現(キー入力)と Decoder で音 を生成 piano genie モデル[1]
  13. 13. 実装 ● モデルの学習は Tensorflow ● デモには Tensorflow で作成したモデルをブラウザ上で動かす Tensorflow JS を 使用 ○ 今回参考にしたコードが TypeScript で書かれていたので勉強もかねて TypeScript で実装 ○ 遅延はマシンに依存するが 30~60msec くらい
  14. 14. 今後の方針 ● モデルもうちょいマシにしたい... ○ データの音のレンジが狭いので似たような音しかでていない。データセットをより複雑な物にする か、レンジを調節する Data Augmentation などを入れて多様性を増して行きたい ● 今回の実装ではキーを押すたびに学習時と同じ時系列長のデータを入力していた ので遅延が大きかった。前時刻の隠れ状態を保持しておけば入力データ長は1で 良いので遅延は大幅に小さくなるはず(参考実装はそうしていたので推論が速かっ た) ● 先生。KAWAII UI を創りたいです。
  15. 15. 感想 ● 動くバージョンを探すのに苦労した ○ 参考コードが全然動かなかった。自分のモデルの convert の兼ね合いで異なるバージョンの tfjs を 使う必要などもあったのでうまく動く組み合わせを見つけるのに苦労した。 ● UX は大事 ○ 同じモデルでも遅延が 50msec なのと 30msec なのは全然違った ● TypeScript 良さげだったけど DL に使うのはどうなんだろう ○ 型が厳しくて Tensor の添字アクセスとかなんかめんどかった ○ 慣れの問題?
  16. 16. 参考文献 [1] Donahue, Chris, Ian Simon, and Sander Dieleman. "Piano genie." Proceedings of the 24th International Conference on Intelligent User Interfaces. 2019. [2] Brunner, Gino, et al. "JamBot: Music theory aware chord based generation of polyphonic music with LSTMs." 2017 IEEE 29th International Conference on Tools with Artificial Intelligence (ICTAI). IEEE, 2017. [3] https://www.hooktheory.com/theorytab

×