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

news2024/9/22 7:38:36

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.coloradmin.cn/o/1678772.html

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

相关文章

做简单易用的GIS资源管理软件

在室外资源管理领域,采用基于GIS的解决方案已成为主流趋势,旨在实现资源的高效利用和管理。GIS技术结合资源对象的规划、定位和监控,为企业提供全面的管理方案,从而优化资源使用、提高运营效率和降低成本。 然而,许多资…

新手也能看懂的前端单元测试框架:Vitest

单元测试的概念及作用 1.什么是单元测试? 单元测试是测试中的一个重要环节,它针对软件中的最小可测试单元进行验证,通常是指对代码中的单个函数、方法或模块进行测试。 单元测试旨在确定特定部分代码的行为是否符合预期,通过针…

618值得入手的数码好物如何选?热门爆款数码好物清单分享

618购物节即将到来,作为年中最重要的购物狂欢盛会之一,各大电商平台将推出众多优惠活动。如果你正准备购买数码产品,那么不要错过这个机会。在本文中,我们将为你介绍几款值得关注的热门数码产品,帮助你在618购物节中做…

linux使用教程(命令介绍、命令格式和命令的使用技巧)

一、命令的格式 1.1 打开终端的方式 ubuntu中的命令基本都是在终端执行的 打开终端的方式: 第一种方法:在ubuntu桌面中鼠标右键选择“打开终端” 第二种方法:使用快捷键ctrl alt t 1.2 终端提示符 stuqfedu:~$ 对于这个提示符 stu&…

css画三角形

使用border div {border-top: 50px solid yellowgreen;border-bottom: 50px solid deeppink;border-left: 50px solid bisque;border-right: 50px solid chocolate; }如果想要单个的三角形,把其它三边的颜色设为transparent即可 使用 conic-gradient 绘制三角形 …

Mysql数据库二进制日志导致磁盘满了处理过程

数据库的二进制日志是数据库管理系统(DBMS)用来记录所有对数据库进行修改的操作的记录。这种日志对于数据库的备份、恢复、复制和审计等操作至关重要。 以MySQL数据库为例,二进制日志(Binary Log)记录了所有更改数据的…

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

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

QT状态机2-含终止状态的嵌套状态机

#include "MainWindow.h" #include "ui_MainWindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)

有哪些好用的3dMax大神插件?

有哪些好用的3dMax大神插件? Mesh Insert 3DMAX网格插入插件Mesh Insert,在选择的面上安门窗、打螺丝、挖洞、插入眼耳口鼻及其它网格模型等可以分分钟搞定!它通过将面选择替换为库中的资源来加快建模过程。非常适合硬网格和有机建模&#xf…

NVM镜像源报错:Could not retrieve https://npm.taobao.org/mirrors/node/index.json.

NVM镜像源报错:Could not retrieve https://npm.taobao.org/mirrors/node/index.json. 淘宝前端node镜像源已更换 NVM安装教程:http://t.csdnimg.cn/dihmG 背景 笔者在安装版本切换工具NVM时,配置完镜像源后,在控制台输入&#x…

CSS 根据子元素选择父元素,并设置父元素的样式

场景举例&#xff1a;当子元素有增加了一个class时&#xff0c;需要影响其父元素的样式 可以使用":has"伪类来实现选择父元素的效果 <style>.parent:has(.child){background-color: #eee;}p{width:100px;border:1px solid #000;} </style> <body>…

C语言收尾 预处理相关知识

一. 预处理详解 1.1 预定义符号 FILE //进行编译的源文件LINE //文件当前的行号DATE //文件被编译的日期TIME //文件被编译的时间FUNCTION //文件当前所在的函数STDC //如果编译器遵循ANSI C标准&#xff0c;其值为1&#xff0c;否则未定义 这些预定义符号都是语言内置的 我们…

鸿蒙内核源码分析 (内存池管理) | 如何高效切割合并内存块

动态分配 系列篇将动态分配分成上下两篇&#xff0c;本篇为下篇&#xff0c;阅读之前建议翻看上篇。 鸿蒙内核源码分析(TLFS算法) 结合图表从理论视角说清楚 TLFS 算法鸿蒙内核源码分析(内存池管理) 结合源码说清楚鸿蒙内核动态内存池实现过程&#xff0c;个人认为这部分代码…

保研机试之【execve函数】

execve 参考&#xff1a;fork&#xff08;&#xff09;函数两次返回_fork是如何返回两次的-CSDN博客 setjmp/longjmp 还有E&#xff1a;

解决GitHub提交后不显示自己的头像 显示另一个没见过的账号?

问题说明 最近换了几台电脑开发项目&#xff0c;提交到github&#xff0c;看了下提交记录&#xff0c;怎么冒出来不是我的账号头像&#xff1f; 什么鬼i 原因分析 github是按照你注册时候填的邮箱来查找账号&#xff0c;并显示在提交记录上面的。如果账号找不到头像就出不来…

knife4j在线文档 测试框架

一、Knife4j介绍&#xff1a; 1.1.介绍&#xff1a; Knife4j是基于SpringBoot构建的一个文档生成工具&#xff0c;它可以让开发者为我们的应用生成在线API文档&#xff1b; 目的是可以更加方便的基于API文档进行测试。 生成的文档还可以导出&#xff0c;然后给到前端开发团队…

美国服务器托管的优势

很多企业会选择美国服务器托管&#xff0c;那么美国服务器托管有哪些优势&#xff0c;rak部落为您整理美国服务器托管的优势。 美国服务器托管的优势可能体现在以下几个方面&#xff1a; 高性能和稳定性&#xff1a;美国的数据中心和网络基础设施非常先进&#xff0c;能够提供高…

「Python绘图」绘制同心圆

python 绘制同心圆 一、预期结果 二、核心代码 import turtle print("开始绘制同心圆") # 创建Turtle对象 pen turtle.Turtle() pen.shape("turtle") # 移动画笔到居中位置 pen.pensize(2) #设置外花边的大小 # 设置填充颜色 pen.fillcolor("green&…

高通QCS6490开发(三):点亮板卡

QCS6490是高通公司针对高端物联网终端而优化的SoC&#xff0c;在性能和功耗上有最优的平衡。《高通QCS6490 AIoT应用开发》是介绍如何基于QCS6490平台完成AIIoT的应用开发的系列文章。 本期主要介绍介绍如何点亮FV01开发板。 以下步骤介绍如何点亮FV01开发板步骤 1、将12V/5A…

阿里巴巴发布最新财报,营收重回增长轨道

KlipC报道&#xff1a;5月14日&#xff0c;阿里巴巴集团发布2024财年及第四财季最新财报&#xff0c;财报显示第四财季收入2218.74亿元&#xff0c;同比增长7%&#xff0c;超出市场预期。2024财年收入同比增长8%&#xff0c;达9411.68亿元。 第四财季净利润244.2亿元人民币&am…