SpecVQGAN 项目介绍
项目概述
SpecVQGAN 项目是一项创新的研究,旨在通过视觉引导的方式生成声音。其核心思想是通过对训练数据集进行“压缩”处理,即将音频的训练样本缩减为一组代表性向量,称为“码本”。这些码本向量可以通过采样生成新的声音,前提是提供一组视觉提示来作为初始条件。
SpecVQGAN 的精髓在于使用了一种称为 Spectrogram VQGAN 的技术,该技术从声谱图(音频的视觉表示)中训练出码本。随后,项目团队训练了一种变体的 GPT-2 模型,这是一种变压器模型,它能够逐步采样码本条目,生成符合视觉特征的音频。
这种方法能够帮助训练出一个长时间段、相关性高且保真度高的声音生成模型,并支持众多的数据类别。
环境准备
在实验过程中,使用的是包含 Linux 系统的服务器,并在其中设置了 conda 虚拟环境。该项目依赖于 PyTorch 1.8 和 CUDA 11。
要开始项目,可以通过以下命令克隆代码库:
git clone https://github.com/v-iashin/SpecVQGAN.git
接着,可以使用 conda 或 docker 安装所需环境。
Conda 安装
执行下面的命令来创建 conda 环境:
conda env create -f conda_env.yml
测试环境:
conda activate specvqgan
python -c "import torch; print(torch.cuda.is_available())"
# 应该返回 True 表示成功配置 CUDA
数据准备
项目中使用了 VAS 和 VGGSound 数据集。VAS 数据集可以直接从 RegNet 库中提供的链接下载,而 VGGSound 需要从 YouTube 上获取视频。
下载数据集特征的脚本会自动下载全部特征,检验 MD5 校验和,解压并清理临时文件。具体脚本执行类似以下命令:
cd ./data
bash ./download_vas_features.sh
bash ./download_vggsound_features.sh
预训练模型
SpecVQGAN 项目提供了几个预训练模型,可用于生成音频或进行进一步研究。其训练步骤分为两个阶段:首先训练声谱图码本,然后训练基于 Transformer 的模型从该码本中采样音频。
- 码本(Codebook):包含已在 VGGSound 和 VAS 数据集上训练好的模型,提供了不同尺寸的模型文件以供下载。
- 变压器(Transformer):提供了各种条件(例如无特征、单个特征)下训练好的模型。每种条件设置下的预训练模型都有具体的性能指标(例如生成音频的质量和生成时间)。
训练过程
-
训练声谱图码本:使用 VAS 或 VGGSound 数据集进行训练。可以根据可用的硬件选择适合的批处理大小。
-
训练变压器模型:在给定一组视觉特征的情况下,使用训练好的声谱图码本作为基础进行训练。
评估和采样工具
项目提供了评估和采样工具,用于生成音频样本并评估生成质量。可在多 GPU 上并行处理进行高效评估。使用 Streamlit 库可以启动交互式采样工具,在浏览器中显示可视化的生成结果。
通过这种可控的视觉引导生成声音的方法,SpecVQGAN 项目展示了在跨模态声音合成领域的巨大潜力。