AudioLCM:使用潜在一致性模型进行文本到音频生成
Huadai Liu, Rongjie Huang, Yang Liu, Hengyuan Cao, Jialei Wang, Xize Cheng, Siqi Zheng, Zhou Zhao
[AudioLCM (ACM-MM'24)] 的 PyTorch 实现:一种高效且高质量的文本到音频生成潜在一致性模型。
我们在本仓库中开源了我们的实现和预训练模型。
访问我们的演示页面获取音频样本。
新闻
- 2024年7月:[AudioLCM] 被 ACM-MM'24 接收。
- 2024年6月:Make-An-Audio 3 在 GitHub 和 HuggingFace 上发布。
- 2024年5月:[AudioLCM] 在 GitHub 和 HuggingFace 上发布。
快速开始
我们提供了一个示例,展示如何使用 AudioLCM 快速生成高保真样本。
要在自己的数据集上尝试,只需在配备 NVIDIA GPU + CUDA cuDNN 的本地机器上克隆此仓库,并按照以下说明操作。
支持的数据集和预训练模型
从 Huggingface 下载权重文件。
下载:
audiolcm.ckpt 并将其放入 ./ckpts
BigVGAN 声码器并将其放入 ./vocoder/logs/bigvnat16k93.5w
t5-v1_1-large 并将其放入 ./ldm/modules/encoders/CLAP
bert-base-uncased 并将其放入 ./ldm/modules/encoders/CLAP
CLAP_weights_2022.pth 并将其放入 ./wav_evaluation/useful_ckpts/CLAP
依赖项
请参阅 requirement.txt
中的要求:
使用预训练模型进行推理
python scripts/txt2audio_for_lcm.py --ddim_steps 2 -b configs/audiolcm.yaml --sample_rate 16000 --vocoder-ckpt vocoder/logs/bigvnat16k93.5w --outdir results --test-dataset audiocaps -r ckpt/audiolcm.ckpt
数据集准备
- 由于版权问题,我们无法提供数据集下载链接。我们提供了生成梅尔频谱图的处理代码。
- 在训练之前,我们需要将数据集信息构建成一个 tsv 文件,其中包括名称(每个音频的 id)、数据集(音频所属的数据集)、audio_path(.wav 文件的路径)、caption(音频的说明)、mel_path(每个音频的处理后的梅尔频谱图文件路径)。
- 我们提供了 AudioCaps 测试集的 tsv 文件:./audiocaps_test_16000_struct.tsv 作为示例。
生成音频的梅尔频谱图文件
假设你已经有了一个 tsv 文件,将每个说明链接到其音频路径,这意味着 tsv_file 中有 "name"、"audio_path"、"dataset" 和 "caption" 列。 要获取音频的梅尔频谱图,运行以下命令,它将在 ./processed 中保存梅尔频谱图:
python ldm/data/preprocess/mel_spec.py --tsv_path tmp.tsv
将持续时间添加到 tsv 文件中
python ldm/data/preprocess/add_duration.py
训练变分自编码器
假设我们已经处理了几个数据集,并将 .tsv 文件保存在 data/*.tsv 中。在配置文件中将 data.params.spec_dir_path 替换为 data(包含 tsv 文件的目录)。然后我们可以使用以下命令训练 VAE。如果你的机器没有 8 个 GPU,可以将 --gpus 0,1,...,gpu_nums 替换为你的 GPU 数量。
python main.py --base configs/train/vae.yaml -t --gpus 0,1,2,3,4,5,6,7
训练结果将保存在 ./logs/ 中。
训练潜在扩散模型
训练 VAE 后,在配置文件中将 model.params.first_stage_config.params.ckpt_path 替换为你训练的 VAE 检查点路径。 运行以下命令来训练扩散模型:
python main.py --base configs/autoencoder1d.yaml -t --gpus 0,1,2,3,4,5,6,7
训练结果将保存在 ./logs/ 中。
评估
请参考 Make-An-Audio
致谢
此实现使用了以下 Github 仓库的部分代码: Make-An-Audio CLAP, Stable Diffusion, 如我们的代码中所述。
引用
如果你在研究中发现这段代码有用,请考虑引用:
@misc{liu2024audiolcm,
title={AudioLCM: Text-to-Audio Generation with Latent Consistency Models},
author={Huadai Liu and Rongjie Huang and Yang Liu and Hengyuan Cao and Jialei Wang and Xize Cheng and Siqi Zheng and Zhou Zhao},
year={2024},
eprint={2406.00356},
archivePrefix={arXiv},
primaryClass={eess.AS}
}
免责声明
禁止任何组织或个人在未经本人同意的情况下,使用本文中提到的任何技术生成他人的语音,包括但不限于政府领导人、政治人物和名人。如果您不遵守此项,可能会违反版权法。