🚀 穩定音頻開源模型 1.0
Stable Audio Open 1.0
能夠根據文本提示生成長達 47 秒的 44.1kHz 立體聲音頻。該模型由自編碼器、基於 T5 的文本嵌入和基於變壓器的擴散模型三部分組成,可助力 AI 音樂與音頻生成的研究與實驗。
⚠️ 重要提示
如需商業使用,請參考 https://stability.ai/license。
💡 使用建議
點擊“同意”即表示您同意 許可協議,並認可 Stability AI 的 隱私政策。
🚀 快速開始
Stable Audio Open 1.0
可與以下庫結合使用:
stable-audio-tools
庫
diffusers
庫
✨ 主要特性
Stable Audio Open 1.0
由三個關鍵部分構成:
- 自編碼器:可將波形壓縮為易於處理的序列長度。
- 基於 T5 的文本嵌入:用於文本條件處理。
- 基於變壓器的擴散(DiT)模型:在自編碼器的潛在空間中運行。
📦 安裝指南
使用此模型前,請確保將 diffusers
庫升級到最新版本:
pip install -U diffusers
💻 使用示例
基礎用法
以下是使用 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
庫的示例代碼:
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 條來自自由音樂檔案(FMA)。所有音頻文件均遵循 CC0、CC BY 或 CC Sampling+ 許可協議。這些數據用於訓練我們的自編碼器和 DiT 模型。我們使用公開可用的預訓練 T5 模型(t5-base)進行文本條件處理。
歸屬信息
用於訓練 Stable Audio Open 1.0
的所有音頻記錄的歸屬信息可在我們的 歸屬頁面 上找到。
風險緩解
在開始訓練之前,我們進行了深入分析,以確保訓練數據中不存在未經授權的受版權保護的音樂。
- Freesound 數據集:我們首先使用基於 AudioSet 類的 PANNs 音樂分類器識別 Freesound 中的音樂樣本。識別出的音樂樣本至少有 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 許可證。