モデル概要
モデル特徴
モデル能力
使用事例
🚀 MusicGen - Large - 3.3B
MusicGenは、テキスト記述やオーディオプロンプトを条件として、高品質な音楽サンプルを生成できるテキストから音楽への変換モデルです。 これは、50Hzでサンプリングされた4つのコードブックを持つ32kHzのEnCodecトークナイザーを使って学習された単一ステージの自己回帰型Transformerモデルです。 MusicLMなどの既存の手法とは異なり、MusicGenは自己教師付きの意味表現を必要とせず、一度にすべての4つのコードブックを生成します。 コードブック間に小さな遅延を導入することで、並列に予測できることを示しており、これにより1秒あたりわずか50回の自己回帰ステップで済みます。
MusicGenは、Jade Copet, Felix Kreuk, Itai Gat, Tal Remez, David Kant, Gabriel Synnaeve, Yossi Adi, Alexandre DéfossezによるSimple and Controllable Music Generationで発表されました。
4つのチェックポイントが公開されています:
🚀 クイックスタート
自分でMusicGenを試してみましょう!
- Audiocraft Colab:
- Hugging Face Colab:
- Hugging Face Demo:
✨ 主な機能
MusicGenは、テキスト記述やオーディオプロンプトを条件として高品質な音楽サンプルを生成することができます。既存の手法とは異なり、自己教師付きの意味表現を必要とせず、一度にすべての4つのコードブックを生成します。
📦 インストール
🤗 Transformersを使ったローカル実行
4.31.0以降の🤗 Transformersライブラリを使って、MusicGenをローカルで実行できます。
- まず、🤗 Transformersライブラリとscipyをインストールします。
pip install --upgrade pip
pip install --upgrade transformers scipy
Audiocraftを使ったローカル実行
元のAudiocraftライブラリを通じて、MusicGenをローカルで実行することもできます。
- まず、
audiocraft
ライブラリをインストールします。
pip install git+https://github.com/facebookresearch/audiocraft.git
ffmpeg
がインストールされていることを確認します。
apt get install ffmpeg
💻 使用例
🤗 Transformersを使った推論
基礎的な使用法
Text-to-Audio
(TTA)パイプラインを介して推論を実行します。わずか数行のコードで、TTAパイプラインを介してMusicGenモデルを推論できます!
from transformers import pipeline
import scipy
synthesiser = pipeline("text-to-audio", "facebook/musicgen-large")
music = synthesiser("lo-fi music with a soothing melody", forward_params={"do_sample": True})
scipy.io.wavfile.write("musicgen_out.wav", rate=music["sampling_rate"], data=music["audio"])
高度な使用法
Transformersのモデリングコードを介して推論を実行します。processor + generateコードを使って、より細かい制御でテキストをモノラル32kHzのオーディオ波形に変換できます。
from transformers import AutoProcessor, MusicgenForConditionalGeneration
processor = AutoProcessor.from_pretrained("facebook/musicgen-large")
model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-large")
inputs = processor(
text=["80s pop track with bassy drums and synth", "90s rock song with loud guitars and heavy drums"],
padding=True,
return_tensors="pt",
)
audio_values = model.generate(**inputs, max_new_tokens=256)
オーディオサンプルの再生または保存
ipynbノートブックでオーディオサンプルを聴くには、以下のコードを使用します。
from IPython.display import Audio
sampling_rate = model.config.audio_encoder.sampling_rate
Audio(audio_values[0].numpy(), rate=sampling_rate)
または、サードパーティのライブラリ(例:scipy
)を使って、オーディオサンプルを.wav
ファイルとして保存します。
import scipy
sampling_rate = model.config.audio_encoder.sampling_rate
scipy.io.wavfile.write("musicgen_out.wav", rate=sampling_rate, data=audio_values[0, 0].numpy())
Audiocraftを使った推論
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained("large")
model.set_generation_params(duration=8) # 8秒間の音楽を生成します。
descriptions = ["happy rock", "energetic EDM"]
wav = model.generate(descriptions) # 2つのサンプルを生成します。
for idx, one_wav in enumerate(wav):
# -14 db LUFSで音量正規化して、{idx}.wavとして保存します。
audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness")
📚 ドキュメント
モデル詳細
属性 | 详情 |
---|---|
開発組織 | Meta AIのFAIRチーム |
モデル作成日 | 2023年4月から2023年5月の間に学習されました。 |
モデルバージョン | これはモデルのバージョン1です。 |
モデルタイプ | MusicGenは、オーディオトークン化用のEnCodecモデルと、音楽モデリング用のTransformerアーキテクチャに基づく自己回帰型言語モデルで構成されています。モデルには、300M、1.5B、3.3Bパラメータの異なるサイズと、テキストから音楽への生成タスク用に学習されたモデルと、メロディガイド付き音楽生成用に学習されたモデルの2つのバリエーションがあります。 |
詳細情報の論文またはリソース | 詳細情報は、論文Simple and Controllable Music Generationを参照してください。 |
引用情報 | @misc{copet2023simple, title={Simple and Controllable Music Generation}, author={Jade Copet and Felix Kreuk and Itai Gat and Tal Remez and David Kant and Gabriel Synnaeve and Yossi Adi and Alexandre Défossez}, year={2023}, eprint={2306.05284}, archivePrefix={arXiv}, primaryClass={cs.SD}} |
ライセンス | コードはMITライセンスで公開され、モデルの重みはCC-BY-NC 4.0で公開されています。 |
質問やコメントの送信先 | MusicGenに関する質問やコメントは、プロジェクトのGithubリポジトリを通じて、またはissueを開くことで送信できます。 |
想定使用方法
主な想定使用目的: MusicGenの主な使用目的は、AIベースの音楽生成に関する研究です。
- 生成モデルの限界を調査し、より深く理解して、科学の現状をさらに改善するための研究活動
- 機械学習の愛好家が生成AIモデルの現在の能力を理解するための、テキストまたはメロディによる音楽生成
主な想定ユーザー: このモデルの主な想定ユーザーは、音声、機械学習、人工知能の研究者、およびこれらのモデルをより深く理解しようとする愛好家です。
想定外の使用ケース: このモデルは、さらなるリスク評価と軽減策を行わずに下流のアプリケーションで使用してはなりません。また、人々に敵対的または疎外感を与える音楽作品を意図的に作成または配布するために使用してはなりません。これには、人々が不快、苦痛、または不快感を感じる可能性のある音楽や、歴史的または現在のステレオタイプを広めるコンテンツの生成が含まれます。
評価指標
モデルの性能評価指標: 標準的な音楽ベンチマークでモデルを評価するために、以下の客観的な指標を使用しました。
- 事前学習されたオーディオ分類器(VGGish)から抽出された特徴量に基づくFrechet Audio Distance
- 事前学習されたオーディオ分類器(PaSST)から抽出されたラベル分布のKullback-Leibler Divergence
- 事前学習されたCLAPモデルから抽出されたオーディオ埋め込みとテキスト埋め込みの間のCLAPスコア
さらに、人間の参加者を対象とした定性的な研究を行い、以下の軸でモデルの性能を評価しました。
- 音楽サンプルの全体的な品質
- 提供されたテキスト入力に対するテキストの関連性
- メロディガイド付き音楽生成におけるメロディの忠実度
性能評価指標と人間による研究の詳細は、論文を参照してください。
決定閾値: 該当しません。
評価データセット
モデルは、MusicCapsベンチマークと、学習セットとアーティストが重複しないドメイン内のホールドアウト評価セットで評価されました。
学習データセット
モデルは、以下のソースから取得したライセンス付きデータで学習されました。Meta Music Initiative Sound Collection、Shutterstock music collection、およびPond5 music collection。学習セットと対応する前処理の詳細については、論文を参照してください。
評価結果
公開されたモデルをMusicCapsで評価して得られた客観的な指標を以下に示します。公開されたモデルについては、すべてのデータセットを最先端の音楽ソース分離方法(具体的には、オープンソースのHybrid Transformer for Music Source Separation (HT-Demucs))で処理して、楽器部分のみを残しています。これが、論文で使用されたモデルと客観的な指標に差がある理由です。
モデル | Frechet Audio Distance | KLD | テキスト一致性 | Chroma Cosine Similarity |
---|---|---|---|---|
facebook/musicgen-small | 4.88 | 1.42 | 0.27 | - |
facebook/musicgen-medium | 5.14 | 1.38 | 0.28 | - |
facebook/musicgen-large | 5.48 | 1.37 | 0.28 | - |
facebook/musicgen-melody | 4.93 | 1.41 | 0.27 | 0.44 |
詳細は、論文Simple and Controllable Music Generationの結果セクションを参照してください。
制限事項とバイアス
データ: モデルの学習に使用されたデータソースは、音楽専門家によって作成され、権利者との法的契約の対象となっています。モデルは20,000時間のデータで学習されており、より大規模なデータセットでモデルを拡張することで、モデルの性能をさらに向上させることができると考えています。
軽減策: データソースからは、対応するタグを使用してボーカルを削除し、その後、最先端の音楽ソース分離方法(具体的には、オープンソースのHybrid Transformer for Music Source Separation (HT-Demucs))を使用しています。
制限事項:
- モデルは、リアルなボーカルを生成することができません。
- モデルは英語の記述で学習されており、他の言語では性能が低下します。
- モデルは、すべての音楽スタイルや文化に対して同等の性能を発揮しません。
- モデルは、時々曲の終わりを生成し、無音に落ち着きます。
- どのようなタイプのテキスト記述が最良の生成結果をもたらすかを評価することは難しい場合があります。満足のいく結果を得るには、プロンプトエンジニアリングが必要になることがあります。
バイアス: データソースは多様性に欠ける可能性があり、すべての音楽文化がデータセットに均等に表されているわけではありません。モデルは、既存の多様な音楽ジャンルに対して同等の性能を発揮しない可能性があります。モデルから生成されるサンプルは、学習データのバイアスを反映します。このモデルに関する今後の作業には、例えば学習データを多様かつ包括的にすることで、文化のバランスの取れた公正な表現方法を含める必要があります。
リスクと害: モデルのバイアスと制限事項により、バイアスがある、不適切な、または不快なサンプルが生成される可能性があります。研究を再現し、新しいモデルを学習するためのコードを提供することで、より代表的な新しいデータへの適用範囲を広げることができると考えています。
使用ケース: ユーザーは、モデルのバイアス、制限事項、およびリスクを認識している必要があります。MusicGenは、制御可能な音楽生成に関する人工知能研究用に開発されたモデルです。したがって、リスクのさらなる調査と軽減策を行わずに下流のアプリケーションで使用してはなりません。
📄 ライセンス
コードはMITライセンスで公開され、モデルの重みはCC-BY-NC 4.0で公開されています。







