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.mzph.cn/pingmian/12802.shtml

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

相关文章

夯实spring(二十三): 父子容器

本文要点: 什么是父子容器为什么需要用父子容器父子容器如何使用 先来一个案例 系统中有2个模块:module1和module2,两个模块是独立开发的,module2会使用到module1中的一些类,module1会将自己打包为jar提供给module2…

Java05基础 数组

Java05数组 一、数组 数组指的是一种容器,可以用来存储同种数据类型的多个值。 1、数组的静态初始化 初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程 1.1 数组定义格式 //格式一 数据类型[] 数组名 …

linux tar 压缩文件 排除对应的目录 exclude

有时候需要压缩多个目录,其中 有的目录中携带uploads 目录 如web里面有个uploads目录,我想要屏蔽掉 使用exclude 屏蔽目录 命令如下: tar -czvf archive.tar.gz --excludeweb/uploads/* --excludelogs/ web/ web1/* 错误的命令: tar -czvf archive.tar.gz --exclud…

rush 功能特性梳理

Rush 可以让 JavaScript 开发者更轻松地同时构建、发布多个 NPM 包,即将多个包或项目放到一个大仓库下管理。 仅需一次 NPM 安装 仅需一步,Rush 便可以将你项目的所有依赖安装到一个公共文件夹下,该文件夹并不像 “package.json” 一样位于项…

git 拉取指定目录

指令方式 打开 git 自带的Git Bash 工具 以拉取github中 fastjson 的 /src/test/java/oracle/sql/ 目录为例 1.创建文件夹和git 初始化 cd D:/Program\ Files mkdir fastjson cd fastjson git init 2.设置允许克隆子目录 git config core.sparsecheckout true 3.添加远程…

Tomcat闪退

Tomcat闪退可能由多种原因引起,包括内存不足、程序异常、端口冲突、配置文件错误、版本不兼容、硬件故障等。以下是一些解决Tomcat闪退问题的常见方法: 检查内存:Tomcat运行需要大量的内存资源。如果服务器内存不足,可以尝试增加…

企业大模型如何成为自己数据的“百科全书”?

作者 | 郭炜 编辑 | Debra Chen 在当今的商业环境中,大数据的管理和应用已经成为企业决策和运营的核心组成部分。然而,随着数据量的爆炸性增长,如何有效利用这些数据成为了一个普遍的挑战。 本文将探讨大数据架构、大模型的集成&#xff0…

text-align、align-items 和 justify-content

当我们使用 CSS 来控制布局时&#xff0c;我们可以采用一些通用的属性来控制文本、元素等在页面上的位置和对齐方式。下面是关于 text-align、align-items 和 justify-content 的通用总结 text-align&#xff1a; 适用范围&#xff1a; 适用于文本元素&#xff0c;如 <p>…

Win10安装mamba个人总结的2种实现方式

强烈推荐大家参考这篇文章&#xff0c;讲述的完整且全面。 Mamba 环境安装踩坑问题汇总及解决方法_error: could not build wheels for causal-conv1d, w-CSDN博客 我的环境是win10&#xff0c;Pycharm2019&#xff0c;miniconda&#xff0c;Python 3.10.14&#xff0c;cuda …

c语言指针学习:交换变量值1

交换地址和交换指针 //交换pt_x和pt_y所指向的地址int *temp;temp pt_x; pt_x pt_y; pt_y temp; //交换pt_x和pt_y的值int temp;temp *pt_x; *pt_x *pt_y; *pt_y temp; 假如没有指针p int i1; p&i; //p指的是所指向变量的地址 即 i的地址 //*p指的是指针所指…

Google I/O 2024:探索未来AI技术的无限可能

近日&#xff0c;Google I/O 2024大会圆满落幕&#xff0c;带给我们一场关于人工智能的盛宴。在这场大会上&#xff0c;Google推出了一系列令人激动的AI新功能和工具&#xff0c;让我们得以一窥未来的科技发展。今天&#xff0c;就让我来为大家总结一下这些亮点吧&#xff01; …

springboot报错‘url’ attribute is not specified and no embedded datasource could

APPLICATION FAILED TO START Description: Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you wa…

你是学会了还是学废了:Elasticsearch 7 集群拷贝到其它环境如何重置密码

欢迎您关注我的公众号【尚雷的驿站】 公众号&#xff1a;尚雷的驿站 CSDN &#xff1a;https://blog.csdn.net/shlei5580 墨天轮&#xff1a;https://www.modb.pro/u/2436 PGFans&#xff1a;https://www.pgfans.cn/user/home?userId4159 前言 本文描述了将生产ES集群打包拷贝…

知识图谱 | 语义网络写入图形数据库(含jdk和neo4j的安装过程)

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本文主要介绍如何使用 Neo4j 图数据库呈现语义网络&#xff0c;并通过 Python 将语义网络的数据写入数据库。具体步骤包括识别知识中的节点和关系&#xff0c;将其转化为图数据库的节点和边&#xff0c;最后通过代码实现数据的写…

【车载开发系列】AUTOSAR BSW基础模块常用术语

【车载开发系列】AUTOSAR BSW基础模块常用术语 BSW供应商提供的AUTOSAR BSW模块有&#xff1a;EcuM、Os、WdgM、WdgIf、BswM、Rte这六种。AUTOSAR BSW当中常用的属于如下。 名称说明WdgMWatchdog Manager的简称WdgIfWatchdog Interface的简称BswMBasic Software Manager的简称…

css案例 tab上下滚动,左右滚动

效果图&#xff1a; 完整代码&#xff1a; <template><view class"content"><view class"content-item"><view class"content-title"><h4>美食热搜</h4><ul><li>火鸡面</li><li>糖…

听劝!普通人千万别随意入门网络安全

一、什么是网络安全 网络安全是一种综合性的概念&#xff0c;涵盖了保护计算机系统、网络基础设施和数据免受未经授权的访问、攻击、损害或盗窃的一系列措施和技术。经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”…

Batch Normalization 批归一化 每个mini-batch进行归一化操作 显著提高深度神经网络的训练速度和性能

Batch Normalization Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift NLP相关Paper笔记和代码复现 本文提出了Batch Normalization(批标准化)技术,旨在加速深度神经网络的训练过程,并通过减少内部协变量偏移(internal…

图文教程 | 2024年IDEA安装使用、破解教程,JDK简易下载方法

前言 &#x1f4e2;博客主页&#xff1a;程序源⠀-CSDN博客 &#x1f4e2;欢迎点赞&#x1f44d;收藏⭐留言&#x1f4dd;如有错误敬请指正&#xff01; 目录 一、IDEA安装 二、激活 三、JDK安装 四、JDK环境配置 五、验证 一、IDEA安装 进入官网下载&#xff1a; Other…

命令行中,Python 想使用本地环境,但总是显示为Anaconda的虚拟环境

电脑环境 Python 本地环境&#xff08;Python3.9.5&#xff09;Anaconda 虚拟环境&#xff08;Python3.8.8&#xff09; 遇到的问题 在cmd 中&#xff0c;我想在本地环境使用 Python、pip &#xff0c;但它却是一直识别成Anaconda的虚拟环境。 解决方法 环境变量配置中&am…