SongGeneration来袭!腾讯AI Lab开源的音乐生成大模型,功能强大到令人惊叹

随着人工智能技术的飞速发展,AI在音乐创作领域的应用逐渐崭露头角。腾讯AI Lab开源的SongGeneration项目,为音乐生成领域带来了新的突破和可能性,它不仅能够提升音乐创作的效率,还能激发创作者的灵感,为音乐产业注入新的活力。

一、项目概述

SongGeneration是腾讯AI Lab推出的一款基于大模型的音乐生成工具,它通过先进的技术架构和算法,实现了高质量的音乐生成。该项目支持文本控制、多轨合成、风格跟随等功能,能够满足创作者在不同场景下的音乐创作需求。SongGeneration在多个维度上的表现优于多数开源模型,部分指标甚至媲美商业闭源模型,广泛应用于短视频配乐、游戏音效、虚拟人演出、商业广告及个人音乐创作等领域,推动了AI音乐创作从“辅助工具”迈向“智能共创”的新阶段。

二、技术原理

(一)LeLMLanguage Model

LeLMSongGeneration的核心组件之一,它能够并行预测混合标记(Mixed Tokens)和双轨标记(Dual-Track Tokens)。混合标记代表人声和伴奏的组合音频,用于捕捉歌曲的整体结构和节奏,确保人声与伴奏的和谐;双轨标记则分别编码人声和伴奏,用于生成高质量的音频细节。LeLM通过并行预测这两种标记,避免了不同标记类型之间的干扰,提高了生成质量和效率。


(二)音乐编解码器(Music Codec

音乐编解码器负责将音乐音频提取为混合标记和双轨标记,并将双轨标记重建为高保真的音乐音频。编码器将音乐音频转化为离散的标记序列,而解码器则将这些标记重建为高质量的音频信号,确保生成的歌曲具有出色的音质表现。


(三)多偏好对齐(Multi-Preference Alignment

SongGeneration采用基于直接偏好优化(DPO)的多偏好对齐方法,通过半自动数据构建和DPO后训练,处理多样化的人类偏好。这种方法能够提升模型在音乐性、指令遵循和人声与伴奏和谐方面的表现,使生成的音乐更符合人类的审美和创作需求。


(四)三阶段训练范式

1. 预训练(Pre-training在大规模音乐数据上进行预训练,对齐不同输入模态和混合标记,为后续的训练奠定基础。

2. 模块扩展训练(Modular Extension Training进一步训练AR解码器,建模双轨标记,提升音质和音乐性,同时保留预训练阶段的知识。

3. 多偏好对齐(Multi-Preference Alignment基于DPO后训练,优化模型在多维度偏好上的表现,使模型能够更好地遵循指令和生成高质量的音乐。


三、主要功能

(一)文本控制

用户可以通过输入关键词文本,如“开心 流行”,快速生成对应风格和情绪的完整音乐作品。这种功能使得音乐创作更加便捷和直观,创作者可以根据自己的创意和需求,轻松生成符合主题的音乐。


(二)风格跟随

用户可以上传10秒以上的参考音频,SongGeneration能够生成风格一致的全长新曲,涵盖多种流派。这一功能为创作者提供了强大的风格迁移能力,能够快速探索不同风格的音乐创作。


(三)多轨生成

SongGeneration能够自动生成分离的人声与伴奏轨道,保证旋律、结构、节奏与配器的高度匹配。这种多轨生成能力不仅提高了音乐的制作质量,还为后续的音乐编辑和混音提供了更大的灵活性。


(四)音色跟随

基于参考音频的音色跟随,SongGeneration能够实现“音色克隆”级别的人声表现,自然且有情感。这一功能对于需要特定音色的音乐创作场景非常有价值,能够帮助创作者实现独特的音色效果。


四、应用场景

(一)音乐创作

SongGeneration为音乐人和制作人提供了高质量歌曲草稿,节省了创作时间,使创作者能够更专注于核心创作部分,激发更多创意。

(二)娱乐产业

在影视、游戏、广告等娱乐领域,SongGeneration能够快速生成契合需求的配乐,增强作品的沉浸感与吸引力,丰富音乐内容。

(三)教育领域

作为音乐教育工具,SongGeneration可以帮助学生理解音乐基础知识,激发创造力,辅助在线课程提供示例歌曲,提升教学效果。

(四)广告和营销

SongGeneration能够为广告和品牌生成贴合主题的音乐,提升广告的吸引力和品牌认同感,助力品牌营销。

(五)个人娱乐

普通用户可以使用SongGeneration创作个性化歌曲,表达情感,分享到社交平台,增添娱乐互动的乐趣。


五、快速使用

(一)环境准备

1. 从头开始安装

使用`requirements.txt`文件安装必要的依赖项:

pip install -r requirements.txt --no-deps

安装flash attention

pip install https://github.com/Dao-AILab/flash-attention/releases/download/v2.6.3/flash_attn-2.6.3+cu118torch2.2cxx11abiFALSE-cp310-cp310-linux_x86_64.whl

2. 使用Docker部署

拉取Docker镜像并运行:

docker pull juhayna/song-generation-levo:hf0613docker run -it --gpus all --network=host juhayna/song-generation-levo:hf0613 /bin/bash

(二)模型下载与配置

Hugging Face下载所需的模型文件(`ckpt``yaml`文件),并将其保存到项目的根目录或指定的检查点目录中。


(三)输入文件准备

– 创建一个JSON Lines格式的输入文件(`.jsonl`),每行代表一个音乐生成请求。输入文件应包含以下字段:

– `idx`:输出歌曲的唯一标识符,将用作生成音频文件的名称。

– `gt_lyric`:用于生成的歌词,必须遵循`[Structure] Text`的格式,其中`Structure`定义音乐部分(例如`[Verse]``[Chorus]`)。

– `descriptions`(可选):自定义文本提示,用于指导模型生成,可以包括性别、音色、流派、情感、乐器和BPM等属性。

– `prompt_audio_path`(可选):10秒参考音频文件的路径,如果提供,模型将生成类似风格的新歌曲。

– `auto_prompt_audio_type`(可选):如果未提供`prompt_audio_path`,模型将根据给定的风格自动从预定义库中选择参考音频。


(四)运行生成脚本

使用以下命令运行生成脚本:

sh generate.sh ckpt_path lyrics.jsonl output_path

如果GPU内存小于30GB或遇到内存不足错误,使用低内存模式:

sh generate_lowmem.sh ckpt_path lyrics.jsonl output_path


(五)示例输入与输出

示例输入文件`lyrics.jsonl`

{"idx": "song1", "gt_lyric": "[intro-short] ; [verse] These faded memories of us. I can't erase the tears you cried before. Unchained this heart to find its way. My peace won't beg you to stay ; [chorus] Like a fool begs for supper. I find myself waiting for her. Only to find the broken pieces of my heart. That was needed for my soul to love again", "descriptions": "female, dark, pop, sad, piano and drums, the bpm is 125"}

输出目录`output_path`将包含生成的音频文件和JSON Lines输出文件。


六、结语

SongGeneration作为腾讯AI Lab开源的音乐生成大模型,凭借其强大的功能和先进的技术原理,为音乐创作领域带来了新的变革。它不仅能够满足专业音乐人和制作人的创作需求,还能为普通用户提供个性化的音乐创作体验。随着技术的不断发展和优化,SongGeneration有望在更多领域发挥更大的作用,为音乐产业的发展注入新的动力。


七、项目地址

技术论文https://arxiv.org/pdf/2506.07520

GitHub仓库https://github.com/tencent-ailab/SongGeneration

Hugging Face模型库https://huggingface.co/tencent/SongGeneration

在线体验Demohttps://huggingface.co/spaces/tencent/SongGeneration


(文:小兵的AI视界)

发表评论