so-vits-svc:AI翻唱,语音克隆

img

前言

这个项目是为了让开发者最喜欢的动画角色唱歌而开发的,任何涉及真人的东西都与开发者的意图背道而驰。

项目地址:https://github.com/svc-develop-team/so-vits-svc/blob/4.1-Stable/README_zh_CN.md

安装

可以自行配置,应该也不难

img

也可以下载配置好的百度网盘:链接: https://pan.baidu.com/s/1iAhrkvlWry3gIe_EnpB7NQ

提取码: 2ftj

数据预处理

首先准备1小时以上的歌声文件,最好是WAV格式

来带下载的文件UVR5目录,解压安装UVR5,把模型文件放入model目录下,覆盖即可

img

img

UVR5可以对语音文件进行伴奏分离,去除和声,去除混响回声,打开UVR5

img

把音频文件输入输出目录,和模型类型,具体模型,勾选GPU conversion,WAV,基本选择这些就可以,其他默认,或者微调

提取人声的顺序流程是分离伴奏——去除和声——去除混响和回声

分离伴奏-MDX_Net_Models或Demucs_Models

分离伴奏可以从以下方法任选其一:

  1. (苹果用户专享)使用 Ripple 分离人声
  2. 剪映专业版+录屏(直接导出要开VIP,录屏可以白嫖,而且没有音质损失)
  3. 使用 UVR5 - MDX23C-InstVoc HQ 或v3|UVR_Model_1模型

其中前2个使用的是字节跳动的闭源技术内核,因此可能需要收费。第三个方法是目前最强的开源分离模型,但效果可能没有前2个好。

去除和声-VR_Models

使用 UVR5 的去除和声模型(以下三个任选其一)

    1. UVR-BVE-4B_SN-44100-1 (Instrumental Only)
    2. 5_HP_Karaoke-UVR (Vocals Only) (比6激进,有可能会扣过头)
    3. 6_HP_Karaoke-UVR (Vocals Only)(没有5激进)

去除混响和回声-VR_Models

使用 UVR5 的去混响模型(以下三个任选其一)

    1. UVR-De-Echo-Normal选No Echo Only(轻度混响)
    2. UVR-De-Echo-Aggressive选No Echo Only(重度混响)
    3. UVR-De-Echo-Dereverb选No Echo Only(遇到鸟之诗这种变态的混响可以用)

使用 UVR5 需要确保 UVR 版本在 5.6.0 以上,如果UVR里面没上述模型,点小扳手,去 Download Center 里面下载模型(请自备科学上网,否则会下载失败)

音频切分

之前用的一直是这个,对比了webui自带的,感觉对空白音频去除的更干净

https://github.com/flutydeer/audio-slicer

点击最下面webui bat文件来到webui,tensorboard是查看训练日志信息的img

输入之前去伴奏,去回声,去混响,处理好的音频文件,输入路径,和输出路径,加载后切分

img

之后把切分的音频文件放入data_raw目录下,一个文件夹代表一个人声

img

img

训练

点击识别训练集,数据预处理,重新生成配置文件

img

img

参数选择:基本调一下保存的模型个数,没多少步保存一次模型,一轮步数=音频数量/批量大小

然后保存设置,导入配置文件

img

关于预训练模型

预训练模型(底模)是指使用大量高质量数据集训练得来的模型。使用底模辅助你的训练将可以极大增强模型的性能并大幅减少训练难度。整合包会根据你所选择的编码器、网络结构在训练时自动加载底模。目前整合包内含有以下底模:

标准底模响度嵌入响度嵌入 + TINY完整扩散100 步浅扩散
Vec768L12
Vec256L9
hubertsoft
whisper-ppg

关于浅扩散步数(训练)

在 v2.3.6 之前的版本,浅扩散模型是训练完整 1000 步深度的,但在大多数情况下,推理时很少会用到完整深度扩散。可以只训练一个特定步数深度的浅扩散模型(“100步深度”,注意不等同训练时只训练100步,和训练步数是完全不同的概念),由此可以进一步加快浅扩散的训练速度。在理论和实践测试中,只训练部分步数浅扩散的模型表现也比纯扩散模型更好。但代价是在推理时无法进行超过该步数的浅扩散推理。

关于聚类模型

聚类方案可以减小音色泄漏,使得模型训练出来更像目标的音色(但其实不是特别明显),但是单纯的聚类方案会降低模型的咬字(会口齿不清,这个很明显)。本模型采用了融合的方式,可以线性控制聚类方案与非聚类方案的占比,也就是可以手动在"像目标音色" 和 “咬字清晰” 之间调整比例,找到合适的折中点,使用聚类只需要额外训练一个聚类模型,虽然效果比较有限,但训练成本也比较低。

然后依次训练模型

img

什么时候停止训练?

可以通过cmd命令行查看loss值,如果一直无法下降可以ctrl c停止,或者tensorboard是查看训练日志信息来看什么时候停止

第一个是必须有的,至于扩散和聚类模型是可选的

推理

这里拿之前比较火的孙燕姿语音试试

img

img

如果是克隆歌声,声音数据必须是干声,然后音频转换,

f0预测器可以选crepe或rmvpe,fcpe,具体看效果

在UVR5可以对语音文件进行伴奏分离,去除和声,去除混响回声,得干声数据,音频转换后再使用剪辑软件把之前分离的伴奏,混响回声合并(和声感觉加上去有点像杂音)

如果转换识别失败,可能输入音频时长过长,最好不超过1分半,

不要用切分工具切分,它会把空白也去掉了

img

自动 f0 预测

基本上是一个自动变调功能,可以将模型音高匹配到推理源音高,用于说话声音转换时可以打开,能够更好匹配音调。

f0 预测器

在推理时必须选择一个 f0 预测算法。以下是各个预测器算法在推理时的优缺点:

预测器优点缺点
pm速度快,占用低容易出现哑音
crepe基本不会出现哑音显存占用高,自带均值滤波,因此可能会出现跑调
dio-可能跑调
harvest低音部分有更好表现其他音域就不如别的算法了
rmvpe六边形战士,目前最完美的预测器几乎没有缺点(极端长低音可能会出错)
fcpeSVC 开发组自研,目前最快的预测器,且有不输 crepe 的准确度-

关于浅扩散步数(推理)

完整的高斯扩散为 1000 步,当浅扩散步数达到 1000 步时,此时的输出结果完全是扩散模型的输出结果,So-VITS 模型将被抑制。浅扩散步数越高,越接近扩散模型输出的结果。如果你只是想用浅扩散去除电音底噪,尽可能保留 So-VITS 模型的音色,浅扩散步数可以设定为 30-50.

最后看看效果,

Adobe Audition或剪映合并

img

孙燕姿演唱最后一页

链接

从外部迁移模型(放入对应文件夹)

推理 (Inference) 是指将输入源音频通过 So-VITS 模型转换为目标音色的过程。因此,执行 So-VITS 的推理过程,你必须拥有:

名称文件后缀存放目录描述
So-VITS 模型.pth.\logs\44k推理所必须的神经网络模型
配置文件.json.\configs存放模型参数的配置文件,必须与模型一一对应

除此之外,还有一些文件属于可选项,能够执行推理的扩展功能。即使缺失也可以正常执行推理:

名称文件后缀存放目录描述
聚类 (Kmeans) 模型.pt.\logs\44k执行混合聚类方案必须的模型
扩散模型.pt.\logs\44k\diffusion执行浅扩散推理必须的模型
扩散模型配置文件.yaml.\configs存放扩散模型参数的配置文件,必须与模型一一对应
特征索引模型.pkl.\logs\44k执行混合特征索引必须的模型

模型兼容(如果有问题修改)

在configs文件夹内用文本编辑器打开模型的对应配置文件,找到 "n_speakers" 项,在这一行最后添加一个英文逗号(“,”),然后添加新的两行:

"speech_encoder": "vec256l9",  //如果是Vec768模型,这一项改为"vec768l12"
"speaker_embedding": false

⚠️请注意 “speech_encoder” 行后有一个英文逗号,而 “speaker_embedding” 后没有英文逗号。

简单个人娱乐!切勿作恶!后果自行承担!

参考:https://www.yuque.com/umoubuton/ueupp5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1424213.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HCIP【Hybird实验】

目录 一、实验拓扑图: 二、实验要求: 三、实验思路: 四、实验过程: 1、配置PC的IP地址(不用配置网关,这个拓扑图没有使用到三层设备) 2、交换机配置 3、PC间进行测试: 一、实…

机器学习笔记 KAN网络架构简述(Kolmogorov-Arnold Networks)

一、简述 在最近的研究中,出现了号称传统多层感知器 (MLP) 的突破性替代方案,重塑了人工神经网络 (ANN) 的格局。这种创新架构被称为柯尔莫哥洛夫-阿诺德网络 (KAN),它提出了一种受柯尔莫哥洛夫-阿诺德表示定理启发的函数逼近的方法。 与 MLP 不同,MLP 依赖于各个节…

白鹿以前的短视频:四川京之华锦信息技术公司

白鹿以前的短视频:时光剪影中的创意火花与成长轨迹 在短视频风起云涌的互联网时代,每一位创作者的早期作品都如同时间胶囊,封存着最初的创意与梦想。提及“白鹿”这一名字,不少人心中会立刻浮现出那个凭借独特风格和不懈努力&…

代码复现|Demucs Music Source Separation

一、背景介绍 Demucs是一个开源的音源分离项目。 Demucs在算法层面前后经历了三次大版本的进化,最原始的V1版本是:编解码LSTM。具体算法原理图如下所示。该版本在时域进行音源分离。关于阅读笔记请点击这篇文章。 V1版本原理图 V2版本是同时使用时域和频…

Jmeter(四十一) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 下篇(详解教程)

宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是…

超级数据查看器 教程合集 整理版本 pdf格式 1-31集

点击下载 超级数据查看器 教程合集整理版本 pdf格式https://download.csdn.net/download/qq63889657/89311725?spm1001.2014.3001.5501

使用vcpkg与json文件自动安装项目依赖库

说明 本文记录自己使用vcpkg.json文件自动安装依赖库并完成编译的全过程。 关于vcpkg是什么这里就不多详细解释,可以看一下专门的介绍及安装的文章,总之了解这是一个C的包管理工具就可以了。 流程 下面介绍从GitHub上克隆C项目以及为这个项目安装所需…

财务数据分析:财务报表指标中的奥秘

财务指标分析是基本面分析的核心,如果学会了分析的框架,就能看出很多别人看不出的东西。所以说,财务指标分析非常重要。财务分析主要可以分为成长能力、盈利能力、现金流量、偿债能力、营运能力、收益质量、资本结构这几个方面。本文主要围绕…

stack、queue、priority_queue以及仿函数

我们上次对std中的list进行实现,今天我们要实现stack、queue、priority_queue以及仿函数。 目录 stack堆堆的框架构造函数push插入pop删除size()大小empty()判断空top()取栈顶的元素 queue队列队列框架问题: 这里我们为什么用deque? 插入删除取头数据取…

渲染农场是什么意思?瑞云渲染为你解答

渲染农场是一种通过集合多台计算机的计算能力来加速图像渲染过程的系统。它尤其适用于动画、电影特效和高端视觉效果的制作,这些领域通常需要处理非常复杂和计算密集型的渲染任务。 渲染农场就是一大群电脑,他们一起可以快速渲染出漂亮的图像。在做动画片…

无代码无国界:我们正在走向软件安全的狂野西部吗?

我们使用的几乎所有东西都是基于代码构建的,从汽车到智能冰箱再到门铃。在企业中,无数的应用程序保持设备、工作流程和操作的运行。因此,当早期的无代码开发平台于 2010 年推出时,承诺为公民开发人员提供更易于访问的应用程序开发…

CDGA|揭秘移动物联网数据治理秘诀,轻松提升数据质量,赋能智慧未来

在数字化浪潮汹涌的今天,移动物联网作为连接物理世界与数字世界的桥梁,其数据治理的重要性日益凸显。高质量的数据不仅是企业决策的基石,更是推动行业智能化、精细化发展的关键。本文将为您揭秘移动物联网数据治理的技巧,助您轻松…

通俗理解向量:从One-hot 到词嵌入

在NLP任务中,将文本转换为向量是一个必要的步骤,这个过程被称为词嵌入。 很多同学在学习过程中,对向量这一概念很模糊,或者无法理解:为什么要把一个单独的token,或者一个数字,在转换为复杂的向…

2024最新互联网公司工作时长排行榜出炉!

“工作时长”,是选择公司的一个非常重要的参考指标。 我们在选择一个公司的时候,除了需要关注总收入package 以外,还需要考虑这家公司的加班时长是否人性化。 我们的工作时长是周工作小时数。法定工作时间是40小时(955)。大小周通常折算为周…

【OceanBase诊断调优】—— 备份恢复如何定位 NFS 服务异常

当备份、归档出现异常时,我们应该首先排除备份介质、网络是否正常,本文讲述如何通过系统表和日志来定位 NFS 服务异常。 适用版本 OceanBase 数据库所有版本。 如何查看备份归档异常? 查看备份归档状态表,MAX_NEXT_TIME 应与当…

C# WinForm —— 21 RichTextBox 使用

1. 加载文件到控件中 加载文件时,要设置文件的路径和类型RichTextBoxStreamType,文件类型包含: RichText 0:富文本格式(RTF)流PlainText 1:纯文本流对象链接和嵌入(OLE&#xff…

LVM - Linux磁盘逻辑卷管理器概念讲解、实践及所遇到的问题

1、lvm概念 逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(Logi…

2024年网络安全威胁

随着2024年的到来,数字世界的版图正在以前所未有的速度扩张,引领我们进入一个技术革新的新时代。然而,这飞速的发展同时也催生了一系列错综复杂的网络安全挑战。在这个数字平台与我们生活日益紧密交织的时代,深入了解这些新兴的威…

云服务器和物理机该怎样分别呢

随着网络的不断发展,服务器的类型也在以不同的方式更新。现在云服务器的兴起占据了很大一部分市场,物理机的市场份额受到了很大的冲击。物理机和云服务器有什么区别?如何选择适合自己需求的?虽然物理服务器和云服务器都是服务器&a…