前言

2023-2024 年,Suno 和 Udio 的出现让 AI 音乐生成走进了大众视野。输入一段歌词,选个风格,几十秒后一首完整的歌曲就出来了——这种体验确实震撼。但作为一个开发者,你有没有想过:这些模型是怎么工作的?能不能自己跑一个?

答案是:现在可以了。

2026 年 1 月,HeartMuLa 团队发布了完全开源的音乐生成模型家族,采用 Apache 2.0 许可证。它的 3B 版本在歌词可控性(PER 指标)上甚至超越了 Suno,整体质量接近 Suno v4.5 水平。更关键的是,论文中声称 7B 版本首次实现了"Suno 级别"的商业品质,并且是用学术规模的数据和 GPU 资源复现的。

本文将从 HeartMuLa 的四大核心组件、分层 Transformer 架构、12.5Hz 超低帧率编解码器、四阶段训练流程、Benchmark 对比等多个维度,为你全面解读这个目前最强的开源音乐生成系统。

一、HeartMuLa 是什么?

1.1 基本概念

HeartMuLa(Heart Music Language Model)是一个开源音乐基础模型家族,由 Dongchao Yang(杨东超)等 28 位研究者共同开发。它的核心目标是:用开源的方式复现 Suno 级别的音乐生成能力

项目包含四个核心组件:

组件 功能 参数量 开源状态
HeartMuLa 音乐语言模型(歌曲生成核心) 3B / 7B 3B 开源
HeartCodec 音乐编解码器(音频压缩与重建) 2B 开源
HeartTranscriptor 歌词识别模型(音频转歌词) 0.8B 开源
HeartCLAP 音频-文本对齐模型(语义匹配) - 开源

1.2 为什么需要开源音乐生成?

Suno 和 Udio 虽然效果惊艳,但存在几个根本性问题:

1. 黑箱:你不知道模型内部是怎么工作的,无法调优

2. 不可控:生成结果完全由服务端决定,本地无法定制

3. 商业限制:免费版有限制,商用需要付费

4. 数据隐私:你的歌词和创意上传到了第三方服务器

5. 无法二次开发:想做音乐教育、辅助创作、风格迁移?做不到

HeartMuLa 的出现让开发者可以:

- 在本地完全离线生成音乐

- 微调模型适配特定音乐风格

- 集成到自己的产品中

- 研究和改进模型架构

1.3 发展时间线

日期 事件
2026-01-14 首次发布 HeartTranscriptor、HeartMuLa-3B、HeartCodec
2026-01-15 论文提交 arXiv (2601.10547)
2026-01-20 切换为 Apache 2.0 许可证,社区 ComfyUI 节点发布
2026-01-23 发布 RL 版本和优化版 HeartCodec
2026-02-03 发布 HeartBeats Benchmark
2026-04-10 启动 HuggingFace/ModelScope 在线 Demo

二、核心架构解析

2.1 整体架构

HeartMuLa 的系统架构由四个协同工作的组件构成:

┌─────────────────────────────────────────────────────────────┐
│                    用户输入                                   │
│         歌词 (Lyrics) + 风格标签 (Tags)                       │
└──────────────────────────┬──────────────────────────────────┘
                           │
                           v
┌─────────────────────────────────────────────────────────────┐
│              HeartCLAP (音频-文本对齐)                        │
│         将文本描述映射到 1024 维嵌入空间                       │
│         作为 Classifier-Free Guidance 的条件                  │
└──────────────────────────┬──────────────────────────────────┘
                           │
                           v
┌─────────────────────────────────────────────────────────────┐
│              HeartMuLa (音乐语言模型)                         │
│    ┌──────────────────────────────────────────────┐         │
│    │  全局 Transformer (θ_glo)                    │         │
│    │  → 预测 RVQ Layer 0 (粗粒度语义)              │         │
│    ├──────────────────────────────────────────────┤         │
│    │  局部 Transformer (θ_loc)                    │         │
│    │  → 预测 RVQ Layer 1-7 (细粒度声学细节)        │         │
│    └──────────────────────────────────────────────┘         │
│         输出: 12.5Hz RVQ Token 序列                          │
└──────────────────────────┬──────────────────────────────────┘
                           │
                           v
┌─────────────────────────────────────────────────────────────┐
│              HeartCodec (音频编解码器)                        │
│    ┌──────────────────────────────────────────────┐         │
│    │  语义丰富编码器 (多编码器融合)                  │         │
│    │  Whisper + WavLM + MuEncoder                  │         │
│    ├──────────────────────────────────────────────┤         │
│    │  超低帧率压缩器 (12.5Hz, RVQ 8x8192)          │         │
│    ├──────────────────────────────────────────────┤         │
│    │  高保真重建解码器 (Flow Matching + DiT)        │         │
│    └──────────────────────────────────────────────┘         │
│         输出: 48kHz 立体声 WAV/MP3                           │
└─────────────────────────────────────────────────────────────┘

2.2 HeartMuLa:分层 Transformer 架构

HeartMuLa 最核心的设计是分层 Transformer 架构(Hierarchical Architecture),将音乐生成分解为两个层次:

全局 Transformer (θ_glo)

- 基于 Llama 架构

- 预测 RVQ Layer 0 的 token

- 捕获粗粒度的语义信息:旋律走向、和声结构、节奏模式

- 类似于"先画草图"

局部 Transformer (θ_loc)

- 同样基于 Llama 架构

- 以全局 Transformer 的输出为条件

- 预测 RVQ Layer 1-7 的 token

- 生成细粒度的声学细节:音色泛音、空间混响、动态变化

- 类似于"再填细节"

这种分层设计的优势在于:将全局语义和局部声学解耦,避免了单一模型同时处理两个不同层次信息的困难。

2.3 HeartCodec:12.5Hz 超低帧率编解码器

HeartCodec 是整个系统中最精妙的组件之一。它的核心创新是将音乐的帧率压缩到 12.5Hz(即每秒 12.5 个 token),远低于主流编解码器的 25-50Hz。

为什么低帧率很重要?

音乐生成本质上是一个序列生成问题。帧率越低,序列长度越短,语言模型处理起来就越高效。一首 3 分钟的歌曲:

- 50Hz 编解码器:9000 个 token

- 25Hz 编解码器:4500 个 token

- HeartCodec 12.5Hz:2250 个 token

序列长度减半意味着推理速度翻倍,同时内存占用也大幅降低。

HeartCodec 的三部分架构

1. 语义丰富编码器

这是 HeartCodec 最独特的设计——它不是用单一编码器,而是融合了三个预训练模型的特征:

原始音频 (48kHz)
    │
    ├──→ Whisper 编码器 ──→ 音素特征(歌词信息)
    │
    ├──→ WavLM 第 6-9 层 ──→ 语音特征(说话人、情感)
    │
    └──→ MuEncoder
          ├── 第 2 层 ──→ 声学特征(音色、音高)
          └── 第 11 层 ──→ 音乐语义特征(旋律、和声、乐句结构)

这种多编码器融合策略确保了不同层次的信息(歌词、音色、音乐结构)都被充分捕获。

2. 超低帧率压缩器

将多编码器的特征统一重采样到 25Hz,然后通过 query-based quantization 进一步压缩到 12.5Hz。量化使用 RVQ(残差向量量化),配置为:

- K = 8 个 codebook(8 层残差量化)

- V = 8192 每个 codebook 的词汇量

- 总共 8 x 8192 = 65,536 个可选码字

3. 高保真重建解码器

基于 Flow Matching 的生成模型,使用 Diffusion Transformer(DiT,LLaMA 架构)作为 backbone。输入 12.5Hz 的 RVQ token,输出 25Hz 的连续 latent,最终重建为 48kHz 音频。

2.4 HeartCLAP:音频-文本对齐

HeartCLAP 是一个双编码器模型,将音乐和文本映射到同一个 1024 维嵌入空间:

- 文本编码器:将歌词和风格标签编码为文本嵌入

- 音乐编码器:将音频编码为音乐嵌入

- 训练目标:InfoNCE 对比学习损失,让匹配的音乐-文本对距离更近

- 训练数据:100 万音乐片段及描述对

HeartCLAP 在 HeartMuLa 的推理过程中用于 Classifier-Free Guidance(CFG),帮助模型生成更符合文本描述的音乐。

三、四阶段训练流程

HeartMuLa 的训练采用了精心设计的四阶段渐进式策略:

3.1 Stage 1:Warmup(热身)

数据: 30 秒音乐片段
目标: 快速收敛,学习基本的音乐-歌词对齐
时长: 较短

3.2 Stage 2:Pretraining(预训练)

数据: 大规模完整歌曲数据集
目标: 学习长程依赖关系(歌曲结构、段落衔接)
关键: 这是最重要的阶段,决定了模型的上限

3.3 Stage 3:SFT(监督微调)

数据: 使用 AudioBox 和 SongEval 筛选的高质量子集
目标: 提升生成质量,过滤低质量数据的影响
方法: 两个质量评估模型联合筛选

3.4 Stage 4:DPO(直接偏好优化)

数据: 构建偏好对(好/差对比)
评估维度: tag similarity、PER、AudioBox 分数
目标: 让模型学会"什么样的音乐更好"
效果: PER 从 0.10 降到 0.07,SongEval 从 4.41 提升到 4.43

四阶段训练的效果对比:

阶段 SongEval Avg PER (越低越好)
Pretrain 4.03 0.1830
SFT 4.41 0.1005
**DPO** **4.43** **0.0687**

DPO 阶段将歌词错误率降低了 62%(从 0.1830 到 0.0687),这是非常显著的提升。

四、Benchmark 对比

4.1 自动评估指标

模型 AudioBox SongEval Avg Tag-Sim PER
Suno-v5 7.65 4.54 0.26 0.13
Suno-v4.5 7.62 4.51 0.25 0.14
MiniMax-2.0 7.73 4.51 0.26 0.13
**HeartMuLa 3B** **7.55** **4.48** **0.26** **0.09**
Mureka-V7.6 7.45 4.29 0.27 0.28
Udio-v1.5 7.52 3.97 0.23 0.25
DiffRhythm 2 7.23 3.87 0.32 0.28
ACE-Step 7.49 3.25 0.17 0.21

关键发现

- HeartMuLa 的 PER(音素错误率)为 0.09,是所有模型中最低的,说明它的歌词可控性最强

- SongEval 平均分 4.48,仅比 Suno v4.5 低 0.03

- AudioBox 分数 7.55,与 Suno 的 7.62 差距不大

4.2 人工评估(MOS 排名)

排名 模型 Overall MOS 95% CI
1 Suno-v4.5 76.08 ±1.33
**2** **HeartMuLa** **69.93** **±1.66**
3 ACE-Step 66.66 ±1.76
4 DiffRhythm2 58.33 ±1.86
5 YuE 57.93 ±1.76

4.3 人工评估细项

模型 Musicality Harmony Structure Fidelity Text Align.
Suno-v4.5 78.10 75.14 78.80 79.14 77.17
**HeartMuLa** **69.55** **71.06** **73.44** **73.18** **70.51**
ACE-Step 67.42 67.16 69.07 71.40 67.94

HeartMuLa 在所有维度上都稳居第二,与 Suno 的差距约 6-8 个百分点。

4.4 HeartCodec 对比

编解码器 VISQOL FAD PESQ(WB) WER
**HeartCodec** **3.61** **0.61** **1.56** **0.24**
SemantiCodec 2.28 1.92 1.30 0.52
XCodec 2.28 1.20 1.43 0.52

HeartCodec 在所有指标上都大幅领先,尤其 WER(词错误率)只有 0.24,说明音频中的歌词信息保留得非常好。

五、与竞品全面对比

特性 HeartMuLa Suno Udio MusicGen
开源 ✅ Apache 2.0
歌词条件生成
多语言 ✅ 5+ 语言 有限
参考音频
标签控制 ✅ 细粒度 有限
分段风格控制
最大长度 6 分钟 4 分钟 约 2 分钟 约 30 秒
帧率 12.5Hz 未知 未知 50Hz
模型大小 3B (开源) / 7B 未知 未知 300M-3.3B

HeartMuLa 的独特优势

1. 分段风格控制:可以为 intro、verse、chorus 等不同段落指定不同的风格标签,这是 Suno 和 Udio 都不支持的

2. 歌词可控性最强:PER 0.09,比 Suno 低 35%

3. 6 分钟生成:支持最长 6 分钟的完整歌曲

4. 完全本地化:数据不出本地,保护隐私

六、踩坑经验

6.1 硬件要求

错误认知:随便什么 GPU 都能跑

实际情况

- 最低 8GB VRAM(需要 --lazy_load true

- 推荐 16GB+ VRAM

- 3B 模型 lazy_load 峰值显存约 6.2GB

- CPU 可以跑但极慢(30-60 分钟生成一首歌)

6.2 HeartCodec 不能用 bf16

错误做法:为了省显存把 HeartCodec 设为 bf16

# ❌ 不要这样做
--codec_dtype bfloat16

正确做法:HeartCodec 必须用 fp32

# ✅ 正确
--codec_dtype float32

bf16 会导致音质明显下降,因为 Flow Matching 解码器对精度敏感。

6.3 依赖冲突修复

安装时可能会遇到依赖冲突,需要手动修复:

# 升级 datasets(旧版本与 pyarrow 不兼容)
uv pip install --upgrade datasets

# 升级 transformers(兼容 huggingface-hub 1.x)
uv pip install --upgrade transformers

6.4 macOS 不支持 GPU 加速

HeartMuLa 依赖 Triton,而 Triton 仅支持 Linux/CUDA。在 macOS 上只能用 CPU 模式,速度会非常慢。建议使用 Linux 机器或云 GPU。

七、快速上手

7.1 安装

# 克隆仓库
git clone https://github.com/HeartMuLa/heartlib.git
cd heartlib

# 创建虚拟环境
uv venv --python 3.10 .venv
. .venv/bin/activate
uv pip install -e .

# 下载模型(可并行下载)
hf download --local-dir './ckpt' 'HeartMuLa/HeartMuLaGen'
hf download --local-dir './ckpt/HeartMuLa-oss-3B' 'HeartMuLa/HeartMuLa-oss-3B-happy-new-year'
hf download --local-dir './ckpt/HeartCodec-oss' 'HeartMuLa/HeartCodec-oss-20260123'

7.2 准备歌词和标签

歌词文件(lyrics.txt):

[Intro]

[Verse]
故事的小黄花
从出生那年就飘着
童年的荡秋千
随记忆一直晃到现在

[Chorus]
为你翘课的那一天
花落的那一天
教室的那一间
我怎么看不见

[Outro]
消失的下雨天
我好想再淋一遍

标签文件(tags.txt):

pop,ballad,acoustic guitar,piano,male-vocal,emotional,gentle

7.3 生成音乐

python ./examples/run_music_generation.py \
  --model_path=./ckpt \
  --version="3B" \
  --lyrics="./assets/lyrics.txt" \
  --tags="./assets/tags.txt" \
  --save_path="./output.mp3" \
  --lazy_load true

关键参数说明:

参数 默认值 说明
max_audio_length_ms 240000 最大音频长度(毫秒),默认 4 分钟
topk 50 Top-K 采样
temperature 1.0 采样温度
cfg_scale 1.5 Classifier-Free Guidance 强度
lazy_load false 按需加载/卸载模型(省显存)

八、未来展望

8.1 待开源的功能

HeartMuLa 团队在论文和 GitHub Issues 中透露了以下计划:

1. 7B 版本开源:目前仅内部使用,声称达到 Suno 水平

2. 推理加速:当前 RTF 约 1.0,计划优化到实时级别

3. 流式推理:支持边生成边播放

4. 参考音频条件:输入一段参考音乐,生成相似风格的歌曲

5. 细粒度可控生成:更精确地控制每个音符、每个乐器

8.2 生态建设

- ComfyUI 集成:社区已开发自定义节点

- HuggingFace Spaces:在线 Demo 已上线

- ModelScope:同步发布到中国平台

- Discord / 微信群:活跃的开发者社区

九、总结

1. HeartMuLa 是目前最强的开源音乐生成模型:3B 版本在歌词可控性(PER 0.09)上超越 Suno,整体质量接近 Suno v4.5 水平

2. 分层 Transformer 架构是核心创新:全局 Transformer 捕获语义,局部 Transformer 生成声学细节,解耦设计提升了生成质量

3. 12.5Hz 超低帧率 HeartCodec 是效率关键:相比 50Hz 编解码器,序列长度减少 4 倍,同时音质不降反升

4. 四阶段渐进训练(Warmup → Pretrain → SFT → DPO):DPO 阶段将歌词错误率降低 62%,是质量提升的关键

5. 分段风格控制是独特优势:可以为歌曲的不同段落指定不同风格,这是 Suno 和 Udio 都不支持的能力

6. 7B 版本值得期待:如果开源,将真正实现"Suno 级别"的完全可复现音乐生成系统

对于开发者来说,HeartMuLa 提供了一个绝佳的机会:你可以用它做音乐教育产品、辅助创作工具、风格迁移引擎,甚至重新训练一个面向特定市场的音乐生成模型。开源的力量就在于此——当最强的技术不再被少数公司垄断,创新的可能性就是无限的。

参考资料

- HeartMuLa GitHub 仓库

- HeartMuLa 论文 (arXiv:2601.10547)

- HeartMuLa HuggingFace 主页

- HeartMuLa 在线 Demo

- HeartMuLa Discord 社区