見出し画像

音楽生成AI(Stable Audio,MusicGen)で遊ぶ


はじめに

おはこんにちばんは、えるです❢
Stability AIより音楽生成AI Stable Audioが出ましたので遊んでみました

ついでに、以前からnoteにまとめようかなあと思いつつ放置していた
MetaのMusicGenにも触れようかと思います

MusicGen (metademolab.com)

Stable Audio

公式Web

まず公式はこちら
Stable Audio - Generative AI for music & sound fx


公式Web

「Try it out」をぽちーするとログインな画面に行くので、何かしらでログインします
私はグーグルアカウントにしました

音楽生成は以下の感じ

text promptに生成したい曲のプロンプトを入力後、「→」ボタンをぽちーすると生成できます
30秒くらいで生成できそうでした!
(混んでなければ)

公式のプロンプト例

…といってもプロンプトわかりません!
といった方向け(?)に公式Webにもプロンプト例がありそうです

Stable Audio - User Guide

一番上の以下プロンプトをありがたく拝借します✨

Trance, Ibiza, Beach, Sun, 4 AM, Progressive, Synthesizer, 909, Dramatic Chords, Choir, Euphoric, Nostalgic, Dynamic, Flowing

公式に置かれているものとの聞き比べとかもしたいので、このnoteではプロンプトは統一することにします

価格とライセンス

価格とライセンスも気になるところなので確認しておきます

価格

フリープランは1か月20曲まで、45秒までみたいですね
プロプランは1か月約$12で500曲まで、90秒まで可
Enterpriseは、、まあ気にしなくてよいでしょう


ライセンス

プロプランは商用利用可能! 人によっては嬉しい気がします

お試し結果

ひとまず以下の感じのものが出来ました

…なかなかいい感じかも!
公式のプロンプト例に貼ってある曲と比較すると、少し曲の変化が無いかなあという印象もあるでしょうか
プロンプトは合わせているので、秒数の違いか、選ばれているか、たまたまって感じですかね

MusicGen

公式Web

MusicGenはMetaから公開されている音楽生成AIです
公式は以下でいいのかな?
MusicGen (metademolab.com)

あるいはgithubになるんでしょうか
GitHub - facebookresearch/audiocraft: Audiocraft is a library for audio processing and generation with deep learning. It features the state-of-the-art EnCodec audio compressor / tokenizer, along with MusicGen, a simple and controllable music generation LM with textual and melodic conditioning.


デモページ

以下のデモページでお試し生成が出来ます

MusicGen - a Hugging Face Space by facebook

…でも15秒!! 短いっ!!

ということで、GoogleColabに導入して、長めの生成もできるようにします

GoogleColabでの導入方法

MusicGenは公式のGoogleColabDemo版が出ています

MusicGen Gradio Demo v1.0.0.ipynb - Colaboratory (google.com)

こんな感じ

45秒を1曲生成するのにかかる時間はGPUによって若干変わりそうで、
以下の感じでした

T4:4分程度
V100:3分程度


GoogleColabでの導入方法 番外編 

公式のGoogleColabが使いやすいとは思うのですが、
私の場合は公式のGoogleColabが出る前から遊んでいたこともあり、別の方法で生成しています

参考として、導入手順は以下の感じです

1)インストール

!pip install -U git+https://github.com/facebookresearch/audiocraft
from audiocraft.models import musicgen
from audiocraft.utils.notebook import display_audio
import torch

2)モデルダウンロードと設定

model = musicgen.MusicGen.get_pretrained('medium', device='cuda')

3)曲の長さを設定

model.set_generation_params(duration=45)

4)プロンプトを指定して生成

res = model.generate([
    'Trance, Ibiza, Beach, Sun, 4 AM, Progressive, Synthesizer, 909, Dramatic Chords, Choir, Euphoric, Nostalgic, Dynamic, Flowing'
],
    progress=True)
display_audio(res, 32000)

こちらは設定に1~2分、45秒の曲生成に2分ほどかかります(V100)
複数曲生成も可能で、生成時間は大きく増えないので便利ですが、
GPUによるかもしれないです

こんな感じ

こっちのほうが生成早いのはなんでだろう。。
よくわかってませんが愛用してます

お試し結果

MusicGenだと以下の感じのものが出来ました!

今回のプロンプトや生成結果だと、Stable Audioの方が好みでしょうか
ただMusigGenさんもプロンプトによっては良い感じになるので、プロンプト次第なところもあるかもです
回数を気にせず生成できるのもMusicGenの強みかなあ



この記事が気に入ったらサポートをしてみませんか?