cedro-blog

img2musicで、画像から音楽を生成する

1.はじめに

 今回ご紹介するのは、画像からテキストを生成するモデルとテキストから音楽を生成するモデルを組み合わせた、画像から音楽を生成する img2music です。

 実はこれ、Hugging Face (Webサービス)で動かせるんですが、人気のためか処理速度が遅い。なので今回は Google Colab で動かしてみます。

2.img2musicとは?

  img2music は画像からテキストを生成するモデルとテキストから音楽を生成するモデル、これら2つのモデルから構成されていますので順番に見て行きましょう。

 画像からテキストを生成するモデルは、画像からStable Diffusionのテキストを探索する CLIP Interrogator を使っています。これは、従来からの画像キャプションの生成結果に、CLIPを用いた様々な属性に関する結果を加えて、より適切なテキストを生成します。

 テキストから音楽を生成するモデルは、AIで音楽生成するサービスを行なっているMubert社のAPIを使っています。具体的には、テキストからタグを抽出してサーバーへ送り、音楽を受け取る形で音楽を生成します。

3.コード

 コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある「Open in Colab」ボタンをクリックすると動かせます。

 まず、img2textをセットアップします。

 

 次に、text2musicをセットアップします。このとき、emailには自分のemailアドレス(事前申請は不要)を記入して実行します。

 

 それでは、画像からテキストを生成します。imgで画像ファイルを指定して実行します。ここでは、サンプル画像 01.jpg〜04.jpg の中から 02.jpgを指定します。

 自分の用意した画像を使いたい場合は、事前に BLIP/pics フォルダその画像をアップロードしておいて下さい。

 5つの属性(Medium, Artist, Trending, Movement, Flavors)に関して、類似性トップの内容が表示され、それを踏まえてテキストが生成されています。

 そして、テキストから音楽を生成します。duration に曲の長さ(秒)、曲をループしたい場合には loop にチェックを入れて実行します。

http://cedro3.com/wp-content/uploads/2022/10/03.mp3

 text からtags( ‘cyberpunk’, ‘art’, ‘artists’ )を抽出してサーバーへ送っていることが分かります。同じtagsでも、乱数処理を行なっているので、毎回ジャンルは同じですが異なる音楽が生成されます。

 

 他のサンプルでもやってみましょう。img = 03.jpgです。

http://cedro3.com/wp-content/uploads/2022/10/01.mp3

 

 もう1つやってみましょう。今度は、img = 04.jpg です。

http://cedro3.com/wp-content/uploads/2022/10/02.mp3

 いかがだったでしょうか?自分のイメージにピッタリという訳にはいきませんが、画像から音楽を作るというのは刺激的なタスクですよね。

 では、また。

(オリジナルgithub1)https://github.com/pharmapsychotic/clip-interrogator

(オリジナルgithub2)https://github.com/MubertAI/Mubert-Text-to-Music