
AudioCraft の MusicGen を試す
「AudioCraft」の「MusicGen」を試したので、まとめました。
1. MusicGen
「AudioCraft」は、深層学習によるオーディオ処理と生成のためのライブラリです。次の3つのモデルが含まれています。
・MusicGen:テキストからの音楽生成
・AudioGen:テキストからの音声生成
・EnCodec:より高い音声クオリティの音楽生成
今回は、「MusicGen」を試します。
2. Colabでの実行
Google Colabでの実行手順は、次のとおりです。
(1) パッケージのインストール。
# パッケージのインストール
!git clone https://github.com/facebookresearch/audiocraft/
%cd audiocraft
!pip install -e .(2) モデルの読み込み。
from audiocraft.models import MusicGen
# モデルの読み込み
model = MusicGen.get_pretrained('facebook/musicgen-small')指定できるモデルは次の4つです。
・facebook/musicgen-small : 300M
・facebook/musicgen-medium : 1.5B
・facebook/musicgen-melody : 1.5B
・facebook/musicgen-large : 3.3B
(3) モデルパラメータの指定。
# モデルパラメータの指定
model.set_generation_params(
use_sampling=True,
top_k=250,
duration=30
)パラメータは、次のとおりです。
・use_sampling (bool, default:True): Trueはサンプリングを使用し、それ以外は argmaxデコードを使用
・top_k (int, default:250): サンプリングに使用する top_k
・top_p (float, default:0): サンプリングに使用する top_p。0にするとtop_kが使用される
・temperature (float, default:1): 温度
・duration (float, default:10): 生成された波形の持続時間
・cfg_coef (float, default:3): 分類子なしのガイダンスに使用される係数
(4) テキストからの音楽生成。
from audiocraft.utils.notebook import display_audio
# テキストからの音楽生成
output = model.generate(
descriptions=[
#'80s pop track with bassy drums and synth',
#'90s rock song with loud guitars and heavy drums',
#'Progressive rock drum and bass solo',
#'Punk Rock song with loud drum and power guitar',
#'Bluesy guitar instrumental with soulful licks and a driving rhythm section',
#'Jazz Funk song with slap bass and powerful saxophone',
'drum and bass beat with intense percussions'
],
progress=True, return_tokens=True
)
display_audio(output[0], sample_rate=32000)今回は、以下の音楽を生成しました。
・drum and bass beat with intense percussions (ドラムとベースが激しいパーカッションでビートを刻む)
(5) プレイヤーの再生ボタンを押して音楽再生。
