问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

文生音乐开源项目DiffRhythm,8G显存本地部署之Windows篇

创作时间:
作者:
@小白创作中心

文生音乐开源项目DiffRhythm,8G显存本地部署之Windows篇

引用
1
来源
1.
https://qiucode.cn/article/232/

一、DiffRhythm:颠覆音乐创作的AI黑科技

DiffRhythm是由西北工业大学音频语音与语言处理实验室(ASLP@NPU)与香港中文大学(深圳)联合开发的开源音乐生成模型,其采用全扩散架构,能够在10秒内生成4分45秒的高质量双轨立体声音乐(包含人声与伴奏) 。该模型以非自回归结构实现极速推理,支持纯文字风格描述生成音乐(如"Jazzy Nightclub Vibe"或"Arctic research station, theremin auroras"等创意场景) ,且最低仅需8GB显存即可本地部署。

技术亮点

  1. 端到端生成:无需多阶段拼接,直接输出完整歌曲;

  2. 句级歌词对齐:通过音素映射实现人声与歌词精准同步;

  3. 压缩鲁棒VAE:支持从MP3等压缩格式还原无损音质;

  4. 多模态输入:兼容文本提示、参考音频、歌词等多类型输入。

本地部署

我电脑依旧是使用

python 3.10.9

,而仍然使用

python3

自带的

venv

模块来搭建

python 虚拟环境

当然咯,你也非得要跟我一样,你也可以使用

python 3.11.X

python 3.12.x

,用

anaconda

miniconda

来构建

python 虚拟环境

,这一点,并没有什么特定要求。

创建

python 虚拟环境

你可以在电脑任一磁盘较为

宽裕

,来构建一个

python 虚拟环境

下载

DiffRhythm

推理代码

你得确保你的电脑安装好了

git

,否则的话,将无法通过以下命令进行

clone DiffRhythm

推理代码。

至于这么安装

git

工具,就不在这里进行赘述了,毕竟我前几篇文章是有讲解过的。


git clone https://github.com/ASLP-lab/DiffRhythm.git  

cd DiffRhythm  

安装

espeak-ng

DiffRhythm

生成的音乐包含人声演唱的歌词,这需要将文本歌词转化为音素序列(如国际音标

IPA

),并精确映射到音频的时间轴上。

eSpeak-NG

作为开源音素合成引擎,在此环节发挥关键作用:

  1. 音素解析:将用户输入的歌词(如中文、英文)转换为标准音素表示,例如中文

你好

/ni haʊ/

,确保模型理解发音规则。

  1. 发音规则库支持

eSpeak-NG

内置100+语言的音素规则库,能够处理多语言歌词混合场景(如中英双语歌曲),避免发音错误。

  1. 对齐算法依赖:DiffRhythm通过句子级对齐机制,将音素序列映射到潜在表示的特定位置,确保生成的歌声与歌词在时间轴上严格同步。eSpeak-NG提供底层音素时间戳数据支撑这一过程。

我们直接下载

espeak-NG

官方编译好的安装包,https://github.com/espeak-ng/espeak-ng/releases。

双击刚刚下载的

espeak-ng.msi

,一路

Next

下去就好了。

还需将

espeak-ng

安装路径添加到

PATH

环境变量中。

安装项目所需的依赖

这一步是必不可少的,毕竟现代的项目都是

集成

项目,换句话说,一个大项目或多或少需要去

集成

优秀的

框架

工具库

等。


pip install -r requirements.txt  

在国内,我们还是先设置一个国内镜像源,以便下载依赖库能够加快些,毕竟,

pypi.org

在国内访问起来真是

一言难尽啊

,就更别说再去

pypi.org

下载什么依赖库了。

下载模型

我们可以通过

HuggingFace.co

的国内镜像站

hf-mirror.com

进行下载模型。

DiffRhythm-base

模型地址:https://hf-mirror.com/ASLP-lab/DiffRhythm-base/tree/main

我们仍然是通过

git

工具来下载模型,所以,你的电脑得提前安装好

git

,是很有必要的。


git clone https://hf-mirror.com/ASLP-lab/DiffRhythm-base ASLP-lab/DiffRhythm-base  

运行

python infer/infer.py

当模型下载完成了之后,这时,我们便可以通过以下命令,来生成音乐了。


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  

倘若,你运行了上述命令后,也出现了与下图一样的错误。

那么,你需要在

DiffRhythm\infer\infer_utils.py

文件中添加如下

语句


from sys import path  

path.append(os.getcwd())  

之所以出现找不到

model

这个模块,那是这是属于

DiffRhythm

自定义的模块,而我们本地暂时没把

DiffRhythm

这个路径添加到

python

模块所识别。

修改文件并保存后,再次运行后,却出现了在

windows

系统下常见的错误——

字符编码错误

那么,我们按照错误提示,依次对文件所在的行,进行相应的修改。

可当我们,再次运行后,却依旧是出错了,然而,这次给出的错误提示,是没有

inflect

这个模块。

以及

CUDAExecutionProvider

,很显然,我们之前安装的

torch

cpu

版本的,以至于无法调用

CUDA

我们可以通过

pip torch show

来查看当前安装的

torch

版本信息,从下图,我们可以看出,

requirements.txt

文件中的

torch

cpu

版本,所以,我们先卸载它,而后安装

CUDA

版本的

torch


pip uninstall torch torchaudio torchvision  

等把

CPU

版的

torch

卸载完成后,我们执行以下命令来安装

CUDA

版本的

torch


pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124  

之后,我们再次查看

torch

版本信息时,这回,就是项目所需的了。

那么,我们就安装这个

inflect

依赖。


pip install inflect  

CUDA

版本的

torch

也安装好了,这回总该可以运行成功了吧。

然而,事情总是与你想的不是那么一回事。要是,能按我们的想法进行下去,就不会有

事与愿违

这个成语了,

人生也就不会有那么多的不如意了

从报错的信息来看,说我们的系统没有安装

espeak

,我们明明却安装了,可项目为什么会找不到呢?

还是

按图索骥

的在抛出错误的这些文件修改。

DiffRhythm\g2p\utils\g2p.py

这个文件添加如下代码。


from phonemizer.backend.espeak.wrapper import EspeakWrapper  

_ESPEAK_LIBRARY = "C:\Program Files\eSpeak NG\libespeak-ng.dll"  

EspeakWrapper.set_library(_ESPEAK_LIBRARY)  

保存修改好的文件后,我们再次运行,其实,经过几次的

挫败

,我们已然对这次还会抛出什么

幺蛾子

的问题,已不再是那么

惊愕

了,而是有了一种

如果在报错的话,那就明天再弄吧,先看会儿电视剧,别整这个破玩意儿,这个人都郁闷了,那就不好了。

可是,这回却

出乎你的意料

,而又在

情理之中

,却运行成功了。

那么,我们使用DeepSeek`为我们编写一首歌词。

再次运行它。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号