跳到主要内容

音频生成模型

AudioGen 私有化部署:1.5B 文生音效,一张 24GB 卡跑到底

AudioGen 是 Meta FAIR 的文本生环境音模型,不生成音乐、不生成人声,专门把「雨打在铁皮屋顶上」「远处警笛由远及近」这类描述变成 16kHz 波形。官方唯一公开的检查点是 facebook/audiogen-medium,1.5B 参数,文档要求显存不低于 16GB。

先把最容易混淆的一件事说清楚:AudioGen 不是 MusicGen。同一个 audiocraft 仓库、同一套 EnCodec 分词器、几乎同一套 Transformer 代码,但训练数据完全不同——AudioGen 吃的是 AudioSet、BBC 音效库、AudioCaps、Clotho v2、VGG-Sound、FSD50K 这类环境声与音效语料,产出的是脚步声、玻璃碎裂、鸟鸣、机械嗡鸣。你拿它写旋律只会得到一段噪声。想做音乐请走 MusicGen,想做音效、游戏环境音、视频后期拟音,AudioGen 才是这条线上的开源起点。

现在公开的这版是 2023 年 7—8 月重做的 AudioGen v2:Meta 把它整个搬到了 MusicGen 的架构上,生成窗口从论文版的 5 秒延长到 10 秒,EnCodec 用环境音数据重训过,并去掉了论文里那个「混音增强」技巧。模型卡在 AudioCaps 上报的是 FAD 1.77、KL 1.58。Meta 自己也标明了一句很重要的话:公开的这批权重并不是论文里报数的那批原始模型。整条链路是 EnCodec 4 个码本、每码本 2048 词表、50Hz 帧率,输出 16kHz 单声道。

落地时真正卡人的不是显存,是依赖。audiocraft 的 requirements.txt 把 torch 钉死在 2.1.0,torchaudio 限在 2.1.2 以下,还带着 torchvision==0.16.0、torchtext==0.16.0、xformers<0.0.23、numpy<2.0.0、av==11.0.0、spacy==3.7.6 这一串。PyPI 上最后一个版本 1.3.0 停在 2024 年 6 月,仓库最后一次提交是 2025 年 3 月,Hugging Face 上的权重最后更新是 2024 年 3 月——这是一个已经冻结的技术栈。它带来的直接后果是:新卡反而不友好,老卡刚刚好。这页把该踩的坑和该选的卡一次讲完。

01 —

AudioGen 有哪些版本,实际能下到哪个

官方只公开了一个检查点,其余是同栈的替代路线,别被模型名骗了

版本参数量显存上下文说明
facebook/audiogen-medium1.5B官方要求 ≥16GB;state_dict.bin 3.68GB + EnCodec 236MB + T5 文本编码器约 0.9GB10 秒原生窗口,超长靠滑窗续写(extend_stride 默认 2 秒)唯一公开的官方权重,也是全部。没有 small、没有 large,Hugging Face 上其余同名仓库都是社区镜像或第三方微调。代码 MIT,权重 CC-BY-NC-4.0。
AudioGen v1(ICLR 2023 论文版)未公开不适用5 秒Kreuk 等人 2022 年 9 月那篇 arXiv:2209.15352 里的原始模型,权重从未发布。你在网上看到的任何「AudioGen 论文复现指标」都对不上你能下到的这版。
facebook/audio-magnet-medium1.5B与 audiogen-medium 同级,官方同样按 ≥16GB 计10 秒同一个 audiocraft 装一次就能用。非自回归掩码解码,MAGNeT 论文称比自回归基线快 7 倍。你如果嫌 AudioGen 逐 token 解码太慢,这是最省事的换法。
facebook/audio-magnet-small300M参数量只有 medium 的五分之一,fp16 权重约 0.6GB 量级10 秒音效生成里最便宜的一档,适合做实时试听、批量粗筛,选中的 prompt 再交给 medium 精出。
Stable Audio Open 1.0(对照,非 Meta 系)约 1B扩散架构,显存曲线与自回归的 AudioGen 完全不同最长 47 秒44.1kHz 立体声,训练数据全部来自 Freesound 与 FMA 的 CC 授权素材,走 Stability AI Community License。保真度和授权都比 AudioGen 友好,代价是它更偏音乐、生态更新。

02 —

AudioGen 用什么显卡跑最划算

依赖锁在 torch 2.1.0,所以选卡逻辑跟新模型完全反过来:别追最新架构

  • 试音、调 prompt、单条 10 秒出片

    RTX 3090 24GB$0.193/卡·时

    24GB 把官方 16GB 底线甩开一大截,Ampere 的 sm_86 被 torch 2.1.0 的 cu118/cu121 轮子原生覆盖,装完就能跑,是这套冻结依赖栈里最便宜的稳妥选择。

  • 批量出素材库,一次并行 8~16 条 prompt

    RTX 4090 24GB$0.540/卡·时

    AudioGen 是 50Hz × 4 码本的逐 token 自回归解码,解码吞吐直接换算成每小时出片量;Ada 的 fp16 性能在这里花得值,24GB 也吃得下更大的 batch。

  • 在自己的音效库上微调 audiogen-medium

    RTX A6000 48GB$0.817/卡·时

    fp32 权重加上梯度和优化器状态,占用是纯推理的三倍以上。48GB 让你在单卡上把微调跑通,不用先跟 FSDP 分片配置搏斗。

  • 用 AudioGenSolver 从头训练或多卡全量微调

    A100 SXM4 80GB$1.088/卡·时

    audiocraft 的训练配方默认走 FSDP 多卡,需要 NVLink 级互联和大显存。NexGPU 单节点最多 14 张卡、节点显存上限 2,152GB,够摆开一整轮训练。

03 —

AudioGen 部署四步,从空机器到第一条音效

关键在第二步:先把 torch 钉回 2.1.0,再装 audiocraft,顺序反了必然失败

  1. 01

    开一台 CUDA 12.1 的实例,确认驱动

    在 console.nexgpu.net 上选 PyTorch 预置镜像开机,SSH 进去先看卡。这一步就要做决定:audiocraft 依赖的 torch 2.1.0 只有 cu118 和 cu121 两种轮子,覆盖到 Hopper(sm_90)为止。Blackwell 架构的 RTX 5090 是 sm_120,torch 2.1 里根本没有对应的 kernel,跑起来会直接抛 “no kernel image is available for execution on the device”。3090、4090、A10、A6000、A100、V100 都在覆盖范围内。

    nvidia-smi && python -c "import torch; print(torch.__version__, torch.cuda.get_device_capability())"
  2. 02

    按顺序装依赖:torch 2.1.0 在前,audiocraft 在后

    audiocraft 的 requirements.txt 里是 torch==2.1.0、torchaudio>=2.0.0,<2.1.2、torchvision==0.16.0、torchtext==0.16.0、xformers<0.0.23、numpy<2.0.0。torchtext 已经被 PyTorch 官方停止维护,所以必须让 pip 拿到 0.16.0 这个正好匹配 torch 2.1 的版本。ffmpeg 是硬依赖,torchaudio 存盘读盘全靠它,官方建议装 5 以下的版本。Python 用 3.9 最省事。

    pip install "torch==2.1.0" "torchaudio==2.1.0" --index-url https://download.pytorch.org/whl/cu121 && pip install "numpy<2.0.0" setuptools wheel && pip install -U audiocraft && apt-get update && apt-get install -y ffmpeg
  3. 03

    拉权重,生成第一批音效

    第一次调用会从 Hugging Face 拉三份东西:state_dict.bin(3.68GB,语言模型本体)、compression_state_dict.bin(236MB,重训过的 EnCodec)、以及 transformers 那边的 T5 文本编码器(约 0.9GB)。注意 AudioGen 不在 Hugging Face transformers 里——没有 AudioGenForConditionalGeneration 这种东西,只能用 audiocraft 的接口加载。生成参数默认是 top_k=250、temperature=1.0、cfg_coef=3.0、duration=10.0,音效类 prompt 想更贴文字就把 cfg_coef 往上调。

    python -c "from audiocraft.models import AudioGen; from audiocraft.data.audio import audio_write; m=AudioGen.get_pretrained('facebook/audiogen-medium'); m.set_generation_params(duration=10, top_k=250, cfg_coef=3.0); w=m.generate(['heavy rain on a metal roof with distant thunder','footsteps on gravel then a door creaking open']); [audio_write(f'out_{i}', x.cpu(), m.sample_rate, strategy='loudness', loudness_compressor=True) for i,x in enumerate(w)]"
  4. 04

    开 Web 界面或转批量脚本

    仓库自带 Gradio demo,适合让不写代码的音效师直接调 prompt。要产量就别用界面:把 prompt 列成 list 一次性喂给 model.generate(),自回归解码在 batch 维度上是并行的,单条跑和八条跑的墙钟时间差得远没有八倍。超过 10 秒的需求靠 extend_stride 滑窗续写,stride 调小连贯性更好但更慢,默认 2 秒是折中值。

    python -m demos.audiogen_app --share

在 NexGPU 上跑 AudioGen 到底花多少钱

把整条链路按真实费率算一遍。开一台 RTX 3090 24GB,$0.193/卡·时。拉权重:3.68GB 的语言模型 + 236MB 的 EnCodec + 约 0.9GB 的 T5 编码器,合计不到 5GB,入站不计费。装依赖、跑通第一条、把 prompt 调顺手,按 40 分钟算:0.193 × 40/60 = $0.129。接着开批量出素材,占 3 小时:0.193 × 3 = $0.579。到这里总共 $0.708。 换 RTX 4090 24GB($0.540/卡·时)跑同样 3 小时是 $1.62。多出来的钱买的是 Ada 架构的 fp16 解码速度——AudioGen 逐 token 解码,每秒音频要解 50 帧 × 4 个码本,解码快多少,你一小时出的条数就多多少。 导出几乎不花钱:16kHz、16-bit、单声道,一条 10 秒片段 = 10 × 16000 × 2 = 320KB;1,000 条 = 320MB = 0.32GB,按出站中位价 $0.0081/GB 算约 $0.0026。 唯一持续计费的是存储:把这 4.8GB 权重留在盘上,按 $0.414/GB·月 中位价约 $1.99/月。算力在实例停止的那一秒就停止计费,存储要销毁实例才归零。按秒计量、按小时定价,没有起步时长、没有开通费、没有配额申请——跑 22 分钟就是 0.540 × 22/60 = $0.198。

04 —

常见问题

AudioGen 需要多大显存?24GB 的 4090 够吗?

AudioCraft 文档对 1.5B 级别的模型明确写了一句:推理需要至少 16GB 显存的 GPU。audiogen-medium 正是这一档。实际下载量是 state_dict.bin 3.68GB 加 EnCodec 236MB 加 T5 编码器约 0.9GB,权重本身没那么大,但自回归解码的 KV 缓存会随 batch 和时长增长,所以官方给的是 16GB 而不是 5GB。24GB 的 RTX 4090 不仅够,还能开到相当大的 batch。真要省钱,NexGPU 的 RTX 3090 24GB 只要 $0.193/卡·时,显存一样、架构同样在 torch 2.1 的支持范围内,是这个模型性价比最高的起步卡。

AudioGen 有 GGUF、Q4 或 INT4 量化版本吗?

没有。这是很多人从 LLM 那边带过来的错误预期——AudioGen 不在 llama.cpp 的生态里,Hugging Face 上也找不到官方或有分量的社区 GGUF / ONNX / INT4 移植。你能做的是让 audiocraft 在 CUDA 上走 fp16 autocast,这是它默认的行为,此外没有现成的低比特路径。换句话说,16GB 这条线是绕不过去的硬门槛,不存在「量化一下塞进 8GB 卡」的方案。既然省不了显存,那就省租金:NexGPU 上一张 24GB 的 3090 每小时不到两毛美金,按秒计费,跑完就停。

AudioGen 和 MusicGen 有什么区别?我该用哪个?

架构几乎一样,训练数据和用途完全不同。AudioGen 训练在 AudioSet、BBC 音效库、AudioCaps、Clotho v2、VGG-Sound、FSD50K 这类环境音语料上,输出 16kHz 单声道,擅长音效、环境声、拟音;MusicGen 训练在授权音乐上,输出 32kHz,擅长旋律和编曲。两个模型都明确做不了逼真人声,提示词也都以英文为准。判断很简单:你要的是「一段配乐」就用 MusicGen,要的是「开门声、雨声、地铁进站声」就用 AudioGen。两个模型同一个 audiocraft 仓库、同一套依赖,在 NexGPU 上一台 24GB 的实例装一次就能来回切。

AudioGen 可以商用吗?CC-BY-NC-4.0 具体限制什么?

代码是 MIT,随便用;权重是 CC-BY-NC-4.0,NC 就是 NonCommercial,意味着你不能拿 audiogen-medium 生成的音频去做商业产品、商业素材包或收费服务。Meta 在模型卡里也把定位写成研究和教育用途,未经额外风险评估不建议投产。如果你要的是能商用的路线,Stable Audio Open 1.0 走的是 Stability AI Community License,训练素材全部来自 Freesound 和 FMA 的 CC 授权音频,商业条款要清楚得多;或者你用 AudioGen 的训练配方在自有素材上重训一版权重,那份权重归你。不论走哪条路,NexGPU 上按秒租一张卡把它验证完,成本都在个位数美元。

audiocraft 装不上 / 报 no kernel image is available,能用 RTX 5090 吗?

不建议。audiocraft 的 requirements.txt 把 torch 钉死在 2.1.0,而 torch 2.1.0 只发布了 cu118 和 cu121 的轮子,算力覆盖到 Hopper(sm_90)为止。RTX 5090 是 Blackwell、sm_120,torch 2.1 里没有对应的 kernel,一跑就报那句错。除非你自己去解依赖、升到 torch 2.7 以上再对付 torchtext==0.16.0 和 numpy<2.0.0 的连锁冲突,否则不值得。这个冻结的技术栈反而让老卡成了正确答案:NexGPU 的 RTX 3090 24GB($0.193/卡·时)、Tesla V100 32GB($0.188/卡·时)、A10 24GB($0.414/卡·时)、A6000 48GB($0.817/卡·时)都在 torch 2.1 的原生支持范围内,开机就能装。

AudioGen 还在维护吗?2026 年还值得部署吗?

得实话实说:audiocraft 在 PyPI 上的最后一个版本是 2024 年 6 月的 1.3.0,仓库最后一次提交在 2025 年 3 月,audiogen-medium 的权重自 2024 年 3 月起没动过。它是一个冻结但可用的项目——正因为冻结,环境一旦搭好就不会被上游改动打破。它现在的价值在于:开箱即用的中文可控音效基线、可以在自有素材上继续微调的完整训练配方、以及 MIT 的代码授权。想要更快就换同仓库的 audio-magnet(非自回归,论文称比自回归基线快 7 倍),想要 44.1kHz 立体声和更宽松的商用条款就看 Stable Audio Open。这几条路都需要一张卡去实测,NexGPU 有 51 个国家和地区、1,175 个已验证节点、2,498 张 GPU、75 种型号,按秒计费、无最低消费,装环境的那 40 分钟也就一毛多钱。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。