musicgen-songstarter-v0.2 入門ガイド

チュートリアル

はじめに

musicgen-songstarter-v0.2 は、テキストから音楽を生成することができる機械学習モデルです。このモデルを使うことで、音楽制作のアイデア出しや、既存の音楽サンプルをリミックスすることができます。


musicgen-songstarter-v0.2 は、Facebook の audiocraft ライブラリに含まれている MusicGen モデルの一つで、musicgen-stereo-melody-large をベースにしています。このモデルは、音楽プロデューサーのために役立つ楽曲のアイデアを生成することを目的としており、32kHz のステレオ音声を出力します。

musicgen-songstarter-v0.2 は、以前のバージョンである musicgen-songstarter-v0.1 と比較して以下の点が改善されています。

  • Splice で購入した、3倍の数の手動でキュレーションされたユニークなサンプルを使ってトレーニングされた
  • トランスフォーマー言語モデルのサイズが medium から large に2倍に拡大された

このモデルは条件付き生成が可能で、テキストの説明からその内容に沿った音楽を生成したり、既存の音楽サンプルを入力として与えてそれに基づいた新しい音楽を生成したりすることができます。

準備

まず最初に、必要なライブラリをインストールします。

!pip install git+https://github.com/facebookresearch/audiocraft 
!pip install torchvision==0.16.0
!pip install hf-transfer

次に、モデルをロードします。

from audiocraft.models import MusicGen

model = MusicGen.get_pretrained('nateraw/musicgen-songstarter-v0.2')

テキストから音楽を生成する

musicgen-songstarter-v0.2 の主な機能は、テキストの説明から音楽を生成することです。以下のコードでは、10秒の音楽を3つ生成しています。

model.set_generation_params(duration=10)  # 10秒の音楽を生成
descriptions = ['acoustic, guitar, melody, trap, d minor, 90 bpm'] * 3
wav = model.generate(descriptions)  # 3つのサンプルを生成

# 生成した音楽を保存
for idx, one_wav in enumerate(wav):
    audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True)
  • まずset_generation_paramsで生成する音楽の長さを指定
  • descriptions に生成したい音楽の特徴をテキストで記述
  • generateメソッドで実際に音楽を生成
  • audio_writeで生成した音楽をファイルに保存

既存の音楽サンプルをリミックスする

musicgen-songstarter-v0.2 はテキストから音楽を生成するだけでなく、既存の音楽サンプルを入力として新しい音楽を生成することもできます。

以下のコードでは、バッハのオルガンの旋律を使ってヒップホップ風のギターサンプルを生成しています。

melody_path = hf_hub_download("nateraw/musicgen-songstarter-v0.2", 'assets/bach.mp3')
melody, sr = torchaudio.load(melody_path)

descriptions = ['acoustic, guitar, melody, trap, d minor, 90 bpm'] * 3
wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr)

for idx, one_wav in enumerate(wav):
    audio_write(f'{idx}_bach', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True)
  • hf_hub_downloadでバッハの旋律のサンプルをダウンロード
  • generate_with_chromaメソッドに旋律とテキストの説明を渡して音楽を生成
  • 生成した音楽をファイルに保存

まとめ

musicgen-songstarter-v0.2を使うと、テキストの説明から音楽を生成したり、既存の音楽サンプルをリミックスしたりすることができます。

  • テキストから音楽を生成するにはgenerateメソッドを使う
  • 既存のサンプルをリミックスするにはgenerate_with_chromaメソッドを使う
  • 生成した音楽はaudio_writeでファイルに保存できる

ぜひmusicgen-songstarter-v0.2を使って、音楽制作の新しいアイデアを見つけてみてください。

リポジトリ

nateraw/musicgen-songstarter-v0.2 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

ノートブック

Google Colaboratory

コメント

タイトルとURLをコピーしました