AudioCraft 是 Meta(Facebook AI Research,FAIR)于 2023 年 6 月开源的音乐与音频生成框架,包含两个核心模型:MusicGen 负责文生音乐,AudioGen 负责文生音效(鼓掌声、狗叫、雨声等环境音)。它采用「EnCodec 神经音频编解码器 + 自回归 Transformer」的技术路线,将音频压缩为离散 token 后逐段预测生成,相较于扩散式音频模型,推理更可控且训练成本更低。框架以 Python 包 audiocraft 发布,提供推理 API、训练与微调脚本、Gradio 演示界面三套用法,模型权重托管在 Hugging Face 上,全部开源可商用(模型权重受 Meta 社区许可约束)。本篇攻略从环境安装、MusicGen/AudioGen 推理、自定义数据集微调、生产部署四个维度展开,全部命令基于官方仓库验证可运行,目标是一小时内在自己的 GPU 上跑通文生音乐。
掌握 AudioCraft 意味着你具备了从零搭建文本到音乐、文本到音效 AI 系统的完整能力——这是多模态生成领域最稀缺的工程方向之一,可支撑音乐辅助创作、影视配乐、游戏音效等商业化场景。
目录
速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。
为什么需要 AudioCraft:文本生成音乐的工程化难题
在 AudioCraft 出现前,AI 音乐生成存在两条路:一是以 MusicLM 为代表的商业/研究封闭系统,代码与权重不开放,无法二次开发;二是以 Riffusion 为代表的扩散式生成方案,对文本语义的控制弱,时长有限且音质不稳。音频生成的门槛还在于「中间表示」——音频是 32kHz 采样率的高维序列,直接回归波形或频谱几乎不可行,必须先将音频压缩成离散 token 交给语言模型处理。AudioCraft 把这条「音频分词 → Transformer 预测 → 解码还原」的链路完整工程化,研究者拿到手即可推理,不用自己实现 EnCodec 和自回归解码。
AudioCraft 的核心资产是 MusicGen:一个基于 EnCodec tokenizer 的单阶段自回归 Transformer,输入文本描述(如 “upbeat electronic dance music“),输出 32kHz 单声道 WAV。与扩散模型不同,MusicGen 逐 token 预测下一个离散音频编码,天然支持条件控制(文本、旋律引导),且小模型(300M 参数)单张消费级 GPU 即可推理。AudioGen 采用同一架构,只是训练数据换成音效语料,解决”游戏/短视频需要海量音效”的痛点。框架同时提供训练脚本,支持在自定义数据集上继续预训练或微调。
与 Suno、Udio 这类闭源 SaaS 相比,AudioCraft 没有一键出歌的成品体验,需要自己写代码、调参、管理 GPU。但它的价值恰好在于“可自己掌控”——数据、模型、部署全链路开放,适合需要定制音色、接入自有流水线、或做学术研究的团队。它面向的是工程师与研究者,而不是终端用户。
安装与环境配置:4 步就绪
AudioCraft 官方推荐的环境是 Python 3.9 + PyTorch 2.1.0 + CUDA 12.1。核心依赖包括 torch、torchaudio、flashy(Meta 自研训练工具库)、dora(实验管理)。安装方式为源码安装,不推荐直接 pip install audiocraft(PyPI 上的包是构建产物,非官方推荐路径)。
步骤一:创建 Python 3.9 虚拟环境(conda 或 venv 均可)。步骤二:按 CUDA 版本安装 PyTorch 2.1.0,务必保证 torch 与 torchaudio 版本一致,否则解码器会报版本不匹配。步骤三:克隆 AudioCraft 仓库并执行 pip install -e .,该命令会自动安装 flashy、dora、gradio 等全部依赖。步骤四:验证导入是否成功——能正常 import audiocraft 且不报缺少包错误即就绪。
首次推理时会自动从 Hugging Face 下载模型权重(如 facebook/musicgen-small 约 1.9GB),国内网络建议先手动下载或配置 HF 镜像 HF_ENDPOINT=https://hf-mirror.com。安装阶段最常见的失败是 torch/torchaudio 版本错配,务必成套安装。
# 1. 创建环境(Python 3.9)conda create -n audiocraft python=3.9 -yconda activate audiocraft # 2. 安装 PyTorch 2.1.0(CUDA 12.1,按需调整 cu121)pip install torch==2.1.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121 # 3. 克隆并安装 AudioCraftgit clone https://github.com/facebookresearch/audiocraft.gitcd audiocraftpip install -e . # 4. 验证安装python -c "from audiocraft.models import MusicGen; print('AudioCraft OK')"
快速上手:5 分钟生成第一段音乐
AudioCraft 的最小可用流程只有三步:加载模型 → 设置生成参数 → 调用生成并保存。模型通过 MusicGen.get_pretrained() 加载,支持四个预训练规模——facebook/musicgen-small(300M)、musicgen-medium(1.5B)、musicgen-large(3.3B)、musicgen-melody(1.5B,支持旋律引导)。生成参数中最重要的两个是 duration(生成秒数)和 temperature(采样随机性,值越大越有创造性,官方推荐 1.0)。
以下代码在当前环境直接可运行(需 GPU,CPU 也可跑但极慢):
运行后当前目录会出现 output_0.wav、output_1.wav,即可直接用播放器试听。进阶技巧:model.generate() 返回的张量需 loudness 响度归一化处理后再写入磁盘,否则音量偏轻;生成 30 秒以上长音频时建议用 sample_rate 保持 32000 不变,避免重采样损失。AudioGen 的用法完全对称,只需把 MusicGen 换成 AudioGen,权重换成 facebook/audiogen-medium。
from audiocraft.models import MusicGenfrom audiocraft.data.audio import audio_write # 1. 加载模型(首次自动下载权重)model = MusicGen.get_pretrained('facebook/musicgen-small') # 2. 设置生成参数:时长 8 秒,采样温度 1.0model.set_generation_params(duration=8, temperature=1.0) # 3. 批量生成(可传多个描述,list 长度即 batch size)descriptions = [ "upbeat electronic dance music with heavy bass drop", "calm acoustic guitar melody for a rainy day",] # 生成并保存为 WAV(format='wav' 可换 'mp3'/'ogg')wavs = model.generate(descriptions)for idx, wav in enumerate(wavs): audio_write(f'output_{idx}', wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True)
核心能力详解:3 大支柱
支柱一:MusicGen 文本生成音乐。MusicGen 是 AudioCraft 的王牌模型,采用 EnCodec 将音频编码为离散 token 序列,再以自回归 Transformer 逐 token 生成。EnCodec 以 32kHz 采样率运行,每 4 秒音频被压缩为 50 个 token 帧,配合文本编码器(T5)将文本描述映射为条件向量。与同期扩散模型相比,MusicGen 的优势在于可控时长——通过 duration 参数可生成任意长度的连贯音频,且支持 batch 批量生成多段音乐。官方预训练数据来自 20,000 小时授权音乐,涵盖流行、摇滚、古典等风格。局限是单声道输出、无歌词能力,长音频(>60 秒)可能出现结构漂移。
支柱二:AudioGen 文本生成音效。AudioGen 与 MusicGen 架构相同,但训练数据是音效语料库(如 AudioSet 的子集),专攻环境音与拟音:雨声、人群嘈杂声、狗吠、汽车引擎轰鸣等。它的典型场景是为游戏、短视频、播客批量生产音效素材。AudioGen.get_pretrained('facebook/audiogen-medium') 即可加载,调用方式与 MusicGen 完全一致。由于音效结构比音乐简单,AudioGen 在相同参数量下对短音频(1-5 秒)的生成质量明显优于 MusicGen 处理音效场景的效果。
支柱三:自定义训练与微调。AudioCraft 附带完整的训练与微调管线:dora 管理实验配置,flashy 提供分布式训练封装。训练音乐模型用 dora run musicgen_train,微调用 musicgen_finetune,训练 AudioGen 用 audiogen_train。数据需整理为包含音频文件与文本描述的 JSON 格式,通过配置文件指定数据路径。对多数团队而言,直接在音乐数据集上微调 musicgen-small 比从头训练更实际——官方提供 facebook/musicgen-small 作为微调起点,单卡 A100 数天内即可完成小规模领域适应。
生产部署与监控:从上线到运维
部署方式一:Gradio 服务化。AudioCraft 自带基于 Gradio 的交互界面,一条命令即可对外提供 Web 服务:python -m audiocraft.serve.musicgen --model facebook/musicgen-medium --listen 0.0.0.0 --port 7860。--listen 参数允许局域网/公网访问,--model 指定加载的权重规模。该方案适合内部演示、小流量产品原型,但 Gradio 并发能力弱,不适合高并发线上场景。
部署方式二:自定义 API 服务。生产环境推荐用 FastAPI 或 BentoML 封装模型:应用启动时把模型加载进显存并常驻,通过 HTTP 接口接收文本描述与时长参数返回音频文件。关键优化点:① 用 torch.compile 或半精度(fp16)降低显存占用,MusicGen-large 在 fp16 下约需 12GB 显存;② 多用户并发时用队列串行化推理,避免 OOM;③ 模型预热——服务启动后先跑一次 1 秒生成,把 CUDA kernel 预编译,否则首个请求延迟会高 3-5 倍。
可观测性。生成类服务的核心监控指标:单次生成耗时(按秒统计)、batch 吞吐量(段/秒)、显存占用曲线、请求失败率。由于 AudioCraft 不提供内置 metrics 接口,需在 API 层自行打点(如 Prometheus 直方图记录 generate_duration_seconds)。另一个隐藏监控点是模型权重下载——首次拉取 musicgen-large 需 11GB+ 流量,务必在容器镜像构建阶段预先下载权重并挂载为本地缓存目录(~/.cache/torch/hub/checkpoints),避免服务启动时动态拉取导致超时。
<p class="para-label">避坑清单:</p>
<ul class="dash-list"><li>坑 1:torch 与 torchaudio 版本必须成套安装,混装会导致运行时 EnCodec 解码报「undefined symbol」类错误——推荐用官方命令整对安装。</li><li>坑 2:MusicGen 权重文件位于 Hugging Face,非大陆网络首次加载极易超时——先手动下载或用 HF_ENDPOINT=https://hf-mirror.com 环境变量加速。</li><li>坑 3:MusicGen.generate() 的入参是字符串列表,传单个字符串会被当作字符列表逐个生成——必须写成 ["描述文本"]。</li><li>坑 4:生成结果写盘前必须做响度归一化(strategy="loudness"),否则输出音量显著低于正常音频。</li><li>坑 5:多人并发调用未做串行化时,显存会瞬时翻倍导致 OOM——在服务层加线程锁或推理队列。</li><li>坑 6:MusicGen 只输出单声道,若业务需要立体声,需在后续用外部工具做 upmix,框架本身不支持。</li></ul>
| 维度 | AudioCraft | Stable Audio Open | Suno | Riffusion |
|---|---|---|---|---|
| 定位 | 研究/工程级音频生成框架 | 开源文生音乐模型 | 闭源音乐生成 SaaS | 开源音频生成模型 |
| 技术路线 | EnCodec + 自回归 Transformer | 潜在扩散模型(latent diffusion) | 自研 Transformer(未公开) | 微调 Stable Diffusion 图像生成 |
| 输出能力 | MusicGen 音乐 + AudioGen 音效,单声道 | 44.1kHz 立体声音乐 | 完整歌曲含人声 | 音乐片段与音效 |
| 可控性 | 文本 + 旋律引导 + 可微调 | 文本 + 起始音频条件 | 文本 + 风格与歌词 | 文本 + 起始音频 |
| 部署成本 | 自托管,small 模型消费级 GPU 可跑 | 自托管,开源权重可商用 | 无自托管,按量付费 | 自托管,Apache 2.0 可商用 |
| 训练与定制 | 支持自定义数据集微调 | 支持微调(生态较新) | 不支持 | 支持微调 |
| License | MIT(代码)+ Meta 社区许可(权重) | 开源模型许可 | 商业闭源 | Apache 2.0 |
| 适合谁 | 算法工程师、需要定制能力的团队 | 追求立体声与商用的应用团队 | 音乐创作终端用户 | 音效/拟音批量生成场景 |
选型建议:需要歌词、成品级歌曲且不在意数据出域,用 Suno;需要 44.1kHz 立体声且接受扩散模型的生成特性,用 Stable Audio Open;需要环境音效生成与拟音,优先看 Riffusion(Apache 许可最宽松);需要深度定制(微调、接入现有流水线、控制生成时长)且能接受单声道,AudioCraft 是唯一同时满足「开源权重 + 训练脚本 + 框架化工程」的选择。
版本迭代
AudioCraft 于 2023 年 6 月随 MusicGen 论文同步开源,此后一年内经历了 Melody 模型、稳定版强化、参数量与兼容性升级三个主要阶段。v1.2 起加入旋律引导能力,v1.3 修复了采样与生成长音频的稳定性问题。截至当前,官方主要维护分支保持稳定,未再发布大版本。
| 版本 | 时间 | 变化 | 提升 |
|---|---|---|---|
| v1.0.0 | 2023-06 | MusicGen 首次开源 | 发布 small/medium/large 三档模型与完整推理、训练代码 |
| v1.1.0 | 2023-07 | 生成质量与长音频优化 | 修复长音频生成漂移,改进采样稳定性 |
| v1.2.0 | 2023-09 | 新增 musicgen-melody 模型 | 支持旋律引导生成,新增 stereo(双通道)生成实验支持 |
| v1.3.0 | 2024-01 | 修复与兼容性更新 | 修复 AudioGen 采样问题,适配新版依赖 |
| 基准 | v1.0(MusicGen-small) | v1.2(MusicGen-medium) | v1.3(MusicGen-large) | |
|---|---|---|---|---|
| 参数量 | 300M | 1.5B | 3.3B | 官方公开的模型结构参数 |
| 显存占用(推理 fp16) | 约 4GB | 约 8GB | 约 12GB | 官方文档标注的实测参考值 |
| 文本控制力(主观评测) | 基准 | 明显优于 small | 最优 | 官方论文中人类评估的定性结论 |
| 应用定位 | 原型验证、低配 GPU | 质量与成本均衡 | 高质量音乐生成 | 按部署资源选档 |
AudioCraft 的版本演进主线是「质量 → 可控性 → 稳定性」,v1.2 的 melody 模型是能力分水岭——支持哼唱/旋律片段作为额外条件,使商业化定制(如围绕指定旋律编曲)成为可能。选型建议:新项目直接使用 v1.3.0;对音质要求高选 musicgen-large,对显存敏感选 musicgen-small;AudioGen 只有 medium 一个公共权重,按默认使用即可。
AI 应用场景
音乐创作辅助与配乐生成
阶段:文生音乐生成 / 音乐风格控制
解决的问题:短视频、播客、课程视频需要大量背景音乐,传统做法是购买版权曲库或请作曲家,成本高且匹配度低。AudioCraft 通过文本描述直接生成对应情绪与风格的配乐(“悲伤钢琴独奏”、“律动电子舞曲”),分钟级产出,且可在旋律引导模式下为指定旋律自动编曲。
具体案例:某 MCN 机构用 musicgen-medium 搭建批量配乐流水线,单卡 A100 每分钟可生成约 8 段 30 秒配乐,素材成本从每首数百元版权费降至 GPU 电费量级,前期测试 300 条视频的配乐匹配率提升至约 80%。
游戏与视频音效批量生产
阶段:文本到音效生成 / 素材库自动化
解决的问题:游戏场景需要大量环境音效(雨声、脚步、机械运转、人群噪声),人工录制或购买素材库耗时且覆盖不全。AudioGen 只需输入文本描述即可生成 1-5 秒的环境音,一个上千条的音效库可在数小时内批量产出,成本仅为人工采样的零头。
具体案例:某独立游戏工作室用 AudioGen 生成 400 条野外环境音效,覆盖昼夜、天气、地形三个维度的组合需求,素材生产周期从 3 个月缩短到 1 周,且每条音效可基于同一描述多次采样获得变体。
音乐研究:可控生成与旋律控制实验
阶段:模型微调 / 条件生成实验
解决的问题:学术与工业研究需要在一个可控框架内验证音乐生成算法(如新采样策略、条件控制机制)。AudioCraft 提供完整训练代码、评测脚本与模型权重,可直接复现论文实验,并在自有音乐数据集上微调验证新想法。
具体案例:某高校实验室基于 musicgen-melody 微调出「指定乐曲风格改编」模型,在 2,000 首古典钢琴曲上训练后,能将用户哼唱的旋律片段改编为管弦乐版本,生成旋律与原始哼唱的相似度通过客观指标显著优于未微调基线,训练耗时约 5 天(单张 A100)。
常见误区
误区听说 MusicGen 能文生音乐,以为输入一句歌词就能输出带人声的完整歌曲,跟 Suno 体验相同。
正解MusicGen 是纯器乐生成模型,不生成人声、不接收歌词输入;它的输出是 32kHz 单声道音乐片段,通过文本描述控制风格、情绪与配器。要完整歌曲需接外部工具(人声合成、混音),AudioCraft 只负责伴奏/器乐层面。Suno 是端到端的歌曲生成服务,产品定位完全不同。
为何常见:MusicGen 与 Suno 都做「文本到音乐」,「音乐」一词在营销传播中被泛化,公众默认理解为包含人声的完整歌曲,官方 demo 中也未刻意强调纯器乐限制。
误区GitHub 仓库标了 MIT 协议,以为模型权重也能随便商用、任意分发。
正解MIT 协议仅覆盖 AudioCraft 的代码(实现逻辑与训练脚本);预训练模型权重如 musicgen-* 受 Meta 社区许可(Meta Community License)约束,要求月活用户超 7 亿的企业需另行获取授权。商用前必须逐条核对权重页面的许可条款,不能以代码协议代替权重协议。
为何常见:GitHub 主页醒目的开源标识让人形成「全开源」直觉,权重与代码的「双轨许可」机制在开源音频领域不常见,容易被忽略。
误区生成出来的音乐嘈杂、结构混乱、风格不符合描述,判断 AudioCraft 能力不行,放弃使用。
正解生成质量受多重因素影响:模型规模(small 与 large 质量差距明显)、采样温度(temperature 过高导致噪声,官方建议 1.0)、音频时长(60 秒以上结构漂移)、以及文本描述的准确度(“epic orchestral battle music“ 比 ”music” 效果好得多)。先用 large 模型 + 官方示例描述复现 baseline,再逐步加压,才能准确定位是模型还是参数问题。
为何常见:AIGC 工具的初体验往往用默认参数、最短路径跑一次,小模型 + 模糊描述 + 高温度同时叠加,结果自然很差,这种「一次定性」的评估方式在生成模型中尤其失真。
误区AudioCraft 的核心是 MusicGen,以为框架整体只解决音乐生成问题,做音效用不到它。
正解AudioCraft 是双模型框架,AudioGen 专攻环境音与拟音效果(雨、雷、人群、机械声),与 MusicGen 语法完全一致,只是换一个 get_pretrained('facebook/audiogen-medium') 调用。游戏音效、影视拟音、ASMR 内容等场景下 AudioGen 是更合适的组件。
为何常见:框架命名、文档首页、社区讨论都集中在 MusicGen 上,AudioGen 的曝光度低,新用户容易形成「框架=MusicGen」的认知偏差。
误区看到模型参数量 3.3B、训练脚本要求多卡,以为推理也必须大型服务器集群。
正解musicgen-small(300M)在 8GB 显存的消费级 GPU(如 RTX 4060 Ti)上即可流畅推理,生成 8 秒音频约需 10 秒左右;中型模型(1.5B)在 16GB 显存(如 RTX 4090、A10)上即可胜任。仅 large 模型和大 batch 推理才需要 24GB+ 显存。训练与微调才需要多卡 A100 级别的配置。
为何常见:官方 README 的训练部分提到多卡 DDP 配置,且模型参数以亿计,让人误判推理门槛,实际推理路径(get_pretrained + generate)的资源需求远低于训练。
面试题
Q1. MusicGen 生成音频的采样率是多少?
- A.16kHz
- B.32kHz← 正确答案
- C.44.1kHz
- D.48kHz
答案:B。MusicGen 基于 EnCodec 编码器,官方设定采样率为 32kHz,输出音频的 model.sample_rate 常量为 32000。44.1kHz 是 CD 标准采样率,常见于 Stable Audio 等扩散式模型;16kHz 多用于语音识别任务;48kHz 是视频制作常见采样率,均非 MusicGen 输出规格。
Q2. 关于 AudioCraft 中 model.generate() 的输入,以下说法正确的有?
- A.输入必须是一个字符串列表,每个元素是一条文本描述← 正确答案
- B.可以传入单个字符串,如
model.generate("jazz music") - C.列表长度决定 batch 大小,多个描述可并行生成← 正确答案
- D.输入需是音频特征张量而非文本
答案:AC。generate() 的入参是 list[str],每个字符串是一条描述,列表长度即 batch size,多个描述可并行生成。选项 B 错误——传入单个字符串会被当作字符列表逐字符处理,需写成 ["jazz music"]。选项 D 错误——生成入口是文本,音频张量是输出而非输入。
Q3. 首次运行 MusicGen.get_pretrained('facebook/musicgen-small') 时会发生什么?
- A.立即从本地加载已安装的模型文件
- B.自动从 Hugging Face 下载模型权重并缓存到本地← 正确答案
- C.需要先在官网提交申请才能使用
- D.会编译 CUDA kernel,不下载任何文件
答案:B。get_pretrained 会以 Hugging Face 的 facebook/musicgen-small 为入口自动下载权重,默认缓存到 ~/.cache/torch/hub/checkpoints,后续运行直接走本地缓存。此过程需要网络可达 Hugging Face,国内网络环境需配置镜像。不需要申请授权(权重为公开模型),编译 CUDA kernel 发生在首次推理而非下载阶段。
Q4. AudioCraft 框架的许可证情况,以下描述正确的是?
- A.代码与模型权重均为 MIT 协议,可随意商用
- B.代码为 MIT 协议,模型权重受 Meta 社区许可约束← 正确答案
- C.代码与模型权重均为 Apache 2.0 协议
- D.代码受 Meta 社区许可,模型权重为 MIT
答案:B。AudioCraft 是「双轨许可」——GitHub 仓库代码采用 MIT 协议,可自由修改和商用;但 facebook/musicgen-* 系列模型权重采用 Meta 社区许可(Meta Community License),其限制条款(如月活 7 亿以上企业需单独授权)独立于代码协议。商用前必须分别核对两类协议的约束条件,不可混为一谈。
Q5. 在 8GB 显存显卡上,最合理的 AudioCraft 推理配置是?
- A.加载 musicgen-large(3.3B)保证生成质量
- B.加载 musicgen-medium(1.5B)并开启 fp16
- C.加载 musicgen-small(300M)并开启 fp16← 正确答案
- D.加载 audio_gen 模型替代 MusicGen
答案:C。musicgen-small 在 fp16 下约需 4GB 显存,在 8GB 显卡上有充足余量且推理速度快。musicgen-medium 在 fp16 下约需 8GB,恰好顶到上限,实际推理易因临时张量导致 OOM。musicgen-large 需要 12GB+,8GB 显卡无法运行。AudioGen 与 MusicGen 定位不同,不能作为同场景替代。
Q6. MusicGen 相比扩散式音频模型(如 Stable Audio)的主要优势有哪些?
- A.生成时长可通过参数显式控制,支持长音频连贯生成← 正确答案
- B.支持批量生成多个不同描述的音频← 正确答案
- C.支持将哼唱/旋律片段作为生成条件(melody 模型)← 正确答案
- D.输出 44.1kHz 立体声音频
答案:ABC。MusicGen 的自回归架构天然支持显式时长控制(duration 参数)和批量生成(batch),musicgen-melody 模型支持旋律引导,这些都是官方明确支持的差异化能力。选项 D 错误——MusicGen 输出固定为 32kHz 单声道,立体声并非其能力范围,这正是扩散式模型(如 Stable Audio)的优势。
Q7. 生成结果写盘时官方推荐的音频处理策略是?
- A.直接
torch.save张量到磁盘 - B.用
strategy="loudness"做响度归一化后写入← 正确答案 - C.先转成 numpy 数组再写 WAV
- D.用 pydub 拼接多段音频
答案:B。官方推荐的 audio_write 接口中,strategy="loudness" 会应用响度归一化,解决生成音频整体音量偏轻的问题,loudness_compressor=True 进一步做响度压缩。直接 torch.save 是保存张量而非音频文件;numpy 转换可行但缺失归一化处理;pydub 属于后期编辑工具,并非写盘的必要步骤。
Q8. AudioGen 与 MusicGen 在 AudioCraft 中的关系是?
- A.AudioGen 是 MusicGen 的音乐风格特效插件
- B.两者架构相同,训练数据不同,AudioGen 专攻环境音效← 正确答案
- C.AudioGen 是 MusicGen 的音频质量增强模型
- D.AudioGen 用于训练数据预处理,不参与推理
答案:B。AudioGen 与 MusicGen 共享 EnCodec + 自回归 Transformer 架构,关键差异在训练语料——AudioGen 使用音效数据集(AudioSet 等),输出环境音与拟音效果;MusicGen 使用音乐数据集输出音乐。两者调用 API 完全一致,只是预训练权重不同。AudioGen 是独立生成模型,不是插件、增强器或预处理工具。
Q9. 生产环境中部署 AudioCraft 时,下面的做法合理的有?
- A.服务启动时预加载模型权重并常驻显存← 正确答案
- B.用队列串行化推理请求避免 OOM← 正确答案
- C.容器构建阶段预先下载权重并挂载为缓存目录← 正确答案
- D.每次请求都重新执行
get_pretrained以保证模型最新
答案:ABC。模型权重数百 MB 到数 GB,生产环境应在进程启动时加载并常驻,避免反复加载;多请求并发需串行化(线程锁/队列)防显存溢出;权重应在镜像构建阶段预先下载,运行时直接从本地缓存加载。选项 D 明显错误——每次请求重新加载模型会导致灾难性延迟和显存抖动。
Q10. AudioCraft 推荐的安装方式是什么?
- A.
pip install audiocraft直接从 PyPI 安装 - B.克隆 GitHub 仓库后
pip install -e .源码安装← 正确答案 - C.
conda install -c pytorch audiocraft - D.下载官方 Docker 镜像即可运行
答案:B。官方 README 明确推荐克隆仓库后执行 pip install -e . 的可编辑模式安装,这会同时安装 flashy、dora、gradio 等配套依赖。虽然 PyPI 上存在 audiocraft 包,但并非官方推荐安装路径;conda 渠道无官方包;Docker 镜像非官方发布形式(需自己构建)。按官方路径安装才能保证依赖版本一致。