音楽素人がAWS DeepComposerで星野源の「うちで踊ろう」のアレンジ作曲に挑戦してみた

#概要
本記事は2020年4月23日に行われた[【オンライン】ゆるふわマシンラーニング Vol.3](https://enebular.connpass.com/event/167636/)の
登壇内容をまとめたものになります。
※ウフルさんのenebular developersコミュニティ主催　
※[ゆるふわマシンラーニングVol.3のツイートまとめ](https://togetter.com/li/1498404)

機械学習の技術を利用して自動で作曲ができる「AWS DeepComposer」を使って、
音楽素人の私が（しかもリズム感ゼロ。笑）、作曲してみたという内容で話していきます。

##AWS DeepComposerとは
AWS DeepComposerは2019年の秋頃Amazon Web Servicesから発表された
世界初の機械学習対応のキーボードサービスの総称です。
[AWS DeepComposer公式サイト](https://aws.amazon.com/jp/deepcomposer/)

専用のMIDIキーボードを利用し、入力された音を学習済みのモデルが読み取り、
新しい音楽を生成したり、ジャズやロック風にアレンジしたりできます。
※市販のMIDIキーボードでも可。後述します

いままではプレビュー版で限られた人しか使えませんでしたが、
今年の4月に一般向けにリリースされたのでさっそく使ってみました。

#作曲の流れ
基本的な流れとしては以下になります。

①メロディの入力
②モデルを選ぶ
③曲の生成

概要図はこちら
![スクリーンショット 2020-04-27 20.08.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248994/02ad1ae2-8df0-3923-c714-38b8e9901d8a.png)

##①メロディの入力
メロディは何でも良いのですが、星野源さんの「うちで踊ろう」が話題なので、
曲を機械学習でアレンジしたら面白いだろうと考え、チャレンジしてみます。

星野源ーうちで踊ろう
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">沢山リクエストを頂いたので、星野さんが昨夜Instagramでアップした曲 <a href="https://twitter.com/hashtag/%E3%81%86%E3%81%A1%E3%81%A7%E8%B8%8A%E3%82%8D%E3%81%86?src=hash&amp;ref_src=twsrc%5Etfw">#うちで踊ろう</a> をこちらでもシェアしますね。<br>多くの重なりをありがとうございます。<br>ぜひこちらでも伴奏やコーラス、イラストやダンスを重ねてくださいね。<a href="https://twitter.com/hashtag/%E6%98%9F%E9%87%8E%E6%BA%90?src=hash&amp;ref_src=twsrc%5Etfw">#星野源</a><a href="https://t.co/fyYxaEqrXP">https://t.co/fyYxaEqrXP</a> <a href="https://t.co/cS0tT7s89H">pic.twitter.com/cS0tT7s89H</a></p>&mdash; 星野源 Gen Hoshino (@gen_senden) <a href="https://twitter.com/gen_senden/status/1246047171134107648?ref_src=twsrc%5Etfw">April 3, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

まずはAWS DeepComposerのコンソール上で
MIDIキーボードを接続してメロディを入力していきます。
![スクリーンショット 2020-04-27 20.20.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248994/56579566-2290-6a14-7104-cea4e8885f69.png)

AWS DeepComposerのMIDIキーボードが使えれば良いのですが、
これが日本では売っていないため市販のMIDIキーボードを購入しました。
[KORG microKEY Air-37](https://www.amazon.co.jp/KORG-%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E6%8E%A5%E7%B6%9A%E5%AF%BE%E5%BF%9CMIDI%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89-microKEY2-37AIR-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%AD%E3%83%BC2-37%E9%8D%B5%E3%83%A2%E3%83%87%E3%83%AB/dp/B018ATKI7C)

ちなみにAWS DeepComposerのMusic studioには仮想キーボードが用意されていて、
クリックすれば普通に音が出ます。面白いですね。

このコンソール上で録画ボタンを押し、
MIDIキーボードでメロディを入力すれば①の作業は完了です。


##②モデルの選択
次に入力したメロディをどんな風にアレンジしていくかを決めます。

モデルには2種類あり、学習済みのモデル、または自分でモデルを作成できます。
今回はポップな感じでいこうと思い、学習済みのサンプルモデルを使用しました。
![スクリーンショット 2020-04-27 20.25.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248994/df66ac5a-5a92-099f-f4cc-ebd259e71ca8.png)

※上の段が自分で作成したモデル、下の段がサンプルモデルです。

###モデルを作る場合
自分でモデルを作る場合は、コンソールの「Models」からモデルを作れます。
![スクリーンショット 2020-04-27 20.26.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248994/0540a5ea-a0eb-b8c5-f466-951864b1f1f5.png)

AWS Sagemakerを使えばスクラッチでモデルを作れるそうですが、
そのあたりはまだ触れてません。今度触ったら記事にします。

##③曲の生成
曲を入力し、モデルを選択。
右上の「Generate Composition」を選択すればあっという間に曲が完成します。
![スクリーンショット 2020-04-27 20.29.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248994/4961ae95-cb5e-fb32-1d61-b581dd94a19a.png)

AIが勝手に楽器などを選んでくれるそうで、
今回はエレキギターやベース、ピアノによって構成された曲ができました。
※コンソール上で楽器を変えたりもできるので、ちょっとした音の違いも楽しめます
![スクリーンショット 2020-04-27 20.32.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248994/ef344531-df65-4321-5022-398837e816c4.png)

###完成した曲がこちら
SoundCloudと連携していて、すぐアップできるのでアップしました。

星野源のうちで踊ろう　AI作曲Ver.
https://soundcloud.com/user-116427957/aiver
![スクリーンショット 2020-04-27 20.34.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248994/fc74ff79-11a4-c48c-8f17-8289aa6fa3f3.png)

ちょっとだけ雰囲気出てますね（？）

#終わり
曲聴いてもらえるとわかるのですが、まだまだ精度がいまいちな印象。
ちょっとガチャガチャしてる感じありますね。
もう少し精度上がればきれいな音になるのかな。。

私は作曲もキーボードも初心者なので、
もしかしたら音楽好きな人とかがやるともっと精度上がるかもしれない。

また、今回サンプルモデルを使用したので、
次はモデル作るところからやってリベンジしてみたい。

##余談
星野源のうちで踊ろうのメロディを入力するために、
Youtubeの初心者向け講座を観ながら3時間くらい練習した。
DeepComposer上で曲を作るより、キーボードで弾いてる時間の方が長かった。笑