1.はじめに
今回ご紹介するのは、テキストと参考メロディーから音楽を生成するMusicGenという技術です。
2.MusicGenとは?
MusicGenは、条件付き音楽生成タスクの新しいアプローチで、圧縮された離散音楽表現を操作する単一の言語モデル(LM)です。これは以前の方法とは異なり、単一ステージのトランスフォーマーと効率的なトークン・インターリーブ・パターンを利用し、複数モデルのカスケード接続を不要にしています。
3.コード
この[リンク]をクリックすると、Google Colab を開くことが出来ます。コードは、UI操作が可能なGradioを使用しているため、たった1つのコードブロックがあるだけです。これを実行します。
1 2 3 4 5 6 7 8 9 |
# Adapted from https://github.com/camenduru/MusicGen-colab %cd /content !git clone https://github.com/facebookresearch/audiocraft %cd /content/audiocraft !pip install -r requirements.txt # Click on the gradio link that appear. !python app.py --share # See also https://colab.research.google.com/drive/1fxGqfg96RBUvGxZ1XXN07s3DthrKUl4-?usp=sharing # for a Colab demo using the underlying API instead. |
このログが表示されたら、Running on public URL(赤枠内)をクリックすると、別のタブに下記の画面が表示されます。
まず、テストデータで試してみましょう。画面下にあるExamplesから一番上の行(赤枠)をクリックすると、Input Text と Melody Condition (optional) に自動的にテストデータがセットされます。そうしましたら、「送信」ボタン(赤枠)をクリックして下さい。最初の音楽生成には少し時間が掛かります(2〜3分)が、2回目以降はもっと早くなります。
処理が完了すると、下記のように右上に曲が生成されますので聞いてみましょう。曲の右肩をクリックするとダウンロード出来ます。
なお、自分のデータでやる場合は、Input Text に英文を記入し、Melody Condition (optional)に自分のPCから曲をアップロードして、「送信」ボタンを押して下さい。なお、設定の中で、Dulationは曲の長さ(秒)、Modelはテキストのみから曲を生成するモデル(medium, small, large)も選択することが出来ます。
これは、バッハの曲を参考に「An 80s driving pop song with heavy drums and synth pads in the background(重厚なドラムとシンセパッドをバックに据えた、80 年代のドライブ感あふれるポップソング)」という文から生成した曲です。
Examplesの4行目でも、やってみましょう。
これは、バッハの曲を参考に「a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions(シンコペーションされたドラム、軽やかなパッド、そして強い感情を備えた、軽くて陽気な EDM トラック)」という文から生成した曲です。
(サンプルURL)https://ai.honu.io/papers/musicgen/
(オリジナルgithub)https://github.com/facebookresearch/audiocraft
コメントを残す