Text2Music

ChatGPT、StableDiffusionにつづき今回は、Text2Musicを試してみました。
~にづづき、という意味は、テキストを入力して、AIにデータを生成させるシリーズという意図からです。
これはプロンプトエンジニアリングとよばれ、言葉でAIに指示することによってさまざまなものを出力させることを言います。Text to X と表現されるものが今後もどんどんあらわれるでしょう。

参考) 「Text2Music(Mubert)の世界一簡単な始め方」https://note.com/ydoi9/n/n2db0beb3db92

こちらを参考にJypyter環境で実行しようと思いましたが、現在、実行時Webアプリのサイトにジャンプしてユーサー登録などするようになっているようですので、結局Webアプリでデータを作成しました。

https://github.com/MubertAI/Mubert-Text-to-Music
https://mubert.com/render


コードの一部(transformerが使われています)

プロンプトに作成したい音楽の特徴を入力して生成

一応音楽が生成することはできましたが、う~ん、という印象です。

またGoogle Researchのサイトでは、サンプルが多数あります。
「MusicLM: Generating Music From Text」
https://google-research.github.io/seanet/musiclm/examples/

もうここまでできるのか、という参考になります。

またChatGPTでおなじみのOpenAIにもあります。
https://openai.com/research/jukebox
https://github.com/openai/jukebox

一応ビルドも試みましたが、MPIモジュールのロードで失敗しました。(Windowsが原因か)

conda create –name jukebox python=3.7.5
conda activate jukebox
pip install mpi4py==3.0.3
conda install -c pytorch-lts torchvision
git clone https://github.com/openai/jukebox.git
cd jukebox
pip install -r requirements.txt
pip install -e .
python jukebox/sample.py –model=5b_lyrics –name=sample_5b –levels=3 –sample_length_in_seconds=20 –total_sample_length_in_seconds=180 –sr=44100 –n_samples=6 –hop_fraction=0.5,0.5,0.125
….
from mpi4py import MPI # This must be imported in order to get e rrors from all ranks to show up
ImportError: DLL load failed: 指定されたモジュールが見つかりません。

サンプルも多数あります。
https://jukebox.openai.com/

Googleのものは鼻歌で歌ったメロディから楽器を演奏し、さらに伴奏をつけたりするデモもあるようです。そのうちリアルタイムで自分の演奏を伴奏が合わせてくれるようなことをしてくれるかもしれません。
個人的にはこれを期待しています。

プロンプトエンジニアリングで感じるのは、アプリケーションのプログラミングのやり方に大きな影響を与えるということです。
「~風のブログサイト作って」「タイトルは~フォントを使って」「背景の写真は~の街並みを使って」など言葉で指示してどんどん出来上がるようなことがすでに可能になっています。iOSアプリでもテンプレートを使ってつくれるでしょう。「プログラムに間違いがあったら直して」なども可能です。

本質的に必要とされるものは何なのか、考えさせられます。