AIエージェントに動画を作らせたらBGMが微妙だったので、自分専用の音楽ライブラリを作ってみた

にくたま
にくたま

@nikutama ・ 21本

サムネイル

>この記事のダイジェスト版はPodcastでも視聴いただけます。

最近、MetaのAIエージェントの「Muse(ミューズ)」を使って、Instagramなどに投稿するリール動画を作っています。

これがなかなか優秀で、競合リサーチをした上で、動画の構成から映像の制作まで、けっこういい感じに仕上げてくれるんですよね。

ただ、ひとつ気になることがありました。

BGMが、どうにもイマイチなんです。

Museに音楽まで作ってもらうと、なんというか、プログラムのコードで生成したような単調なBGMになってしまうことがあって。

動画自体は悪くないのに、BGMのせいで全体のクオリティが少し下がってしまう。

Instagramのアプリから投稿したらトレンドのBGMをつけれたりするけど、できれば人間はアプリを触らずMuseから投稿する仕組みにしたい。

だったら、AIエージェントが使えるBGMを別の方法で用意すればいいんじゃないか?

(フリーで使える既存のBGMサイトの利用も頭をよぎりましたが、ログインが必要だったり、曲によってクレジット表記の内容が違ったりと、人間が確認する箇所が多いなと思ったので却下しました)

ということで、ちょっとした実験を試みてみました。

Stable AudioでBGMを作ればいいのでは?

私が普段ローカル環境で使っているAIツールのひとつに、「Stable Audio」があります。

生成AI界隈で「Stable」といえば画像生成AIのStable Diffusionが有名ですが、Stable Audioは同じ会社が提供する音楽や音声を生成するAIモデルです。

文章で「こんな雰囲気の音楽を作って」と指示することで、オリジナルのBGMを生成できます。

これならリール動画にも使えそうです。

最初に考えたのは、Muse自身のパソコンでStable Audioを動かしてもらう方法でした。

ところがMuseに相談してみると、Museが使っているパソコンのスペックではローカルでStable Audioを動かすのは難しそうだという話に。

Muse、意外とショボいパソコンを充てがわれてそれで頑張ってるんだなとちょっと笑ってしまいましたが、こっちは無料で使わせてもらってるので贅沢は言えない。

できないものは仕方ない…そこで発想を変えました。

音楽を作るのは私のパソコン。使う音楽を選ぶのはMuse。

この役割分担なら、わざわざMuse側で音楽生成モデルを動かす必要がありません。

こちらで生成した音楽をMuseに渡す、というのも考えましたが、シンプルに面倒なので仕組み化したい…

だったらBGM専用のWebサイトを作ろう

考えてたどり着いたのは、Stable AudioでいろいろなジャンルのBGMを生成して、Webサイトにまとめて公開する方法です。

例えば、落ち着いた雰囲気、明るくポップな雰囲気、都会的でクールな雰囲気、壮大でドラマチックな雰囲気など。

ジャンル別に音楽を用意しておけば、AIも動画に合わせたBGMを選びやすくなるはず。

目指したのはMuseにこのWebサイトにアクセスしてもらって、制作中の動画内容に合った音楽をMuse自身に選んでもらってBGMとして使ってもらう、みたいな感じ。

実際に試してみたところ、これがなかなかうまくいきました!

ただ、AIは人間の感覚と同じようにBGMを確認するのではなくテンポや波形なんかで曲調を判断するみたいで、毎回必ず理想どおりに選んでくれるとは限りませんが、ジャンルを細かく分けてあげることである程度はチューニングできそうなイメージです。

せっかくなので、BGMを追加する作業も自動化

ここからが、今回ちょっとこだわった部分です。

BGMサイトを作るだけなら、AIがあるのでそこまで難しくありません。

ただ、今後もStable Audioで新しい音楽をどんどん作っていくつもりなので、そのたびにWebサイトを編集・更新するのは面倒です(AIにお願いするにしてもその手間もかかるので)。

例えば、新しいBGMを5曲追加したら、ページに曲名を追加して、再生プレイヤーを追加して、ジャンルごとに振り分けて……。

これを毎回やるのは、できれば避けたい。

そこで、指定したフォルダに音楽ファイルを追加すれば、Webサイト側が自動で検出して一覧に反映する仕組みにしました。

つまり、新しい音楽を追加するたびに、サイトのHTMLを自分で編集する必要がありません。

さらに、ジャンル分けも自動化することにしました。

これ、もちろんコーディングはすべてAIです。私は「こんな風にしたい」と伝えただけ。

ファイル名だけでジャンルを自動判別

ジャンル分けには、非常にシンプルなルールを採用しました。

ファイル名の冒頭にジャンル名を付けて「_」で区切る。

これだけです。

例えば、

  • Ambient_RainyNight.mp3
  • Chill_NightCity.mp3
  • Cinematic_EpicJourney.mp3
  • Pop_SunnyMorning.mp3

といった具合です。

冒頭の「Ambient」「Chill」「Cinematic」「Pop」をジャンル名として認識し、Webサイト側で自動的にカテゴライズします。

その後ろには、楽曲の雰囲気が伝わる英単語を付けます。

しっとりした曲なら「Rainy Night」。

夜の都会をイメージした曲なら「Night City」。

こうしておけば、ファイル名を見ただけでも、おおよその雰囲気がわかります。

MuseのようなAIエージェントにとっても、どんな音楽なのか判断するための手がかりになるはずです。

ジャンル分けの雑用もAIエージェントにお任せ

とはいえ、音楽ファイルが何十曲、何百曲と増えてきたら、いちいち自分で聴いてジャンルを考えたり、ファイル名を変更したりするのも面倒です。

これもAIエージェントにお任せしたいところなんですが、メインに使ってるCodexやMuseのクレジット消費はなるべく抑えたい…

そこで登場するのが「Manus(マナス)」です。

Manusは無課金アカウントでもデイリークレジットを結構もらえるので、ちょっとしたスポット雑用を任せるAIエージェントとして良く使ってます(もちろんCodexやMuseにお願いするのも全然アリです)。

今回も、こんな感じでお願いしました。

「このフォルダに入っている音楽を聴いて、それぞれのジャンルを判断して。ファイル名の冒頭にはジャンル名、その後ろには楽曲の雰囲気が伝わる英単語を付けてリネームして」

すると、音楽を分析して、それっぽいジャンル名とタイトルを付けてくれます。

もちろん、ジャンルの判断が必ずしも完璧というわけではありません。

ただ、今のところは、なんとなくイメージに合った名前を付けてくれている印象です。

少なくとも、私が何十曲も聴いて、一曲ずつファイル名を考えるよりはずっと楽です。

こうして、

Stable Audioで音楽を作る →
Manusで分類・命名する →
BGMサイトに追加する →
Museが動画に合う曲を選ぶ

という流れができました。

余談ですが…このManusにリネームしたBGMデータをGithubにアップロードしてもらうところまでやってもらおうと思ったのですが、Githubの認証周りで引っかかって上手くいかず。ここも自動化したいので時間ができたらリトライしたいところです。

Webサイトの公開にはGitHubとCloudflare Pagesを使ってみた

今回、もうひとつ新しくチャレンジしたのが、Webサイトの公開方法です。

サイトのコードはGitHubで管理することにしました。

そして、Cloudflareの「Pages」という機能を利用して、GitHubのリポジトリと連携させています。

Cloudflareでは、もともと独自ドメインのDNSを管理していたので、そのドメインをPagesに向けることで、自分のURLからアクセスできるようにしました。

仕組みとしては、こんな感じです。

  1. GitHubでWebサイトのコードとBGMファイルを管理する
  2. 音楽フォルダに新しいBGMを追加する
  3. サイト側がファイルを自動検出し、ファイル名からジャンルを判別する
  4. GitHubに変更を反映すると、Cloudflare Pagesが自動でサイトを更新する

これなら、BGMが増えるたびにWebページのコードを書き換える必要がありません。

これで今後は追加したBGMデータをGithubにアップするだけで、自動でwebページが書き換わる仕組みが実現!

ちなみにこのGitHubとCloudflareの連携、まったくの初めてでしたが、AIのサポートがあったのでなんなく実装できました。

途中でいろいろ試しながらの作業でしたが、結果的になかなかうまい仕組みができたと思います。

備忘録的に仕組みを簡単にまとめておきます。

仕組みの要約

GitHubの main にファイル(曲など)をコミット(アップロード)。 Cloudflareがコミットを自動で検知し、リポジトリの中身をビルド環境にコピー。 Cloudflareが予め設定しておいたコマンド python3 build.py を実行し、data/ の曲から dist フォルダ(index.json、index.html など)を作る。 dist の中身が bgm.nyanco.me に公開される。

ポイント

GitHubは元ファイルの保管庫です。build.py を実行するのはCloudflareで、ビルドの結果(dist)はGitHubには残りません。 build.py は、Cloudflareの設定にビルドコマンドとして書いてあるので動きます。 本番に反映されるのは main へのコミットだけ。 手元のパソコンでビルドする必要はありません。

曲を追加するときの作業: data フォルダにmp3を入れてコミットします。1〜3分で反映されます。

AIに全部やらせるのではなく、得意な作業を分担する

今回やってみて、改めて感じたことがあります。

それは、ひとつのAIにすべてを任せる必要はないということです。

MuseはInstagramやThreadsのリサーチや投稿内容作成・動画制作・投稿までを担当してもらう。

Stable Audioは音楽生成を担当。

Manusには、音楽ファイルの整理や命名といった作業を任せる。

GitHubとCloudflareは、BGMライブラリの管理・公開を担当する。

それぞれの得意な部分を組み合わせることで、ひとつのAIだけでは難しかったことが実現できました。

今回の例なら、最初に少し仕組みを作ってしまえば、これからは音楽を追加するだけでライブラリを充実させていけます。

そして、そのライブラリをMuseが使ってくれる。

自分で作ったBGMが増えれば増えるほど、Museが選べる音楽のバリエーションも増えていくわけです。

こういう、自分の制作環境が少しずつ便利になっていく感覚が、個人的にはかなり楽しいんですよね。

作成したBGMサイトを公開しています

ということで、今回作ったBGMサイトはこちらです。

▼ AI生成BGMライブラリ

自分の動画制作に使うために作り始めたものですが、ほかの方にも使っていただけるよう、BGMライブラリとして公開しています。

商用利用にも対応したBGM素材として提供する予定なので、Instagramのリール動画やYouTube、Webコンテンツなどの制作に役立ててもらえたらうれしいです。

まだまだ曲数やジャンルは充実させている途中ですが、今後もStable Audioで生成した音楽を少しずつ追加していく予定です。

今回のように、AIを使っていて「ここがちょっと惜しいな」と感じた部分を、別のAIや自作ツールで補っていく。

こうした小さな改善を積み重ねていけば、自分だけの便利な制作環境ができていきます。

AIの進化を待つだけではなく、今あるAIを組み合わせて、自分の欲しいものを作る。

これも、AIの面白い使い方のひとつだと思います。

にくたまAIラボでは、非エンジニアの私がAIを使った副業のリアルや作った便利ツール、アイデアの共有などをお届けしています。最新情報はこちらから↓

無料購読する