30 秒看懂
在这期 2023 年 8 月的教程中,Matthew Berman 安装 Meta 的 AudioCraft,使用 MusicGen 生成音乐,并试用社区制作的 AudioGen 音效界面。命令反映的是演示时的版本;代码和模型权重采用不同许可,AudioGen 拉取请求尚未合并。
- 1配置环境历史 Mac 教程创建 Python 3.9 Conda 环境、安装 FFmpeg 并克隆代码库。
- 2启动 MusicGenBerman 启动 Gradio 演示、输入音乐提示,并探索模型、旋律和采样控制。
- 3AudioGen 社区界面遇到笔记本运行问题后,他切换到社区拉取请求并生成狗叫声。
- 4许可区别项目代码采用 MIT 许可,而模型权重采用 CC BY-NC 4.0 发布。
要点建议
- 演示中的 Mac 安装以 Conda 环境、FFmpeg 和 AudioCraft 代码库为基础。
- MusicGen 接受文本提示,使用 melody 模型时还可以选择输入音频旋律作为条件。
- 下载模型和生成音频可能需要时间,尤其是在 CPU 上;选项和时长限制取决于版本。
- AudioGen 根据文本生成声音;演示中的 Gradio 界面来自尚未合并的社区拉取请求。
- AudioCraft 代码采用 MIT 许可,而模型权重采用 CC BY-NC 4.0。
- 即使演示同时提供本地地址,Gradio 的 `--share` 选项也会请求一个可分享链接。
按章节阅读整理后的全文
准备 Mac 环境
Berman 介绍 AudioCraft 并创建 Conda 环境,然后安装 FFmpeg、克隆代码库。
AudioCraft 是 Meta 用于生成音乐和音效的项目。我将在 Mac 上演示使用 MusicGen 和 AudioGen 的本地工作流程。本教程录制于 2023 年 8 月,照着操作前应对照当前 AudioCraft 代码库检查命令和依赖。

首先,我用 `conda create -n ac python=3.9` 和 `conda activate ac` 创建并激活 Conda 环境。激活成功后,终端会显示环境名称。我使用的是 macOS;我预计 Windows 上的流程类似,但视频没有演示或验证 Windows 安装。
AudioCraft 还需要 FFmpeg。在我的 Mac 上,我使用 `brew install ffmpeg`;Homebrew 显示它已经安装。当前项目文档也介绍了通过 Conda 安装 FFmpeg,以及特定的 Python 和 PyTorch 依赖。
我从 GitHub 复制代码库地址,运行 `git clone https://github.com/facebookresearch/audiocraft.git`,再用 `cd audiocraft` 进入目录。在 2023 年的演示中,我用 `python -m pip install -r requirements.txt` 安装依赖。安装方法和依赖版本可能变化,应查看项目 README 了解当前流程。

用 MusicGen 生成音乐
他启动 Gradio 演示并输入音乐提示,解释模型选择、可选旋律条件和生成设置。
为了启动 MusicGen Gradio 演示,我运行 `python -m demos.musicgen_app --share`,然后打开终端打印的本地地址。`--share` 选项还会请求可分享的 Gradio 链接,因此不应假设每一种访问方式都只限本地或保持私密。

MusicGen 界面提供文本框填写音乐描述,也可以选择输入音频,作为旋律条件。我输入“90s hip hop West Coast”并提交。首次运行需要下载模型权重,因此启动时间会比我的机器更长;我的模型已经下载完成。
生成需要一段时间;我认为自己运行时使用的是 CPU。界面允许我选择 melody 模型或 small、medium、large 版本,调整时长,并尝试 top-k、top-p 和 temperature。可选音频输入用于为支持旋律的模型提供条件,并不代表任何模型都能进行任意音频到音频的转换。
我将示例保持为 10 秒并试听结果。我建议尝试各项控制,并说演示中的界面允许最长两分钟。可用限制和延长生成的行为取决于版本与模型;原版 MusicGen 代码使用 30 秒模型窗口,并通过扩展机制生成更长的输出。
用 AudioGen 生成音效
他切换到提供 AudioGen 界面的社区拉取请求,生成狗叫示例并讨论本地试用。
生成音效时,我转向 AudioGen。我在 Mac 上使用其代码和 Jupyter 笔记本时遇到困难,于是采用 cocktailpeanut 在 AudioCraft 第 185 号拉取请求中提出的社区 Gradio 界面。我的演示运行成功,但这不保证相同配置能在每台电脑上工作。

录制时这个拉取请求尚未合并,因此我使用 `git fetch origin pull/185/head:PR185` 获取,再用 `git checkout PR185` 切换。我当时预计它可能随后合并,但项目页面仍将此提议列为开放状态;不应假设它已经进入主分支。

在该分支上,我运行 `python -m demos.audiogen_app --share`,打开本地地址,输入“dog barking”。首次使用需要下载 AudioGen 模型;我的模型已经缓存。生成的声音像一只小狗,我觉得效果很逼真。

这个演示可以免费在本地试用,但许可需要区分:AudioCraft 代码库的代码采用 MIT 许可,发布的模型权重则采用 CC BY-NC 4.0。使用权重前应检查适用条款,尤其是商业用途。我鼓励观众尝试不同的音频设置并比较结果。
同频道的其他文章
34:21EN → 简体中文
0:26EN → 简体中文
0:36EN → 简体中文
0:21EN → 简体中文
25:50EN → 简体中文
32:20EN → 简体中文