遇见数据集

Archit00/bbench-dep-djtransgan

收藏
Hugging Face2026-05-27 更新2026-05-31 收录
官方服务:

资源简介:

# DJtransGAN: Automatic DJ Transitions with Differentiable Audio Effects and Generative Adversarial Networks > This repository contains the code for "[Automatic DJ Transitions with Differentiable Audio Effects and Generative Adversarial Networks](https://arxiv.org/abs/2110.06525)" > *2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP 2022)* > Bo-Yu Chen, Wei-Han Hsu, Wei-Hsiang Liao, Marco A. Martínez-Ramírez, Yuki Mitsufuji, Yi-Hsuan Yang ## Overview The reop is nearly complete; we have already open source all the code you need for not only use (provide a pre-trained model) but also train the DJtransGAN. We will keep improving the document and add more visualization soon. Currently, the repo contains 3/4 of the DJtransGAN code include 1. Differentiable DJ mixer includes differentiable fader and differentiable equalizer in the time-frequency domain 2. DJtransGAN architecture and its training code 3. DJtransGAN pre-trained model and its inference code The remaining 1/4 of DJtransGANs' is implemented in another repo [DJtransGAN-dg-pipeline](https://github.com/ChenPaulYu/DJtransGAN-dg-pipeline) to make the codebase clean. Moreover, These two repos are totally independent and can be executed individually, and we will detail the process below. Furthermore, if you want to hear more audio example, please check our demo page [here](https://paulyuchen.com/djtransgan-icassp2022/). ## Dataset We collected two datasets to train our proposed approaches: DJ mixset from [Livetracklist](https://www.livetracklist.com/) and individual EDM tracks from [MTG-Jamendo-Dataset](https://github.com/MTG/mtg-jamendo-dataset). To be more specific, We in-house collect long DJ mixsets from Livetracklist and only consider the mixset with **mix** tag to ensure the quality of the mixset. Furthermore, we select the individual EDM track from MTG-Jamendo-Dataset, which means the track with an **EDM** tag in the total collection. The detailed information about using these two datasets is described in Section 3.1; please check it if you are interested in. Unfortunately, we can not provide our training dataset for reproducing the results because of license issues. However, we release the training code and pre-trained model for you to try. Contact me or open the pull request if you have any other issues. ## Setup ### Install ``` pip install -r requirements.txt ``` ### Generate dataset You should first clone the [DJtransGAN-dg-pipeline](https://github.com/ChenPaulYu/DJtransGAN-dg-pipeline) and refer to its README.md to generate dataset include mixable pairs and mixes made by professional DJ. ``` git clone https://github.com/ChenPaulYu/DJtransGAN-dg-pipeline ``` ### Configuration Next, you should set the configuration in `djtransgan/config/settings.py` for global usage of the repo, Most important of all, you should set the path of `PAIR_DIR`, `MIX_DIR` and `STORE_DIR`. 1. `PAIR_DIR` : the directory contain a collection of mixable pair and its cue points which is generate by [DJtransGAN-dg-pipeline](https://github.com/ChenPaulYu/DJtransGAN-dg-pipeline). 2. `MIX_DIR` : the directory contain a collection of mix segment and its cue points which is generate by [DJtransGAN-dg-pipeline](https://github.com/ChenPaulYu/DJtransGAN-dg-pipeline). 3. `STORE_DIR` : the directory conatian the training and inferring result of DJtransGAN. ## Usage We release several examples in `examples/` and `script/` for not only training and infering but also individual usage of each component (e.g: differentiable fader, equalizer and mixer). Detail describe below. ### Differentiable DJ mixer You can choose to use fader and equalizer indivdually or use both in the same time. If you want to use it individually, please check `examples/mixer/mask.ipynb`. If you want to use both in the same time, please check `examples/mixer/mixer.ipynb`. ### Training To train a DJtransGAN, you need to run the script in `script/train.py` ``` python script/train.py [--lr=(list, ex: [1e-5, 1e-5])] [--log=(int, ex: 20)] [--n_gpu=(int, ex: 0)] [--epoch=(int, ex: 20)] [--out_dir=(str, ex: 'gan')] [--n_sample=(int, ex: 4)] [--n_critic=(int, ex: 1)] [--cnn_type=(str, e.g: res_cnn, cnn)] [--loss_type=(str, e.g: minmax, least_square)] [--bath_size=(int, ex: 4)] ``` - `--lr` : learning rate of generator and discriminator (should provide two value). - `--log` : log interval during the GAN training. - `--n_gpu` : speicify which gpu you want to use. - `--epoch` : number of epoch which indicate how many time of dataset you want to train. - `--out_dir` : the output directory which is going to save the training result. - `--n_sample` : the number of sample (mix) the model will generate in the end of every epoch. - `--n_critic` : how many time the discriminator training over generator training. - `--cnn_type` : the cnn type of encoder (e.g: `res_cnn` or `cnn`) . - `--loss_type` : the loss function during the GAN training support `minmax` and `least square` loss. - `--batch_size` : the batch size of dataloader during the GAN training. ### Inference To generate the mix by trained generator, you need to run the script in `script/inference.py`. We provide two tracks in `test/` for your reference. ``` python script/inference.py [--g_path=(str, ex:'./pretrained/djtransgan_minmax.pt')] [--out_dir=(str, ex: 'results/inference')] [--prev_track=(str, ex: './test/Breikthru ft Danny Devinci-Touch.mp3')] [--next_track=(str, ex: './test/Jameson-Hangin.mp3')] [--prev_cue=(float, ex:96)] [--next_cue=(float, ex:30)] [--download=(bool, ex:1)] ``` - `--g_path` : the path of trained generator, can be the pre-trained model provide by us or the model training by you. - `--out_dir` : the output directory which is going to save the result. - `--prev_track` : the path of the previous track (first track). - `--next_track` : the path of the next track (second track). - `--prev_cue` : the cue point of previous track (the point previous track totally fade out). - `--next_cue` : the cue point of next track (the point next track totally fade in). - `--download` : specify whether download the pre-trained model provided by us. ## Citation If you use any of our code in your work please consider citing us. ``` @inproceedings{chen2022djtransgan, title={Automatic DJ Transitions with Differentiable Audio Effects and Generative Adversarial Networks}, author={Chen, B. Y., Hsu, W. H., Liao, W. H., Ramírez, M. A. M., Mitsufuji, Y., & Yang, Y. H.}, booktitle={ICASSP}, year={2022}} ``` ## Acknowledgement This repo is done during the internship in the Sony Group Corporation with outstanding mentoring by my incredible mentors in Sony [Wei-Hsiang Liao](https://jp.linkedin.com/in/wei-hsiang-liao-66283154), [Marco A. Martínez-Ramírez](https://m-marco.com/), and [Yuki Mitsufuji](https://www.yukimitsufuji.com/) and my colleague [Wei-Han Hsu](https://github.com/ddman1101) and advisor [Yi-Hsuan Yang](https://www.citi.sinica.edu.tw/pages/yang/) in Academia Sinica. The results are a joint effort with Sony Group Corporation and Academia Sinica. I sincerely appreciate all the support made by them to make this research happen. Moreover, please check the other excellent AI research made by Sony [here](https://github.com/sony/ai-research-code) and their recent work ["FxNorm-automix"](https://marco-martinez-sony.github.io/FxNorm-automix/) and ["distortionremoval"](https://joimort.github.io/distortionremoval/) which is going to present in ISMIR 2022. ## License Copyright © 2022 Bo-Yu Chen Licensed under the MIT License (the "License"). You may not use this package except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/MIT Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

We collected two datasets to train our proposed approaches: DJ mixset from Livetracklist and individual EDM tracks from MTG-Jamendo-Dataset. To be more specific, We in-house collect long DJ mixsets from Livetracklist and only consider the mixset with mix tag to ensure the quality of the mixset. Furthermore, we select the individual EDM track from MTG-Jamendo-Dataset, which means the track with an EDM tag in the total collection.

提供机构:
Archit00
搜集汇总
数据集介绍
Archit00/bbench-dep-djtransgan 数据集图片
构建方式
该数据集的构建依托于自动DJ过渡生成这一音乐信息检索与音频处理交叉领域,旨在为基于生成对抗网络的DJ过渡模型提供训练与评估基础。构建过程首先从Livetracklist平台内部采集带有mix标签的长时DJ混音集,以确保混音质量;同时从MTG-Jamendo数据集中筛选带有EDM标签的独立电子舞曲曲目。随后,通过DJtransGAN-dg-pipeline工具生成可混音曲目对及其对应的cue点,并制作由专业DJ完成的混音片段,最终形成包含混音对与混音片段的结构化数据集合。受版权限制,原始训练数据未公开,但构建流程与预训练模型已开源。
使用方法
使用该数据集需先克隆DJtransGAN-dg-pipeline仓库,并依据其说明生成包含可混音曲目对、cue点及专业混音片段的数据集。随后,在djtransgan/config/settings.py中配置PAIR_DIR、MIX_DIR与STORE_DIR三个路径,分别指向混音对目录、混音片段目录及训练推理结果存储目录。完成配置后,可通过script/train.py脚本训练DJtransGAN模型,利用script/inference.py脚本加载预训练或自训练生成器进行推理,生成DJ过渡混音。此外,examples目录提供了可微分混音器各组件的独立使用示例,便于灵活调用。
背景与挑战
背景概述
自动音乐混音(DJ transition)是音乐信息检索与音频生成领域的交叉课题,旨在模拟专业DJ将两首独立曲目无缝衔接为连贯混音的过程。2022年,Bo-Yu Chen等学者联合Sony集团与Academia Sinica提出DJtransGAN,并发表于ICASSP 2022。该工作首次将可微分音频效果(包括时频域推子与均衡器)与生成对抗网络相结合,实现了端到端的自动DJ过渡生成。为支撑模型训练,研究者从Livetracklist采集带“mix”标签的长时DJ混音集,并从MTG-Jamendo数据集中筛选带“EDM”标签的独立曲目,构建了配对训练数据。该数据集与配套模型为音乐生成、风格迁移及智能辅助创作提供了重要基准,推动了音频效果与深度生成模型的融合研究。
当前挑战
该数据集所应对的领域核心问题在于如何生成听觉上自然、节奏与和声协调的DJ过渡,这要求模型同时建模长时音乐结构、节拍对齐及音色渐变,远超出常规音频分类或单轨生成任务。在数据集构建过程中,研究者面临多重挑战:需从海量现场混音中甄别高质量且带“mix”标签的片段,确保专业级过渡样本的可靠性;从MTG-Jamendo中筛选EDM曲目时需平衡风格多样性与可混音性;因版权限制无法公开原始训练数据,仅能提供预训练模型与训练代码,这限制了结果复现与公平比较;可微分音频效果的设计须在时频域内保持梯度可回传,同时兼顾推子与均衡器的物理合理性,避免生成不自然的伪影。
常用场景
经典使用场景
在音乐信息检索与自动混音领域,DJ过渡(DJ transition)的生成长期依赖人工经验与规则系统。DJtransGAN数据集面向基于生成对抗网络的自动DJ过渡任务,其经典使用场景在于训练和评估端到端的过渡生成模型。该数据集涵盖从Livetracklist采集的带有“mix”标签的专业DJ混音集,以及从MTG-Jamendo数据集中筛选出的电子舞曲(EDM)单曲,为模型提供可混音曲目对及专业DJ制作的混音片段。研究者利用这些数据驱动DJtransGAN学习可微分推子与均衡器的时频域操作,从而合成从一首曲目到另一首曲目的平滑过渡,典型应用包括生成跨曲目的无缝混音片段以及评估过渡的自然度与音乐性。
解决学术问题
该数据集着力解决自动DJ过渡研究中训练数据稀缺与缺乏客观评价标准的核心问题。既往研究多依赖手工规则或简化模型,难以捕捉专业DJ在均衡、滤波与增益控制上的精细操作。DJtransGAN通过提供真实混音片段与可混音曲目对,使生成对抗网络能够以数据驱动方式学习过渡的时频掩蔽与参数化音频效果,从而在无需大量标注的情况下实现端到端训练。这一贡献推动了自动混音从规则系统向深度学习范式的转变,为后续研究提供了可复现的训练框架与预训练模型,对音乐生成与音频效果建模领域具有方法学意义。
实际应用
在实际应用层面,该数据集支撑的DJtransGAN模型可服务于多种音乐制作与消费场景。流媒体平台与DJ软件可利用其预训练模型实现自动歌单过渡,为用户生成连贯的连续混音体验;现场演出辅助工具可借助可微分混音器实时生成过渡片段,降低DJ的操作负担;音乐教育软件亦可将其作为教学示例,展示专业过渡的时频特征。此外,该数据集衍生的推理脚本允许用户输入两首曲目及其提示点,直接生成过渡音频,为个性化混音创作提供了便捷的技术途径。
数据集最近研究
最新研究方向
在自动DJ混音领域,基于可微分音频效果与生成对抗网络(GAN)的端到端过渡生成正成为前沿方向。DJtransGAN数据集通过整合Livetracklist的专业混音集与MTG-Jamendo的EDM曲目,为模型提供了真实混音场景下的训练与评估基础,推动了可微分均衡器、推子等效果链与GAN架构的联合优化。该数据集相关研究不仅提升了自动混音过渡的自然度与创造性,还为音乐信息检索与生成式音频处理交叉领域提供了可复现的基准,对智能音乐制作与交互式DJ系统的发展具有显著影响。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务