Metaから発表されたテキストから音楽を生み出すAudioCraftのMusicGenを使ってみた
8GBのGPUで試してみました。テキストから音楽を生み出せるってすげえええ。
概要
- metaから「AudioCraft」が発表されました。
- オープンソースのAIツールで、テキストから音楽を出力できます。
- 今回の紹介するコードは、基本的に公式ページからのコピペです。(一部関数化)
ソースコード
main.py
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
def music_gen():
model = MusicGen.get_pretrained("medium")
model.set_generation_params(duration=24) # durationの設定で、musicの長さを設定
# リストに生成するmusicのテキストを入力する
# 同じ単語でも同じmusicを生成しない。
descriptions = ["happy rock", "death metal rock", "jpop happy "]
wav = model.generate(descriptions) # generates 2 samples.
for idx, one_wav in enumerate(wav):
# Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness")
if __name__ == "__main__":
music_gen()
モデルタイプ
- small,medium,large,melodyがあります。
- 今回は、GTX1070Tiの8GBでもmediumは動きました。
modelタイプ
model = MusicGen.get_pretrained("medium")
生成する音楽の時間
- durationを数値で設定することにより、音楽の時間の長さを設定できます。
duration
model.set_generation_params(duration=24)