SongGeneration — LeVo 开源音乐模型(NeurIPS 2025)
SongGeneration — LeVo 开源音乐模型(NeurIPS 2025)
如果你曾经想象过一款能够按需创作完整歌曲(歌词、旋律与伴奏)的 AI,SongGeneration 就是你的理想工具。它是 NeurIPS 2025 论文 LeVo: High‑Quality Song Generation with Multi‑Preference Alignment 的官方代码库,能够把前沿研究模型转化为一个开发者友好的、开源的模块,几秒钟内生成完整长度的曲目。
🎶 什么是 SongGeneration?
SongGeneration 是一种基于语言模型的架构,融合了两个核心组件:
- LeLM —— Transformer 风格的 LM,联合建模 mixed(声乐+背景音乐)与 dual‑track(分离的声乐与伴奏)标记,使模型能够将歌词与和声、节奏结构对齐。
- Music Codec —— 高效的神经编码器,能够将双轨标记解码为高保真 PCM 音频。
两者组合产生的系统具备以下能力:
- 生成长达 4 分 30 秒的歌曲。
- 根据检查点支持多种语言(中文、英文、西班牙文、日文等)。
- 生成多轨输出(声乐、伴奏或两者合并),甚至仅声乐或仅音乐。
- 通过提示音频来引导风格、流派或音色。
🏗️ 仓库结构
SongGeneration/
├─ conf/ # 默认配置文件
├─ img/ # README 与文档所用图片
├─ sample/ # 示例 JSONL 文件与输出
├─ tools/
│ └─ gradio/ # Gradio UI 脚本
├─ generate.py # 基于 Gradio 的推理入口
├─ generate.sh # 推理的 Shell 包装脚本
├─ LICENSE # MIT 风格许可证
├─ README.md # 完整文档
├─ requirements.txt # Python 依赖
└─ …
README 是你的入口点。它涵盖了从安装到高级使用(例如低内存推理、Flash Attention 开关以及 Docker 部署)的所有内容。
📦 安装与运行
1. 先决条件
- Python ≥ 3.8.12
- CUDA ≥ 11.8(用于 GPU 加速;CPU 备选)
- 至少 10 GB 的 GPU 空闲显存(10B+ RTX 系列)。若显存不足,请参阅 低内存 部分。
2. 安装代码
# 克隆仓库
git clone https://github.com/tencent-ailab/SongGeneration.git
cd SongGeneration
# 安装依赖
pip install -r requirements.txt
pip install -r requirements_nodeps.txt --no-deps
# 可选:安装 Flash Attention(提升速度)
# pip install https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
3. 下载模型检查点
所有检查点托管在 Hugging Face。以下载 SongGeneration‑base‑full 检查点为例:
huggingface-cli download lglg666/SongGeneration-base-full --local-dir ./songgeneration_base_full
若更喜欢更大的 SongGeneration‑large 模型,请相应调整路径。文件夹名必须与检查点名完全一致。
4. 运行推理
你可以启动 Gradio 界面或在命令行执行推理。
a) Gradio UI
sh tools/gradio/run.sh <ckpt_path>
# 例子:
# sh tools/gradio/run.sh ./songgeneration_base_full
它会在本地启动一个 Web 服务器(默认 http://localhost:7860),你可以:
- 上传 JSONL 文件或直接输入歌词;
- 选择模型版本;
- 切换 Separate Tracks、Pure Vocals、Pure Music 等选项;
- 预览并下载生成的 MP3‑style 声音片段。
b) CLI 推理
sh generate.sh <ckpt_path> <input_jsonl> <output_dir> [options]
# 示例
sh generate.sh ./songgeneration_base_full sample/lyrics.jsonl sample/output
可选参数:
--low_mem使用低内存推理(降低 VRAM 需求)。--not_use_flash_attn若未启用 Flash Attention,则跳过该步骤。--bgm仅生成背景音乐。--vocal仅生成声乐(无伴奏)。--separate生成分离的声乐和伴奏轨道。
5. 提示音频 & 描述
你可以通过 10 秒左右的提示音频或指定 description 标签来引导生成。仓库提供了性别、音色、流派、情绪、乐器与 BPM 等标签表。例如:
{
"idx": "song_01",
"gt_lyric": "[intro-short] ; [verse] … ; [chorus] … ; [outro-medium]",
"descriptions": "female, bright, pop, energetic, guitar, drums"
}
模型将生成一个 2 分钟的流行曲,配合匹配的声乐音色与配器。
🚀 最新功能(截至 2025 年 10 月)
| 日期 | 更新 |
|---|---|
| 2025‑10‑16 | Demo 网页现在支持全长歌曲生成(最多 4 m 30 s) |
| 2025‑10‑15 | 代码库更新以提升推理速度并加入新模型版本 |
| 2025‑10‑14 | 发布 SongGeneration‑large 检查点 |
| 2025‑10‑13 | 发布带评测数据的 SongGeneration‑base‑full 正式版 |
| 2025‑10‑12 | 发布英文增强版 SongGeneration‑base‑new |
| 2025‑09‑23 | 发布数据处理管道 — 自动拍子跟踪与歌词对齐 |
| 2025‑07‑25 | 模型可在 10 GB GPU 内存下运行 |
📚 如何在项目中使用
1️⃣ 搭建 Web 应用
使用 Gradio UI 作为模板,并嵌入你自己的 Flask 或 FastAPI 服务器。generate.py 脚本暴露了一个简单的 API,可被任何语言调用。
2️⃣ 创建移动演示
将训练好的检查点导出为 ONNX 或 TorchScript,并在 Android/iOS 上使用 CoreML 或 TensorFlow Lite 部署。低内存推理标志在移动 GPU 上尤为有用。
3️⃣ 为视频游戏生成音乐
将结构化歌词脚本(如 JSONL 文件)输入系统。输出格式(VST 或原始 PCM)可直接导入 FMOD、Wwise 等游戏音频引擎。
4️⃣ 尝试基于检索的提示
仓库包含一个小工具,可从库中自动选择提示音频:通过指定 auto_prompt_audio_type,你可以让模型在不上传音频文件的情况下生成 Jazz 或 Rock 风格的作品。
🔗 资源与社区
- Hugging Face Space – 交互式演示:https://huggingface.co/spaces/lglg666/song-generation-levo
- 论文 – LeVo: High‑Quality Song Generation with Multi‑Preference Alignment(arXiv 2506.07520)
- Docker 镜像 – 快速起步:
docker pull juhayna/song-generation-levo:hf0613 - GitHub 讨论与问题 – 提问、分享示例、报告 bug。
⚙️ 评估亮点
仓库列出了全面的评估指标(PER、Audiobox Aesthetics、SongEval 等)。与 Suno 或 Mureka 等现有开源模型相比,SongGeneration 在 SongGeneration‑large 版本下呈现出最低 PER 与最高美学得分。
🎓 终极思考
SongGeneration 架桥科研与生产。其模块化设计、详尽文档与大规模预训练检查点,使其成为任何想搭建 AI 生成音乐工具的理想选择——无论是商业平台、个人项目还是学术研究。借助 GitHub 上活跃的开发社区及 Hugging Face 的活跃支持,你可以随时跟进最新更新,并在新模型发布后即刻使用。
今天就尝试一下吧——探索仓库,跑 Demo,使用一条命令就能创作自己的 AI 作品!
🎓 终极思考
SongGeneration 架桥科研与生产。其模块化设计、详尽文档与大规模预训练检查点,使其成为任何想搭建 AI 生成音乐工具的理想选择——无论是商业平台、个人项目还是学术研究。借助 GitHub 上活跃的开发社区及 Hugging Face 的活跃支持,你可以随时跟进最新更新,并在新模型发布后即刻使用。
今天就尝试一下吧——探索仓库,跑 Demo,使用一条命令就能创作自己的 AI 作品!
```