🚀 Stable Audio Open 1.0
Stable Audio Open 1.0
は、テキストプロンプトから44.1kHzの可変長(最大47秒)のステレオオーディオを生成します。このモデルは、波形を管理しやすいシーケンス長に圧縮するオートエンコーダー、テキスト条件付けのためのT5ベースのテキスト埋め込み、およびオートエンコーダーの潜在空間で動作するトランスフォーマーベースの拡散(DiT)モデルの3つのコンポーネントで構成されています。
⚠️ 重要提示
商用利用については、https://stability.ai/license を参照してください。
🚀 クイックスタート
このモデルは、以下のライブラリと一緒に使用できます。
stable-audio-tools
ライブラリ
diffusers
ライブラリ
💻 使用例
基本的な使用法
stable-audio-tools
を使用する場合
このモデルは、推論に stable-audio-tools
ライブラリと一緒に使用するように作られています。例えば:
import torch
import torchaudio
from einops import rearrange
from stable_audio_tools import get_pretrained_model
from stable_audio_tools.inference.generation import generate_diffusion_cond
device = "cuda" if torch.cuda.is_available() else "cpu"
model, model_config = get_pretrained_model("stabilityai/stable-audio-open-1.0")
sample_rate = model_config["sample_rate"]
sample_size = model_config["sample_size"]
model = model.to(device)
conditioning = [{
"prompt": "128 BPM tech house drum loop",
"seconds_start": 0,
"seconds_total": 30
}]
output = generate_diffusion_cond(
model,
steps=100,
cfg_scale=7,
conditioning=conditioning,
sample_size=sample_size,
sigma_min=0.3,
sigma_max=500,
sampler_type="dpmpp-3m-sde",
device=device
)
output = rearrange(output, "b d n -> d (b n)")
output = output.to(torch.float32).div(torch.max(torch.abs(output))).clamp(-1, 1).mul(32767).to(torch.int16).cpu()
torchaudio.save("output.wav", output, sample_rate)
diffusers
を使用する場合
diffusers
を最新バージョンにアップグレードしてください: pip install -U diffusers
。その後、以下のコードを実行できます。
import torch
import soundfile as sf
from diffusers import StableAudioPipeline
pipe = StableAudioPipeline.from_pretrained("stabilityai/stable-audio-open-1.0", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "The sound of a hammer hitting a wooden surface."
negative_prompt = "Low quality."
generator = torch.Generator("cuda").manual_seed(0)
audio = pipe(
prompt,
negative_prompt=negative_prompt,
num_inference_steps=200,
audio_end_in_s=10.0,
num_waveforms_per_prompt=3,
generator=generator,
).audios
output = audio[0].T.float().cpu().numpy()
sf.write("hammer.wav", output, pipe.vae.sampling_rate)
最適化と使用方法の詳細については、ドキュメント を参照してください。
📚 ドキュメント
モデル詳細
学習データセット
使用されたデータセット
私たちのデータセットは、486492のオーディオ録音で構成されており、そのうち472618はFreesoundから、13874はFree Music Archive (FMA) から取得されています。すべてのオーディオファイルは、CC0、CC BY、またはCC Sampling+のライセンスの下にあります。このデータは、オートエンコーダーとDiTの学習に使用されます。テキスト条件付けには、公開されている事前学習済みのT5モデル (t5-base) を使用しています。
帰属
Stable Audio Open 1.0の学習に使用されたすべてのオーディオ録音の帰属情報は、帰属ページ で確認できます。
緩和策
学習を開始する前に、学習データに無許可の著作権音楽が含まれていないことを確認するために、詳細な分析を行いました。
そのために、まずFreesoundの音楽サンプルを、AudioSetクラスに基づく PANNs 音楽分類器を使用して特定しました。特定された音楽サンプルは、少なくとも30秒の音楽を含み、音楽関連のクラスに属すると予測され、閾値0.15(PANNsの出力確率は0から1の範囲)で分類されました。この閾値は、FMAの既知の音楽サンプルを分類し、誤った否定がないことを確認することで決定されました。
特定された音楽サンプルは、信頼できるコンテンツ検出会社であるAudible Magicの識別サービスに送られ、著作権音楽が含まれていないことを確認しました。Audible Magicは、疑わしい著作権音楽をフラグ付けし、それらは学習データセットから削除されました。削除されたコンテンツの大部分は、背景に著作権音楽が流れているフィールド録音でした。この手順の後、266324のCC0、194840のCC-BY、および11454のCC Sampling+のオーディオ録音が残りました。
また、FMAのサブセットに著作権コンテンツが含まれていないことを確認するために、詳細な分析を行いました。この場合、手順は少し異なります。FMAのサブセットは音楽信号で構成されているため、著作権音楽の大規模なデータベース (https://www.kaggle.com/datasets/maharshipandya/-spotify-tracks-dataset) とのメタデータ検索を行い、潜在的な一致をフラグ付けしました。フラグ付けされたコンテンツは、人間によって個別にレビューされました。このプロセスの後、8967のCC-BYと4907のCC0のトラックが残りました。
使用と制限
意図された使用法
Stable Audio Openの主な用途は、AIベースの音楽およびオーディオ生成の研究と実験です。具体的には以下のようなものがあります。
- 生成モデルの制限をよりよく理解し、科学の現状をさらに改善するための研究活動。
- 機械学習の実践者やアーティストによる、テキストによる音楽およびオーディオの生成を通じた生成AIモデルの現在の能力の探索。
想定外の使用ケース
このモデルは、さらなるリスク評価と緩和策を行わずに下流のアプリケーションで使用しないでください。また、人々に敵対的または疎外感を与えるオーディオまたは音楽作品を意図的に作成または配布するために使用しないでください。
制限
- このモデルは、リアルなボーカルを生成することができません。
- このモデルは英語の説明で学習されており、他の言語では性能が低下します。
- このモデルは、すべての音楽スタイルや文化に対して同等の性能を発揮しません。
- このモデルは、音楽よりも音響効果やフィールド録音の生成に優れています。
- どのような種類のテキスト説明が最良の生成結果をもたらすかを評価することは、時々困難です。満足のいく結果を得るためには、プロンプトエンジニアリングが必要になる場合があります。
バイアス
データのソースは潜在的に多様性に欠けており、すべての文化がデータセットに均等に表されていません。このモデルは、存在する幅広い音楽ジャンルや音響効果に対して同等の性能を発揮しない可能性があります。モデルから生成されるサンプルは、学習データのバイアスを反映することになります。
📄 ライセンス
このモデルは Stable Audio Community License の下で提供されています。