モデル概要
モデル特徴
モデル能力
使用事例
🚀 MusicGen - Small - 300M
MusicGenは、テキスト記述やオーディオプロンプトを条件として、高品質な音楽サンプルを生成できるテキストから音楽への変換モデルです。このモデルは、32kHzのEnCodecトークナイザーを使って訓練された単一ステージの自己回帰型Transformerモデルで、50Hzでサンプリングされた4つのコードブックを持ちます。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:
✨ 主な機能
- テキスト記述やオーディオプロンプトを条件として、高品質な音楽サンプルを生成できます。
- 単一ステージの自己回帰型Transformerモデルで、一度に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-small")
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"])
Audiocraftを使用する場合
次のPythonコードを実行します。
from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained("small")
model.set_generation_params(duration=8) # generate 8 seconds.
descriptions = ["happy rock", "energetic EDM"]
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")
高度な使用法
🤗 Transformersを使用する場合
Transformersのモデリングコードを介して推論を実行することもできます。プロセッサーと生成コードを使用して、テキストをモノラル32kHzのオーディオ波形に変換し、より細かい制御が可能です。
from transformers import AutoProcessor, MusicgenForConditionalGeneration
processor = AutoProcessor.from_pretrained("facebook/musicgen-small")
model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")
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())
🤗 Transformersライブラリを使用してMusicGenモデルを推論する詳細については、MusicGenのドキュメントを参照してください。
📚 ドキュメント
モデルの詳細
属性 | 详情 |
---|---|
開発組織 | Meta AIのFAIRチーム |
モデルの日付 | 2023年4月から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リポジトリを介して、または問題を開くことで送信できます。 |
意図された使用法
- 主な意図された使用法: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 | テキストの一貫性 | クロマコサイン類似度 |
---|---|---|---|---|
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で公開されています。







