ComMU: 融合音乐生成数据集指南
项目介绍
ComMU(Combinatorial Music Generation Dataset)是专为组合性音乐生成设计的数据集,发布于NeurIPS'22。此项目包括了一个由专业作曲家编写的11,144个MIDI样本库,并提供了用于训练和生成音乐的代码。这些音乐片段涵盖4到16小节,分类为12种不同的元数据标签,如BPM、风格、调式、乐器轨等,旨在支持自动回归的音乐生成模型研究。
项目快速启动
环境准备
确保你的Python版本为3.8.12或以上,推荐使用虚拟环境管理Python依赖。
-
创建并激活虚拟环境
python3 -m venv env source env/bin/activate
-
克隆项目仓库
git clone https://github.com/POZAlabs/ComMU-code.git
-
安装依赖
pip install -r ComMU-code/requirements.txt
-
下载数据 下载数据集的CSV文件以及压缩的MIDI文件,并解压。
# 假设数据放在了/dataset下 cd ComMU-code wget [CSV文件链接] -P ./dataset tar -xvf ./dataset/commu_midi.tar -C ./dataset/
数据预处理与训练
-
数据预处理
python3 preprocess.py --root_dir ./dataset/commu_midi --csv_path ./dataset/commu_meta.csv
-
开始训练 使用分布式训练(以四个GPU节点为例)
python3 -m torch.distributed.launch --nproc_per_node=4 train.py --data_dir ./dataset/commu_midi/output_npy --work_dir [工作目录路径]
应用案例和最佳实践
最佳实践包括利用ComMU数据集训练自定义音乐生成模型,通过调整元数据参数来生成特定风格或情感的音乐片段。例如,为了生成一首节奏为4/4拍,主要旋律由钢琴演奏的新时代风格音乐,你可以定制命令:
python3 generate.py \
--checkpoint_dir [工作目录中的模型检查点路径] \
--output_dir [输出保存路径] \
--bpm 70 \
--audio_key aminor \
--time_signature '4/4' \
--pitch_range 'mid_high' \
--num_measures 8 \
--inst 'acoustic_piano' \
--genre 'newage' \
--min_velocity 60 \
--max_velocity 80 \
--track_role 'main_melody' \
--rhythm 'standard' \
--chord_progression 'Am-Am-Am-Am...E-E-E-E-Am-Am-Am-Am' \
--num_generate 3
典型生态项目
虽然该项目本身作为音乐生成领域的基础资源,其“典型生态项目”更多体现在研究人员和开发者基于ComMU数据集构建的应用和服务中。由于具体外部项目不断变化,建议探索相关社区、GitHub上的Forks以及论文引用,了解如何他人已将ComMU应用于生成艺术作品、教育工具或者智能音乐创作软件中。遗憾的是,直接列举具体生态项目在此上下文中不可行,但研究者和开发者可从GitHub讨论、论坛和学术出版物中找到灵感和实例。
本文档提供了一个快速入门指南,帮助您开始使用ComMU数据集进行音乐生成研究与实践。深入探索每个步骤的细节,并结合实际使用中的创新,可以发掘出更广泛的应用场景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考