ACE-Step:迈向音乐生成 Foundation Model 的一步

ACE-Step: A Step Towards Music Generation Foundation Model

ace-step.github.io/

License

Apache-2.0 license

353 stars 18 forks

ace-step/ACE-Step

main

项目主页 | Checkpoints | Space Demo | Discord

StepFun Logo

目录

📢 最新动态

TODO 📋

🏗️ 架构

ACE-Step Framework

📝 摘要

我们推出了 ACE-Step,这是一种新型的开源音乐生成 Foundation Model,它通过整体架构设计克服了现有方法的关键局限性,并实现了最先进的性能。当前的方法在生成速度、音乐连贯性和可控性之间面临着固有的权衡。例如,基于 LLM 的模型(例如,Yue, SongGen)在歌词对齐方面表现出色,但存在推理速度慢和结构伪影的问题。另一方面,扩散模型(例如,DiffRhythm)可以实现更快的合成,但通常缺乏长期的结构连贯性。

ACE-Step 通过将基于扩散的生成与 Sana 的 Deep Compression AutoEncoder (DCAE) 和轻量级线性 transformer 相结合来弥合这一差距。它还利用 MERT 和 m-hubert 在训练期间对齐语义表示 (REPA),从而实现快速收敛。因此,我们的模型可以在 A100 GPU 上仅用 20 秒合成长达 4 分钟的音乐,比基于 LLM 的基线快 15 倍,同时在旋律、和声和节奏指标方面实现卓越的音乐连贯性和歌词对齐。此外,ACE-Step 保留了精细的声学细节,从而实现了先进的控制机制,例如语音克隆、歌词编辑、混音和音轨生成(例如,lyric2vocal、singing2accompaniment)。

我们的愿景不是构建另一个端到端的 text-to-music 管道,而是为音乐 AI 建立一个 Foundation Model:一种快速、通用、高效且灵活的架构,可以轻松地在其之上训练子任务。这为开发能够无缝集成到音乐艺术家、制作人和内容创作者的创作工作流程中的强大工具铺平了道路。简而言之,我们的目标是为音乐打造 Stable Diffusion 时刻。

✨ 特性

ACE-Step Framework

🎯 基线质量

🌈 多样化的风格和流派

🌍 多种语言

🎻 乐器风格

🎤 歌唱技巧

🎛️ 可控性

🔄 变体生成

🎨 重新绘制 (Repainting)

✏️ 歌词编辑

🚀 应用

🎤 Lyric2Vocal (LoRA)

📝 Text2Samples (LoRA)

🔮 即将推出

🎤 RapMachine

🎛️ StemGen

🎤 Singing2Accompaniment

🖥️ 硬件性能

我们评估了 ACE-Step 在不同硬件设置上的性能,得出了以下吞吐量结果:

| 设备 | RTF (27 steps) | 渲染 1 分钟音频的时间 (27 steps) | RTF (60 steps) | 渲染 1 分钟音频的时间 (60 steps) | | ----------------- | -------------- | ------------------------------- | -------------- | ------------------------------- | | NVIDIA RTX 4090 | 34.48 × | 1.74 s | 15.63 × | 3.84 s | | NVIDIA A100 | 27.27 × | 2.20 s | 12.27 × | 4.89 s | | NVIDIA RTX 3090 | 12.76 × | 4.70 s | 6.48 × | 9.26 s | | MacBook M2 Max | 2.27 × | 26.43 s | 1.03 × | 58.25 s |

我们使用 RTF(Real-Time Factor)来衡量 ACE-Step 的性能。值越高表示生成速度越快。27.27x 表示生成 1 分钟的音乐需要 2.2 秒 (60/27.27)。性能是在单个 GPU 上以 batch size 1 和 27 步测量的。

💻 安装

先决条件

环境设置

强烈建议使用虚拟环境来管理项目依赖项并避免冲突。选择以下一种方法(Conda 或 venv):

选项 1:使用 Conda

  1. 使用 Python 3.10 创建名为 ace_step 的环境:

    conda create -n ace_step python=3.10 -y
    
  2. 激活环境:

    conda activate ace_step
    

选项 2:使用 venv

  1. 确保您使用的是正确的 Python 版本。

  2. 创建虚拟环境(通常命名为 venv):

    python -m venv venv
    
  3. 激活环境:

    • 在 Windows (cmd.exe) 上:

      venv\Scripts\activate.bat
      
    • 在 Windows (PowerShell) 上:

      .\venv\Scripts\Activate.ps1
      

      (如果遇到执行策略错误,您可能需要首先运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process)

    • 在 Linux / macOS (bash/zsh) 上:

      source venv/bin/activate
      
  4. requirements.txt 文件安装依赖项:

    对于 macOS/Linux 用户:

    pip install -r requirements.txt
    

    对于 Windows 用户:

    # 安装 PyTorch, TorchAudio, 和 TorchVision for Windows
    # 将 cu126 替换为您的 CUDA 版本
    # 使用你的版本替换 torchvision 和 torchaudio
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
    # 然后安装其他依赖项
    pip install -r requirements.txt
    

🚀 使用

Demo Interface

🔍 基本用法

python app.py

⚙️ 高级用法

python app.py --checkpoint_path /path/to/checkpoint --port 7865 --device_id 0 --share true --bf16 true

如果您使用的是 MacOS,请使用 --bf16 false 以避免错误。

🛠️ 命令行参数

📱 用户界面指南

ACE-Step 界面提供多个选项卡,用于不同的音乐生成和编辑任务:

📝 Text2Music 选项卡

  1. 📋 输入字段
    • 🏷️ 标签:输入以逗号分隔的描述性标签、流派或场景描述
    • 📜 歌词:输入带有结构标签(如 [verse]、[chorus] 和 [bridge])的歌词
    • ⏱️ 音频时长:设置生成的音频的期望时长(-1 表示随机)
  2. ⚙️ 设置
    • 🔧 基本设置:调整推理步数、引导比例和种子
    • 🔬 高级设置:微调 scheduler 类型、CFG 类型、ERG 设置等
  3. 🚀 生成:单击“生成”以根据您的输入创建音乐

🔄 Retake 选项卡

🎨 Repainting 选项卡

✏️ Edit 选项卡

📏 Extend 选项卡

示例

examples/input_params 目录包含可用于生成音乐的示例输入参数。

训练

先决条件

  1. 按照安装部分中的描述准备环境。

  2. 如果您计划训练 LoRA 模型,请安装 PEFT 库:

    pip install peft
    
  3. 以 Huggingface 格式准备您的数据集 (Huggingface Datasets 文档)。数据集应包含以下字段:

    • keys: 每个音频样本的唯一标识符
    • tags: 描述性标签列表(例如,["pop", "rock"]
    • norm_lyrics: 归一化的歌词文本
    • 可选字段:
      • speaker_emb_path: speaker embedding 文件的路径(如果不可用,则使用空字符串)
      • recaption: 各种格式的附加标签描述

示例数据集条目:

{
 "keys": "1ce52937-cd1d-456f-967d-0f1072fcbb58",
 "tags": ["pop", "acoustic", "ballad", "romantic", "emotional"],
 "speaker_emb_path": "",
 "norm_lyrics": "I love you, I love you, I love you",
 "recaption": {
  "simplified": "pop",
  "expanded": "pop, acoustic, ballad, romantic, emotional",
  "descriptive": "The sound is soft and gentle, like a tender breeze on a quiet evening. It's soothing and full of longing.",
  "use_cases": "Suitable for background music in romantic films or during intimate moments.",
  "analysis": "pop, ballad, piano, guitar, slow tempo, romantic, emotional"
 }
}

训练参数

常用参数

基础模型训练

使用以下命令训练基础模型:

python trainer.py --dataset_path "path/to/your/dataset" --checkpoint_dir "path/to/base/checkpoint" --exp_name "your_experiment_name"

LoRA 训练

对于 LoRA 训练,您需要提供 LoRA 配置文件:

python trainer.py --dataset_path "path/to/your/dataset" --checkpoint_dir "path/to/base/checkpoint" --lora_config_path "path/to/lora_config.json" --exp_name "your_lora_experiment"

示例 LoRA 配置文件 (lora_config.json):

{
 "r": 16,
 "lora_alpha": 32,
 "target_modules": [
  "speaker_embedder",
  "linear_q",
  "linear_k",
  "linear_v",
  "to_q",
  "to_k",
  "to_v",
  "to_out.0"
 ]
}

高级训练选项

📜 许可 & 免责声明

本项目根据 Apache License 2.0 获得许可

ACE-Step 能够生成各种流派的原创音乐,并在创意制作、教育和娱乐领域得到应用。虽然旨在支持积极和艺术的用例,但我们承认潜在的风险,例如由于风格相似而造成的无意侵犯版权、不恰当地混合文化元素以及滥用生成有害内容。为了确保负责任的使用,我们鼓励用户验证生成作品的原创性,明确披露 AI 的参与,并在调整受保护的风格或材料时获得适当的许可。通过使用 ACE-Step,您同意遵守这些原则并尊重艺术完整性、文化多样性和法律合规性。作者不对模型的任何滥用行为负责,包括但不限于侵犯版权、文化不敏感或生成有害内容。

🙏 致谢

该项目由 ACE Studio 和 StepFun 共同领导。

📖 引用

如果您发现此项目对您的研究有用,请考虑引用:

@misc{gong2025acestep,
 title={ACE-Step: A Step Towards Music Generation Foundation Model},
 author={Junmin Gong, Wenxiao Zhao, Sen Wang, Shengyuan Xu, Jing Guo},
 howpublished={\url{https://github.com/ace-step/ACE-Step}},
 year={2025},
 note={GitHub repository}
}

关于

ACE-Step: A Step Towards Music Generation Foundation Model

ace-step.github.io/

资源

Readme

许可

Apache-2.0 license

活动

Stars

353 stars

Watchers

12 watching

Forks

18 forks