港科大提出开放全曲音乐生成基础模型YuE:可将歌词转换成完整歌曲

news/2025/2/27 10:14:05

YuE是港科大提出的一个开源的音乐生成基础模型,专为音乐生成而设计,专门用于将歌词转换成完整的歌曲(lyrics2song)。它可以生成一首完整的歌曲,时长几分钟,包括朗朗上口的声乐曲目和伴奏曲目。YuE 能够模拟多种流派/语言/声乐技巧。

YuE(乐)在中文中意为“音乐”和“幸福”。对于那些觉得以 Yu 开头的单词发音困难的人来说,可以将其发音为“yeah”

论文介绍

从给定的歌词生成整首歌曲音乐音频称为 lyrics2song。虽然基于文本的音乐生成模型已在非人声音乐的短片段上产生了高质量的结果,但生成包含人声和伴奏部分的长达数分钟的完整歌曲仍然是一个具有挑战性的问题,我们只从几个闭源的商业系统中看到了一些令人满意的结果。

lyrics2song 的挑战主要在于:

  1. 音乐的长上下文性质

  2. 音乐信号与其他信号(语音、音频效果)相比的复杂性

  3. 扭曲的语言内容和

  4. 缺乏并行数据(歌词-音频对)。

本文提出的YuE是一系列用于 lyrics2song 的开放基础语言模型,并入了 llama 系列。该方法可以建模长达5分钟的音乐音频,在整首歌曲中遵循歌词条件,保持连贯的音乐结构,生成朗朗上口的声乐旋律和适当的伴奏。

方法

  1. 我们应用语义增强的音频标记器来降低训练成本并加速收敛

  2. 我们提出了一种双标记技术,无需修改仅使用 llama 解码器的架构即可实现音轨同步的声乐乐器建模,从而享受已建立的扩展和服务基础设施 3. 我们引入了歌词思路链,让模型根据歌词条件在单一上下文中逐步生成整首歌曲

  3. 提出了一种 3 阶段训练方案,以确保更好的可扩展性、音乐性和歌词可控性。

硬件和性能

GPU 内存

YuE 需要大量 GPU 内存来生成长序列。以下是推荐的配置:

  • 对于具有 24GB 或更少内存的 GPU:最多运行 2 个会话以避免内存不足 (OOM) 错误。感谢社区,对于那些 GPU 资源有限的用户,我们有YuE-exllamav2和YuEGP。虽然两者都提高了生成速度和连贯性,但它们可能会损害音乐性。(PS 更好的提示和 ICL 帮助!)

  • 对于完整的歌曲生成(许多会话,例如 4 个或更多):使用具有至少 80GB 内存的 GPU。即 H800、A100 或具有张量并行的多个 RTX4090。 若要自定义会话数量,界面允许您指定所需的会话数。默认情况下,模型运行2 个会话(1 个主歌 + 1 个副歌)以避免 OOM 问题。

执行时间

在H800 GPU上,生成 30 秒音频需要150 秒。在RTX 4090 GPU上,生成 30 秒音频大约需要360 秒。

安装试用

Windows 用户快速入门

  • 一键安装:https://pinokio.computer/。

  • Gradio与Docker结合使用:https://github.com/sdbds/YuE-for-windows

Linux/WSL 用户快速入门

  • Fahd视频教程:https://www.youtube.com/watch?v=RSMNH9GitbA

  • GUI/Gradio:https://github.com/WrongProtocol/YuE-exllamav2-UI

相关链接

  • 主页:https://map-yue.github.io/?continueFlag=875c0131a704a7ce2658845b9fdc657b

  • GitHub:https://github.com/multimodal-art-projection/YuE


http://www.niftyadmin.cn/n/5869935.html

相关文章

【Java项目】基于Spring Boot的旅游管理系统

【Java项目】基于Spring Boot的旅游管理系统 技术简介:采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介:旅游管理系统是一个基于Web的在线平台,主要分为前台和后台两大功能模块。前台功能模块包括(1)首…

35. Spring Boot 2.1.3.RELEASE 应用监控【监控信息可视化】

在 Spring Boot 2.1.3.RELEASE 中实现监控信息可视化可以通过多种方式,下面为你详细介绍使用 Spring Boot Actuator 结合 Grafana 和 Prometheus 以及使用 Spring Boot Admin 这两种常见方法。 方法一:Spring Boot Actuator Grafana Prometheus 1. 添…

TCP/IP 5层协议簇:数据链路层(交换机工作原理)

目录 1. 数据链路层 2. 帧 3. 工作在数据链路层的设备 4. 交换机工作原理 1. 数据链路层 数据链路层(2层Data Link Layer):传输单元是帧、这层工作的主要设备二层交换机、网卡 2. 帧 帧的结构如下:帧最大1518字节 如下&…

前端项目配置初始化

creat-vue 安装 https://cn.vuejs.org/guide/quick-start.html 官网复制npm安装语句 cmd窗口创建文件夹 npm create vue3.12.2安装webstorm启动vue项目 https://www.jetbrains.com/webstorm/download/other.html 2024.3.2.1 安装依赖 下载包node_modules package 运行服…

鸿蒙开发第4篇__关于在鸿蒙应用中使用Java语言进行设计

本博文很重要 HarmonyOS从 API8 开始不再支持使用Java作为开发语言,未来的新功能将在ArkTS中实现. API 8对应的是HarmonyOS 3.0.0版本。请看下图: 因此, 读者如果看到类似《鸿蒙应用程序开发》(2021年版本 清华大学出版计)书 还使用Java语言…

[深度学习]基于C++和onnxruntime部署yolov12的onnx模型

基于C和ONNX Runtime部署YOLOv12的ONNX模型,可以遵循以下步骤: 准备环境:首先,确保已经下载后指定版本opencv和onnruntime的C库。 模型转换: 安装好yolov12环境并将YOLOv12模型转换为ONNX格式。这通常涉及使用深度学习…

在zotero里部署papaerschat插件,以接入现有大模型

papaerschat插件里集成了openAI的GPT3.5、gpt-4o、gpt-mini大模型以及Claude3、Gemini、Deepseek等大模型。通过接入这些大模型可以辅助我们阅读论文。以部署方式如下: 1.下载zotero的插件市场,用以管理zotero里的插件。下载地址: https://…

子组件如何通过v-model实现数据的双向绑定

在 Vue 中,v-model 是一种语法糖,用于在表单元素或者组件上实现双向数据绑定。 下面分别介绍在 Vue 2 和 Vue 3 里子组件使用 v-model 实现数据双向绑定的具体方式。 Vue 2 中使用 v-model 实现双向绑定 在 Vue 2 里,v-model 本质上是 :va…