用途
AudioCraft 是 Meta 的 PyTorch 音频生成库,面向以下需求:根据文本描述生成音乐;生成音效与环境声;构建音乐生成应用;旋律条件音乐生成;立体声音频输出;带风格迁移的可控音乐生成。
替代方案:Stable Audio(较长商业音乐生成)、Bark(带音乐/音效的文本转语音)、Riffusion(频谱图音乐生成)、OpenAI Jukebox(带歌词的原始音频生成)。
主要能力
- MusicGen:文本生成音乐,支持旋律条件。
- AudioGen:文本生成音效。
- EnCodec:高保真神经音频编解码器。
- 模型规模:Small(300M)至 Large(3.3B)。
- 立体声:完整立体声音频生成。
- 风格条件:MusicGen-Style 基于参考音频生成。
模型变体包括 musicgen-small(300M,文本转音乐,快速生成)、musicgen-medium(1.5B,平衡)、musicgen-large(3.3B,最佳质量)、musicgen-melody(1.5B,文本+旋律)、musicgen-melody-large(3.3B)、musicgen-stereo-*(立体声输出)、musicgen-style(1.5B,基于参考的风格迁移)、audiogen-medium(1.5B,文本转音效)。
使用方式
安装:
# 从 PyPI
pip install audiocraft
# 从 GitHub(最新)
pip install git+https://github.com/facebookresearch/audiocraft.git
# 或使用 HuggingFace Transformers
pip install transformers torch torchaudio
基础文本生成音乐(AudioCraft):加载 MusicGen.get_pretrained('facebook/musicgen-small'),通过 set_generation_params 设置 duration、top_k、temperature,调用 model.generate(descriptions),再用 torchaudio.save 保存 WAV。
HuggingFace Transformers 方式:使用 AutoProcessor 与 MusicgenForConditionalGeneration.from_pretrained,经 processor 处理文本后用 model.generate 生成,按 model.config.audio_encoder.sampling_rate 保存。
AudioGen:加载 AudioGen.get_pretrained('facebook/audiogen-medium'),设置 duration,用 generate 生成音效并以 16000 采样率保存。
生成参数默认值:duration 8.0 秒(范围 1-120)、top_k 250、top_p 0.0(0 表示禁用)、temperature 1.0、cfg_coef 3.0。
进阶用法:
- 旋律条件:使用 musicgen-melody,调用 generate_with_chroma 并传入旋律音频。
- 立体声:使用 musicgen-stereo-medium,输出形状为 [batch, 2, samples]。
- 音频续写:经 Transformers 的 processor 同时传入音频与文本,再 generate。
- MusicGen-Style:set_generation_params 中 cfg_coef_beta 控制风格影响,set_style_conditioner_params 设置 eval_q(1-6)与 excerpt_length,调用 generate_with_style;传入 [None] 可仅按风格生成。
- EnCodec:CompressionModel.get_pretrained('facebook/encodec_32khz'),将音频重采样至 32000 后 encode 为 codes,再 decode 重建。
文中还给出三种工作流示例:封装 MusicGenerator 类实现单条/批量生成与保存;批量音效生成(读取规格列表并输出 WAV);Gradio 演示界面(输入描述、时长、temperature、CFG 系数,输出音频)。
性能与限制
显存需求(资料给出):musicgen-small 约 4GB(FP32)/2GB(FP16),medium 约 8GB/4GB,large 约 16GB/8GB。可通过小模型、清空 CUDA 缓存、缩短时长、半精度等方式优化;批量生成比逐条生成更高效。常见问题:CUDA OOM 用更小模型或缩短时长;质量不佳提高 cfg_coef 并优化提示词;生成长度不足检查最大时长设置;音频伪影调整 temperature;立体声不生效需使用立体声模型变体。
收费、价格与商业使用条款资料暂未提供,需以官方仓库与模型页面为准。