EDM-98
收藏资源简介:
EDM-98是从一个经过精心挑选的98首歌曲集合中创建的,带有Rekordbox cue-point标记。原始数据集以JSON格式创建,后来转换为JSONL格式以匹配SongFormer架构预期的标签文件格式。数据集包含每首歌曲的Deezer轨道标识符、严格递增的[时间,标签]对列表以及原始文件名。数据集不重新分发音频本身,但包含Deezer ID以便用户将元数据映射到外部下载的音频。
EDM-98 is created from a carefully curated collection of 98 songs with Rekordbox cue-point markers. The original dataset was initially constructed in JSON format, and later converted to JSONL format to match the label file structure expected by the SongFormer architecture. The dataset contains the Deezer track identifier for each song, a strictly increasing list of [time, tag] pairs, and the original filename. The dataset does not redistribute the audio content itself, but includes Deezer IDs to enable users to map the metadata to externally downloaded audio files.
EDM-98 数据集概述
数据集基本信息
- 数据集名称:EDM-98
- 数据来源:基于98首经过精心挑选的歌曲,使用Rekordbox cue-point进行标注。
- 原始格式:最初创建为JSON,后转换为JSONL以匹配SongFormer架构预期的标签文件格式。
- 音频数据:本包不重新分发音频本身。包含Deezer ID,以便用户将元数据映射回外部下载的音频。
数据集内容与结构
包含的组件
- 模块内打包的规范EDM-98标签工件。
- 模块内打包的规范分割文件。
- 用于数据集加载和验证的轻量级Python包。
- 一个可选的EDMFormer推理管道。
- 用于验证、预测、缓存预热和演示启动的CLI。
- 一个带有波形时间线和颜色编码部分预测的Gradio应用程序。
数据记录格式
每个打包的数据集记录包括:
id:用作规范记录ID的Deezer曲目标识符。labels:一个严格递增的[时间, 标签]对列表,以end终止。file_path:标注时可用的原始文件名(作为来源元数据保留,不作为主要查找键)。
主要标签类别
EDMFormer设置公开的主要标签包括:
introbuildupdropbreakdownoutrosilence
数据访问与使用
加载数据集
通过Python API加载规范的数据集记录和分割: python from edm98.loaders import load_dataset_records, load_all_splits, load_records_by_split records = load_dataset_records() splits = load_all_splits() train_records = load_records_by_split("train")
音频文件关联
本地音频预处理约定:每首下载的歌曲存储为<deezer_id>.<ext>(例如1060564312.mp3)。用户需自行下载音频,并使用Deezer ID将元数据关联到本地音乐目录。
训练准备
核心流程
- 安装
edm98并加载打包的记录。 - 使用提供的Deezer ID单独下载歌曲,并存储为
<deezer_id>.<ext>。 - 生成EDMFormer所需的MuQ和MusicFM嵌入。
- 将训练配置指向打包的JSONL标签和分割文件。
资源位置
数据集和分割文件从edm98内的打包资源加载,位于src/edm98/resources/下。该打包副本是Python API和PyPI分发的规范源。
安装与部署
仅安装数据集
bash pip install edm98
安装推理功能(包含UI)
bash git clone https://github.com/25ohms/EDM-98.git cd EDM-98 ./scripts/install_inference_deps.sh pip install -e ".[ui]" export MUSICFMPATH="$PWD/third_party/musicfm"
工具与接口
命令行接口(CLI)
- 验证数据集:
python -m edm98.cli validate-dataset - 对单个文件运行推理:
python -m edm98.cli predict --device cuda --low-memory path/to/song.mp3 - 启动Gradio演示:
python -m edm98.cli demo --device cuda --server-name 0.0.0.0 --server-port 7860
Gradio演示应用
- 提供文件上传、全宽颜色编码波形时间线、标记部分区域、移动播放光标以及带分秒时间戳的预测部分表格视图。
- 演示启动后持久化,直到进程退出。
Python API
- 一次性推理:使用
edm98.inference.predict_file。 - 应用集成或重复使用:创建并重用
InferencePipeline对象。
平台支持
- Linux:最直接的GPU支持设置,使用
--device cuda。 - macOS:在Apple Silicon上使用Metal,通过
--device mps。 - Windows:建议在WSL2或Git Bash等Bash兼容环境中运行。
许可信息
- 仓库代码和模型相关材料:CC BY 4.0
- 打包的数据集元数据和分割文件:MIT




