文生音乐模型人人可发单曲,DiffRhythm本地部署全实录
ztj100 2025-05-26 20:19 7 浏览 0 评论
一、前言
DiffRhythm(中文:谛韵,Dì Yùn)是第一个开源的基于扩散的音乐生成模型,能够创建完整的歌曲。该名称结合了 “Diff” (引用其扩散架构) 和 “Rhythm” (突出其对音乐和歌曲创作的关注)。中文名称 谛韵 (Dì Yùn) 在发音上反映了 “DiffRhythm”,其中 “谛” (专心聆听) 象征听觉感知,“韵” (旋律魅力) 代表音乐性。
主要有下面两个模型,base可以生成1分35秒的音乐,full版可以生成长音乐,按需选择,本次测试使用base版。
模型名称 | 下载地址 |
DiffRhythm-base (1 分 35 秒) | https://huggingface.co/ASLP-lab/DiffRhythm-base |
DiffRhythm-full (4 分 45 秒) | https://huggingface.co/ASLP-lab/DiffRhythm-full |
没有梯子把前端的域名换为https://hf-mirror.com
软硬件环境 :
名称 | 参数 |
显卡 | RTX 3090 24GB |
内存 | 64GB DDR5 |
系统 | windows11 wsl2 ubuntu24 |
二、部署
下载DiffRhythm
cd /data/
sudo git clone https://github.com/ASLP-lab/DiffRhythm.git
cd DiffRhythm
安装espeek-ng组件
## espeak-ng
# For Debian-like distribution (e.g. Ubuntu, Mint, etc.)
sudo apt-get install espeak-ng
# For RedHat-like distribution (e.g. CentOS, Fedora, etc.)
sudo yum install espeak-ng
# For MacOS
brew install espeak-ng
创建python运行虚拟环境,安装依赖
## 这里使用conda创建,如果不支持可以单独配置一下
conda create -n diffrhythm python=3.10
conda activate diffrhythm
#安装所需要的依赖,指定国内源就会秒成功
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
下载DiffRhythm-base模型
cd /data/DiffRhythm
sudo git clone https://hf-mirror.com/ASLP-lab/DiffRhythm-base ASLP-lab/DiffRhythm-base
生成音乐
python infer/infer.py --lrc-path infer/example/eg_cn.lrc --ref-audio-path infer/example/eg_cn.wav --audio-length 95 --repo_id ASLP-lab/DiffRhythm-base --output-dir infer/example/output --chunked
首先运行会很慢,要下载需要下载pytorch,还有可能报错,比如缺少模块,我这里缺少py3langid,使用下面命令安装即可。
pip install py3langid -i https://pypi.tuna.tsinghua.edu.cn/simple
还有可能无法下载,因为网络问题,报错如下:关键错是:network is unreachable
python infer/infer.py --lrc-path infer/example/eg_cn.lrc --ref-audio-path infer/example/eg_cn.wav --audio-length 95 --repo_id ASLP-lab/DiffRhythm-base --output-dir infer/example/output --chunked
Current working directory: /data/DiffRhythm-main
Traceback (most recent call last):
File "/home/chuan/miniconda3/envs/diffrhythm/lib/python3.10/site-packages/urllib3/connection.py", line 198, in _new_conn
sock = connection.create_connection(
File "/home/chuan/miniconda3/envs/diffrhythm/lib/python3.10/site-packages/urllib3/util/connection.py", line 85, in create_connection
raise err
File "/home/chuan/miniconda3/envs/diffrhythm/lib/python3.10/site-packages/urllib3/util/connection.py", line 73, in create_connection
sock.connect(sa)
OSError: [Errno 101] Network is unreachable
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/chuan/miniconda3/envs/diffrhythm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
response = self._make_request(
File "/home/chuan/miniconda3/envs/diffrhythm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 488, in _make_request
raise new_e
File "/home/chuan/miniconda3/envs/diffrhythm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 464, in _make_request
self._validate_conn(conn)
File "/home/chuan/miniconda3/envs/diffrhythm/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1093, in _validate_conn
conn.connect()
可以临时设置一下环境变量:
export HF_ENDPOINT=https://hf-mirror.com
#然后再执行生成音乐脚本
python infer/infer.py --lrc-path infer/example/eg_cn.lrc --ref-audio-path infer/example/eg_cn.wav --audio-length 95 --repo_id ASLP-lab/DiffRhythm-base --output-dir infer/example/output --chunked
参数解释:
--lrc-path lrc歌词的完整地址,你可以从网上下载lrc歌词或者使用模型生成lrc歌曲,放到指定的目录即可,这里有很多歌词https://www.wagequ.com/
--ref-audio-path 引用参考的音乐,生成的音乐会与这个参数音乐在旋律上有很大相同之处,具体自己可以测试,这个参考音乐可以从网上下载,我找到一个网站在这里分享一下。https://www.xmwav.com/
--audio-length 音乐的长度,base模型最大支持95秒,full最大支持285秒
--repo_id 指定模型,当前使用是base模型
--output-dir 生成的音乐输出的目录,在这个目录里会生成一个output.wav的文件,下载就可以播放了
在这里可以试用:
https://huggingface.co/spaces/ASLP-lab/DiffRhythm
如下我放了一个《下一个天亮》的歌词
三、后话
1、看试用地址里高级设置还能设置输出格式如mp3,还能配置seed、diffusion steps、CFG Strength等。
2、现在还不支持docker部署,从作者的TODO可以看出以后也会支持
TODOs
- Dynamic length control
- Vocals only
- Song extension
- Support Colab.
- Support Docker.
- Release DiffRhythm-full.
- Release training code.
- Support local deployment.
- Release paper to Arxiv.
- Online serving on Hugging Face Space.
创作不易 点赞 关注 收藏
相关推荐
- Spring IoC Container 原理解析
-
IoC、DI基础概念关于IoC和DI大家都不陌生,我们直接上martinfowler的原文,里面已经有DI的例子和spring的使用示例...
- SQL注入:程序员亲手打开的潘多拉魔盒,如何彻底封印它?
-
一、现象:当你的数据库开始"说话",灾难就来了场景还原:...
- Java核心知识3:异常机制详解
-
1什么是异常异常是指程序在运行过程中发生的,由于外部问题导致的运行异常事件,如:文件找不到、网络连接失败、空指针、非法参数等。异常是一个事件,它发生在程序运行期间,且中断程序的运行。...
- MyBatis常用工具类三-使用SqlRunner操作数据库
-
MyBatis中提供了一个非常实用的、用于操作数据库的SqlRunner工具类,该类对JDBC做了很好的封装,结合SQL工具类,能够很方便地通过Java代码执行SQL语句并检索SQL执行结果。SqlR...
- 爆肝2W字梳理50道计算机网络必问面试题
-
1.说说HTTP常用的状态码及其含义?思路:这道面试题主要考察候选人,是否掌握HTTP状态码这个基础知识点。...
- SpringBoot整合Vue3实现发送邮箱验证码功能
-
1.效果演示2.思维导图...
- 最全JAVA面试题及答案(200+)
-
Java基础1.JDK和JRE有什么区别?JDK:JavaDevelopmentKit的简称,Java开发工具包,提供了Java的开发环境和运行环境。JRE:JavaRunti...
- Java程序员找工作翻车现场!你的项目描述踩了这几个坑?
-
Java程序员找工作翻车现场!你的项目描述踩了这几个坑?噼里啪啦敲了三年代码,简历一投石沉大海?兄弟,问题可能出在项目描述上!知道为什么面试官看你的项目像看天书吗?因为你写了三个致命雷区:第一,把项目...
- 2020最新整理JAVA面试题附答案,包含19个模块共208道面试题
-
包含的模块:本文分为十九个模块,分别是:Java基础、容器、多线程、反射、对象拷贝、JavaWeb、异常、网络、设计模式、Spring/SpringMVC、SpringBoot/Spring...
- 底层原理深度解析:equals() 与 == 的 JVM 级运作机制
-
作为Java开发者,你是否曾在集合操作时遇到过对象比较的诡异问题?是否在使用HashMap时发现对象丢失?这些问题往往源于对equals()和==的误解,以及实体类中这两个方法的不当实...
- 雪花算法,什么情况下发生 ID 冲突?
-
分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的...
- 50个Java编程技巧,免费送给大家
-
一、语法类技巧1.1.使用三元表达式普通:...
- 如何规划一个合理的JAVA项目工程结构
-
由于阿里Java开发手册对于工程结构的描述仅限于1、2节简单的概述,不能满足多样的实际需求,本文根据多个项目中工程的实践,分享一种较为合理实用的工程结构。工程结构的原则有依据、实用。有依据的含义是指做...
- Java 编程技巧之单元测试用例编写流程
-
温馨提示:本文较长,同学们可收藏后再看:)前言...
- MyBatis核心源码解读:SQL执行流程的奇妙之旅
-
MyBatis核心源码解读:SQL执行流程的奇妙之旅大家好呀!今天咱们要来一场既烧脑又有趣的旅程——探索MyBatis这个强大框架的核心秘密。你知道吗?当你在项目里轻轻松松写一句“select*f...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)
- vmware17pro最新密钥 (34)
- mysql单表最大数据量 (35)