ZFTurbo/Music-Source-Separation-Training

Repository for training models for music source separation.

音乐源分离 – 统一训练代码 (MSST)

是什么 – 一个用于训练、评估和运行多种深度学习模型推理的 Python 库和脚本集合,这些模型可将音乐轨道分离为各个声源(人声、鼓、贝斯、其他)。该仓库包含可直接使用的模型实现、配置文件、数据处理工具以及一个小型 GUI,旨在使实验快速且可复现。

为何重要 – 音乐源分离是音频信号处理的核心任务,也是生成式和判别式音频模型的常用基准。通过提供一个支持数十种前沿架构(MDX23C、Demucs-HT、基于 RoFormer 的模型、Swin-Upernet、SCNet、Conformer 等)的单一、可扩展的训练框架,该项目使研究人员和爱好者无需重写样板代码即可比较各种想法。

核心组件

  • 模型库 – 通过 --model_type 可选择十余种架构。许多模型是现有开源项目(如 Lucidrains 的 RoFormer、Segmentation-Models-Pytorch 库、原始 Demucs-HT 代码)的轻量封装。封装统一了训练循环和检查点处理。
  • 配置驱动训练 – configs/ 中的 YAML 文件描述数据集路径、超参数、批量大小、学习率调度等。提供了 MUSDB18 基准的示例配置。
  • 训练脚本 – train.py 用于单 GPU,train_ddp.py 用于多 GPU(PyTorch 分布式数据并行)。两者均支持通过 docs/LoRA.md 指南进行 LoRA 微调。
  • 推理工具 – inference.py 加载检查点并处理一个 wav 文件夹,将分离出的音轨写入输出目录。
  • 集成 – ensemble.py 可组合多个模型的预测以提升 SDR 分数。
  • GUI – 为偏好点按操作流程的用户提供的轻量级 wxPython 界面(gui-wx.py)。
  • 打包 – 可通过 pip install msst 安装,提供 Python API、CLI 和 docs/ 中的文档。

典型工作流程

  1. 选择模型 – 例如 mel_band_roformer。
  2. 选择配置 – 例如 configs/config_mel_band_roformer_vocals.yaml(自定义路径、批量大小等)。
  3. 启动训练 –
    python train.py \
        --model_type mel_band_roformer \
        --config_path configs/config_mel_band_roformer_vocals.yaml \
        --results_path results/ \
        --data_path datasets/train1 datasets/train2 \
        --valid_path datasets/musdb18hq/test \
        --num_workers 4 \
        --device_ids 0
    
  4. 运行推理 –
    python inference.py \
        --model_type mel_band_roformer \
        --config_path configs/config_mel_band_roformer_vocals.yaml \
        --start_check_point results/last.ckpt \
        --input_folder input/wavs/ \
        --store_dir separation_results/
    
  5. (可选)使用 ensemble.py 对多个检查点进行集成以提升分离质量。

硬件说明 – 默认批量大小针对单个 NVIDIA A6000(48 GB)设计。VRAM 较少的用户应降低 YAML 配置中的 training.batch_size,或增加 training.gradient_accumulation_steps。

预训练模型 – 仓库维护了一份公开发布的检查点列表(docs/pretrained_models.md),涵盖支持的多种架构,适用于快速推理或微调的热启动。

社区与引用 – 该项目由 MVSep.com 团队维护,并基于 SDX23 挑战的 KUIELab 代码。若使用此代码发表研究成果,请引用 README 中链接的基准论文。


总结 – MSST 是一个实用且文档完善的工具箱,抽象了音乐源分离研究中的重复性工作,让您能专注于模型构思、数据增强或大规模实验。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目