縦笛の曲をAIでアレンジ「MusicGen」
1.MusicGenの概要
Meta社から音楽生成モデル用モデル「MusicGen」が公表されていました。事前トレーニング済モデルとして提供されているのは、以下4つ🤗。
なお、各モデルの重みファイルはHuggingFaceでも公開されていますが、MusicGenと合わせて公開されているAudiocraftというライブラリーから自動で読み込んで利用できます。
small: 300Mモデル、テキストから音楽への変換のみ -
medium: 1.5Bモデル、テキストから音楽への変換のみ
melody: 1.5Bモデル、テキストから音楽への変換とテキスト+メロディーから音楽への変換
large: 3.3Bモデル、テキストから音楽への変換のみ
2.早速、試してみます
テキストからの音楽生成も気になるのですが、今回はメロディから音楽へ変換できるらしい「melody」というモデルを試してみます。
入力用の素材には、著作権フリー素材に明るくないため、手元にあったソプラノリコーダーで、小学校の音楽で習った曲を、ひさしぶりにピロピロ吹いて使ってみます。(ゲームコントローラーの内蔵マイクで録音)
早速、MusicGenのmelodyモデルに投入してみます!
ライブラリ類のインストールはgithubの説明どおりでOKです。
import torchaudio
from audiocraft.utils.notebook import display_audio
from audiocraft.models import MusicGen
model = MusicGen.get_pretrained('melody')
model.set_generation_params(duration=30)
melody_waveform, sr = torchaudio.load("assets/Greensleeves00.wav")
melody_waveform = melody_waveform.unsqueeze(0).repeat(2, 1, 1)
output = model.generate_with_chroma(
descriptions=[
'80s pop track with bassy drums and synth',
'90s rock song with loud guitars and heavy drums'
],
melody_wavs=melody_waveform,
melody_sample_rate=sr,
progress=True
)
display_audio(output, sample_rate=32000)
3.出力結果
素材はかなりチープな感じでしたが😓、メロディーの音が変わったり、リズムや伴奏がついて、かなりゴージャスな音に変化したのではないでしょうか。
素材を選べば、もっとイケてる音楽が生成されると思います。
なお、テキストからの生成例はbbzさんの記事をシュッとご覧ください。いい感じに生成できてるみたいです。
感想
質素な入力からでも、いい感じにアレンジしてくれる面白いモデルですね。鼻歌とかを入力素材にする等、いろいろ遊べそうです。テキストからの音楽生成も試してみたいと思います。😄
現場からは以上です。