[ PROMPT_NODE_22744 ]
audiocraft-audio-generation
[ SKILL_DOCUMENTATION ]
# AudioCraft: 音频生成
使用 Meta 的 AudioCraft 进行文本转音乐和文本转音频生成的综合指南,涵盖 MusicGen、AudioGen 和 EnCodec。
## 何时使用 AudioCraft
**在以下情况使用 AudioCraft:**
- 需要根据文本描述生成音乐
- 创建音效和环境音频
- 构建音乐生成应用程序
- 需要旋律引导的音乐生成
- 需要立体声音频输出
- 需要具有风格迁移的可控音乐生成
**主要特性:**
- **MusicGen**: 带有旋律引导的文本转音乐生成
- **AudioGen**: 文本转音效生成
- **EnCodec**: 高保真神经音频编解码器
- **多种模型尺寸**: 从小型 (300M) 到大型 (3.3B)
- **立体声支持**: 全立体声音频生成
- **风格引导**: 用于基于参考生成的 MusicGen-Style
**建议使用替代方案:**
- **Stable Audio**: 用于更长的商业音乐生成
- **Bark**: 用于带有音乐/音效的文本转语音
- **Riffusion**: 用于基于频谱图的音乐生成
- **OpenAI Jukebox**: 用于带有歌词的原始音频生成
## 快速开始
### 安装
bash
# 从 PyPI 安装
pip install audiocraft
# 从 GitHub 安装 (最新版)
pip install git+https://github.com/facebookresearch/audiocraft.git
# 或者使用 HuggingFace Transformers
pip install transformers torch torchaudio
### 基础文本转音乐 (AudioCraft)
python
import torchaudio
from audiocraft.models import MusicGen
# 加载模型
model = MusicGen.get_pretrained('facebook/musicgen-small')
# 设置生成参数
model.set_generation_params(
duration=8, # 秒
top_k=250,
temperature=1.0
)
# 从文本生成
descriptions = ["happy upbeat electronic dance music with synths"]
wav = model.generate(descriptions)
# 保存音频
torchaudio.save("output.wav", wav[0].cpu(), sample_rate=32000)
### 使用 HuggingFace Transformers
python
from transformers import AutoProcessor, MusicgenForConditionalGeneration
import scipy
# 加载模型和处理器
processor = AutoProcessor.from_pretrained("facebook/musicgen-small")
model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small")
model.to("cuda")
# 生成音乐
inputs = processor(
text=["80s pop track with bassy drums and synth"],
padding=True,
return_tensors="pt"
).to("cuda")
audio_values = model.generate(
**inputs,
do_sample=True,
guidance_scale=3,
max_new_tokens=256
)
# 保存
sampling_rate = model.config.audio_en