SongGen:三秒克隆音色!开源AI一键生成专业级歌曲,创作人必备神器

本文涉及的产品
图像搜索,任选一个服务类型 1个月
简介: SongGen是由上海AI Lab、北京航空航天大学和香港中文大学联合推出的单阶段自回归Transformer模型,能够通过文本生成高质量歌曲,支持混合模式和双轨模式,显著提升生成歌曲的自然度和人声清晰度。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🎧 “AI作曲新突破!SongGen一键生成高质量歌曲,支持声音克隆和双轨编辑”

大家好,我是蚝油菜花。你是否也遇到过——

  • 👉 音乐创作灵感枯竭,难以快速生成歌曲雏形
  • 👉 视频配乐找不到合适的背景音乐,版权问题让人头疼
  • 👉 想要个性化定制歌曲,却苦于没有专业工具...

今天揭秘的 SongGen ,用AI彻底颠覆音乐创作方式!这个由上海AI Lab、北京航空航天大学和香港中文大学联合推出的单阶段自回归Transformer模型,能够通过文本生成高质量歌曲,支持混合模式和双轨模式,显著提升生成歌曲的自然度和人声清晰度。无论是音乐创作、视频配乐,还是个性化定制,SongGen都能轻松应对——你的音乐创作之旅即将迎来革命性突破!

🚀 快速阅读

SongGen是一个基于自回归Transformer的歌曲生成模型,能够通过文本生成高质量歌曲。

  1. 核心功能:支持混合模式和双轨模式,提供细粒度控制和声音克隆功能。
  2. 技术原理:基于创新的音频标记化策略和训练方法,显著提升生成歌曲的自然度和人声清晰度。

SongGen 是什么

SongGen

SongGen是由上海AI Lab、北京航空航天大学和香港中文大学联合推出的单阶段自回归Transformer模型,能够通过文本生成高质量歌曲。SongGen基于歌词和描述性文本(如乐器、风格、情感等)作为输入,支持混合模式和双轨模式两种输出方式,分别用于直接生成人声与伴奏的混合音频,及分别合成人声和伴奏方便后期编辑。

SongGen基于创新的音频标记化策略和训练方法,显著提升生成歌曲的自然度和人声清晰度,解决传统多阶段方法中训练和推理流程繁琐的问题。SongGen的开源性和高质量数据集为未来音乐生成研究提供了新的基准。

SongGen 的主要功能

  • 细粒度控制:用户基于歌词、描述性文本(如乐器、风格、情感等)对生成的歌曲进行控制。
  • 声音克隆:支持基于三秒参考音频实现声音克隆,使生成的歌曲具有特定歌手的音色。
  • 两种生成模式:提供“混合模式”(直接生成人声和伴奏的混合音频)和“双轨模式”(分别合成人声和伴奏,便于后期编辑)。
  • 高质量音频输出:基于优化的音频标记化和训练策略,生成具有高自然度和清晰人声的歌曲。

SongGen 的技术原理

  • 自回归生成框架:基于自回归Transformer解码器,将歌词和描述性文本编码为条件输入,用交叉注意力机制引导音频标记的生成。
  • 音频标记化:用X-Codec将音频信号编码为离散的音频标记,基于代码本延迟模式处理多代码序列,支持高效生成。
  • 混合模式与双轨模式
    • 混合模式:直接生成混合音频标记,引入辅助人声音频标记预测目标(Mixed Pro),增强人声清晰度。
    • 双轨模式:基于平行或交错模式分别生成人声和伴奏标记,确保两者在帧级别上的对齐,提升生成质量。
  • 条件输入编码
    • 歌词编码:VoiceBPE分词器将歌词转换为音素级标记,基于小型Transformer编码器提取关键发音信息。
    • 声音编码:MERT模型提取参考音频的音色特征,支持声音克隆。
    • 文本描述编码:FLAN-T5模型将描述性文本编码为特征向量,提供音乐风格、情感等控制。
  • 训练策略
    • 多阶段训练:包括模态对齐、无参考声音支持和高质量微调,逐步提升模型性能。
    • 课程学习:逐步调整代码本损失权重,优化模型对音频细节的学习。
    • 数据预处理:开发自动化数据预处理管道,从多个数据源收集音频,分离人声和伴奏,生成高质量的歌词和描述性文本数据集。

如何运行 SongGen

1. 安装环境和依赖

git clone https://github.com/LiuZH-19/SongGen.git
cd SongGen
# 推荐使用conda创建新环境
conda create -n songgen python=3.9.18 
conda activate songgen
# 安装cuda >= 11.8
conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia

如果仅使用SongGen的推理模式,可以通过以下命令安装:

pip install .

2. 下载xcodec和songgen的检查点

3. 运行推理

(1). 混合模式

import torch
import os
from songgen import (
    VoiceBpeTokenizer,
    SongGenMixedForConditionalGeneration,
    SongGenProcessor
)
import soundfile as sf

ckpt_path = "..." # 预训练模型的路径
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = SongGenMixedForConditionalGeneration.from_pretrained(
    ckpt_path,
    attn_implementation='sdpa').to(device)
processor = SongGenProcessor(ckpt_path, device)

# 定义输入文本和歌词
lyrics = "..." # 歌词文本
text="..." # 音乐描述文本
ref_voice_path = 'path/to/your/reference_audio.wav' # 参考音频路径,可选
separate= True # 是否从参考音频中分离人声

model_inputs = processor(text=text, lyrics=lyrics, ref_voice_path=ref_voice_path, separate=True) 
generation = model.generate(**model_inputs,
                do_sample=True,
            )
audio_arr = generation.cpu().numpy().squeeze()
sf.write("songgen_out.wav", audio_arr, model.config.sampling_rate)

(2). 双轨模式

import torch
import os
from songgen import (
    VoiceBpeTokenizer,
    SongGenDualTrackForConditionalGeneration,
    SongGenProcessor
)
import soundfile as sf

ckpt_path = "..." # 预训练模型的路径
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = SongGenDualTrackForConditionalGeneration.from_pretrained(
    ckpt_path,
    attn_implementation='sdpa').to(device)
processor = SongGenProcessor(ckpt_path, device)

# 定义输入文本和歌词
lyrics = "..." # 歌词文本
text="..." # 音乐描述文本
ref_voice_path = 'path/to/your/reference_audio.wav' # 参考音频路径,可选
separate= True # 是否从参考音频中分离人声

model_inputs = processor(text=text, lyrics=lyrics, ref_voice_path=ref_voice_path, separate=True) 
generation = model.generate(**model_inputs,
                do_sample=True,
            )

acc_array = generation[0].cpu().numpy()
vocal_array = generation[1].cpu().numpy()
min_len =min(vocal_array.shape[0], acc_array.shape[0])
acc_array = acc_array[:min_len]
vocal_array = vocal_array[:min_len]
audio_arr = vocal_array + acc_array
sf.write("songgen_out.wav", audio_arr, model.config.sampling_rate)

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦

相关文章
|
1月前
|
人工智能 中间件 数据库
沐曦 GPU 融入龙蜥,共筑开源 AI 基础设施新底座
沐曦自加入社区以来,一直与龙蜥社区在推动 AIDC OS 的开源社区建设等方面保持合作。
|
2月前
|
人工智能 运维 安全
|
1月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
3176 45
|
1月前
|
人工智能 自然语言处理 Shell
我们开源了一款 AI 驱动的用户社区
KoalaQA 是一款开源的 AI 驱动用户社区,支持智能问答、语义搜索、自动运营与辅助创作,助力企业降低客服成本,提升响应效率与用户体验。一键部署,灵活接入大模型,快速构建专属售后服务社区。
248 5
我们开源了一款 AI 驱动的用户社区
|
1月前
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。
|
2月前
|
人工智能 安全 架构师
开放、协同,2025 云栖大会“操作系统开源与 AI 进化分论坛”精彩回顾
唯有通过生态开放与技术共享,才能加速 AI 技术的普惠与产业化落地。
|
1月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
413 29
|
1月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
472 29

热门文章

最新文章