so-vits-svc环境安装和AI训练

2023-05-16

So-VITS-SVC 4.0 新版整合包使用教程

So-VITS-SVC 项目一直都有在更新,B站视频(指4月26日换源前的视频)里的版本已经比较落后了,并且原版整合包因为做的匆忙,有很多地方做得比较粗糙,所以痛定思痛重写了一个新的真·一站式WebUI整合包。除了f0均值滤波功能外,项目本体没有太大改动,所以先前训练的进度也可无缝转移

🤔有什么新的?

  • 放弃了各种乱七八糟的脚本文件,数据预处理/推理/训练现可在WebUI一站式解决
  • 支持多卡指定GPU训练、多分支一站式整合
  • 更多的推理可选参数和可选项(f0均值滤波、声码器增强器
  • 加入了更多防呆手段,尽可能减少报错
  • 保持更新,尽可能与项目仓库同步

📚更新日志(什么时候可以折叠啊这一块好长的)

2023.04.28 v1.3.2 (NEWEST)

  • 修复了特定情况下训练Vec768分支无法正确加载模型和配置文件的BUG
  • 修复了其他的一些BUG

2023.04.27 v1.3.1

  • 修复了Vec768-Layer12分支训练时无法正确识别说话人的BUG
  • 修复了一些无关紧要的BUG

2023.04.26 v1.3.0

  • 🚩新增Vec768-Layer12(4.0v3)分支支持,该分支在小规模测试下质量和上限均优于原版
  • 新增音频批量推理功能

2023.04.25 v1.2.1

  • 修复了一些BUG
  • 新增f0均值滤波的过滤阈值可选项

2023.04.24 v1.2.0

  • 新增多模型声线融合功能
  • 新增 Onnx 批量转换
  • 优化了 WebUI 界面

2023.04.09 v1.1.1

  • 加入了对GTX 16系显卡的支持

2023.04.09 v1.1.0

  • 整合了python环境,不需要再装python了(码的配环境配了一下午)
  • 🚩新增NSF-HiFiGAN声码器增强器功能
  • 新增了一些推理/训练可选项

2023.04.07 v1.0.1

  • 修复了tensorboard无法运行的bug
  • 优化了WebUI的启动逻辑
  • 添加了一些防呆手段

2023.04.06 v1.0.0

  • WebUI一站式整合
  • 🚩f0均值滤波(缓解哑音问题)
  • 更多推理可选项

⚖️许可证声明和作品简介模板

So-VITS-SVC仓库与本整合包现已换用BSD 3-Clause许可,即日起使用本整合包或直接使用原项目仓库产出的作品,需遵循以下协议条款:

1. 未经授权同意,禁止在音视频网站发布的作品中标注项目仓库地址、仓库作者、贡献者、整合包作者的信息。

2. 必须在作品中标注免责声明,免去仓库作者、贡献者、整合包作者对该作品一切后果的责任。

作品简介模板

Cover/原唱: [使用的输入源音声来源]

音声来源:[训练集音声来源]

免责声明:本作品仅作为娱乐目的发布,可能造成的后果与使用的音声转换项目的作者、贡献者无关。

🤗下载地址

🎉完整整合包(v1.3.2)

百度网盘:https://pan.baidu.com/s/12u_LDyb5KSOfvjJ9LVwCIQ?pwd=g8n4 提取码:g8n4

Google Drive: https://drive.google.com/file/d/1d38zLye6Nn8uM_-xFPzc36hrUdlaKEKQ/view?usp=share_link

🚀增量更新

直接替换整合包内的文件(这是给新版整合包用的增量更新,旧版不能直接使用

v1.3.2:https://pan.baidu.com/s/1N-47gaAFE1Ewd4hrOQEu8A?pwd=yryv 提取码:yryv

😊关于Vec768-Layer12

Vec768-Layer12是So-VITS-SVC 4.0的最新分支(应该也是最后一个),将特征输入更换为了ContentVec的第12层Transformer输出。其实原本应该叫4.0v3的,后来大家认为长一点的名字很酷(不觉得这很酷吗?我觉得这泰裤啦,很符合我们对So-VITS的想象),于是就叫了这个名字。就是每次都要打全称不太方便。

从名字也能看出来,这个分支和原版不通用,模型需要重新训练,并且需要自己本地部署一个该分支推理。但现在本整合包将两个分支整合在一起了,你现在可以在本整合包下任意选择你要训练的分支,并且支持双分支模型的推理。本整合包自带Vec768-L12的底模,训练时会根据你选择的分支自动装载对应分支的底模,真正实现我奶奶来了也会用的自动化。

那么问题来了,Vec768-Layer12的效果如何呢?经过社区小规模测试,得出的结论是该分支相较原版可能存在性能提升,在数据集更大的情况下有更高的上限。当然也说了这只是小规模测试,我们推荐你在自己的数据集上亲自训练一个并比较和原分支的差异。

📢使用教程

Step 1: 安装Python 3.8.9

Python环境已经整合到整合包中,现在无需安装Python也可以使用新版整合包了。(你问我为什么之前不整合?问就是懒🤣)

Step 2: 解压整合包

将整合包解压到电脑硬盘中(路径中尽量不要包含中文),整合包内已经搭建好了运行所需的所有环境依赖,你无需自己手动搭建环境。

Step 3: 准备数据集

数据集的准备和旧版没有任何区别,请参考BV1H24y187Ko中的指引自己准备数据集。

Step 4: 在WebUI中进行数据预处理/训练

将准备好的数据集放置在 .\dataset_raw\ 文件夹中,确保文件夹结构正确

dataset_raw

├───speaker0

│ ├───xxx1-xxx1.wav

│ ├───...

│ └───Lxx-0xx8.wav

└───speaker1

├───xx2-0xxx2.wav

├───...

└───xxx7-xxx007.wav

打开启动WebUI.bat,选择上方“训练”标签卡,进入训练设置界面:

(很简单啊,一看就懂了)

一些说明:

  1. 评估日志和保存模型均是按照步数(steps)而非轮数(epoch)来计算的,默认的数值比较常用。步数和轮数的关系是:steps = epoch * (数据集数量/batch size)
  2. 批量大小(batch_size)极度影响显存占用。如果遇到CUDA out of memory报错请首先调低batch size,如果不行再考虑升级显卡驱动、CUDA驱动。本环境在CUDA 11.7和12.0中测试稳定
  3. 半精度训练(fp16)是一个比较玄学的参数,如果你不知道这是干嘛的还是保持关闭就好
  4. 多卡用户如果要指定某张显卡用于训练的话,可以使用 nvidia-smi 命令来查看显卡的系统编号,但是英伟达的编号分配逻辑就是依托,很容易出现指定不到你想选的那张显卡的问题。默认0是不会出错的
  5. 不要问我怎么才算训练好了,用整合包的启动tensorboard.bat来查看损失函数值收敛趋势,tensorboard里还可以试听当前模型的测试音频,但是测试音频不代表模型的实际产出。你觉得差不多训练好了就可以手动中止了。

Step 5: 在WebUI中进行推理

快来试试刚刚出炉的模型吧!

新版整合包的推理和旧版除了多出来一些可选项以外没有任何区别。仍然可以参考BV1H24y187Ko中的指引来操作。一些新的参数在WebUI中也有很详细的说明,你可以自己试试看。

新版WebUI在生成音频的时候会将文件自动保存在results文件夹内,你无需一个个手动下载了。

🥰外部模型如何迁移到新版整合包?

把旧版的G_模型Kmeans聚类模型放到新版整合包的以下目录:

.\logs\44k

把旧版模型对应的config.json(在configs文件夹内)放置到新版的以下目录:

.\configs

不太建议将旧版整合包未完成的训练转移到新版,因为两个包的环境依赖有所不同,容易出现意料之外的问题。

😪未来更新内容(可能)

  • 音频批量推理
  • 文本转语音(edgetts)
  • onnx批量转换
  • 整合数据集音频切片
  • 加入So-VITS-SVC-v2 的分支支持
  • 加入So-VITS-SVC-vec768-layer12 的分支支持
  • 多模型音色融合

……

So-VITS-SVC 4.0云端训练教程

【AI翻唱/SoVITS 4.0】手把手教你老婆唱歌给你听~无需高配电脑的云端训练教程!包教包会!_哔哩哔哩_bilibili

 

今天把笔记本电脑重装了系统,顺便重新弄了一遍so-vits-svc,过程非常折磨。。。


so-vits-svc项目地址:

https://github.com/innnky/so-vits-svc    (原作者已经删除了代码)

基于vits与softvc的歌声音色转换模型

作者:innnky    


2023年3月30日更改

由于很多人的对项目的滥用,原作者已经删除了项目。。。

不过还能GitHub上找到备份:

https://github.com/svc-develop-team/so-vits-svc

该项目目前由So-VITS社区维护。不知道后续会不会有更新


2023年3月30日补充:

特别注意:

1.版权问题一定要认真对待。

2.可以用自己的声音训练,这样不容易遇到版权问题。(要注意原曲的版权问题)

3.不要直接用别人的mv作为背景,最好自己制作。(比如用AI生成的图片或者视频)

4.不要制作对题材相关人员有伤害的内容。(声音来源和原唱不希望出现的内容)

5.既然原作者选择删除项目,那么后续再投稿就不要再带上作者和原项目地址了,除非你解决了所有版本问题而且没有伤害性内容。(滥用已经对原作者产生了困扰)

6.遇到问题,可以在评论区找一下有没有类似的情况。

7.训练好的模型文件不要分享出去。


我的硬件配置如下:

CPU

Intel(R) Core(TM) i7-10870H CPU @ 2.20GHz

GPU

NVIDIA GeForce RTX 3070 Laptop GPU  8G显存

AI的硬件需求主要在显卡这一块。

我的这个显卡是笔记本的3070 8G显存。刚好够用的水平。。。


我把折腾的过程整理了两个文档,文档我放在百度网盘了。


2023年3月30日更改

环境依赖安装.doc 链接: https://pan.baidu.com/s/1WS8d8zgQD5HhJcgZB4YE0Q?pwd=np93 

训练AI.doc 链接: https://pan.baidu.com/s/1mBhXv3xWLgt_L-Vn8x0I6Q?pwd=cd3h

制作文档的时候,还是3.0版本。

现在推荐用4.0版本,大幅优化了显存占用,8G显存已经可以直接推理一整首歌了。步骤都是差不多的,文档还有参考意义。


环境依赖安装.doc 包含了以下章节:

主要记录了需要安装的各种环境和依赖。

Cuda

Python

项目依赖

Pytorch

ffmpeg

git(可选)

vscode (推荐)

训练AI.doc 包含了以下章节:

主要讲解了训练这个AI的步骤和一些注意事项。

下载代码

预训练模型

准备数据

数据预处理

开始训练

日志文件

中断和继续

这两个文档只是记录了训练AI的步骤

对于AI的使用,我后续会出一个视频介绍怎么进行歌声音色转换

2023年3月30日补充

怎么进行歌声音色转换,可以参考这个视频。

视频当时还是用的3.0版本。推理的时候还需要把一首歌切成几个小段,再把结果拼接起来。

现在的4.0版本已经对显存占用进行了优化,可以直接推理一整首歌了,不需要切片。

09:10
AI翻唱制作流程(so-vits-svc)
 6.3万  424
视频
inifnite_loop
简单来说就是把A唱的歌转换成B的声音。


这个视频就是把周杰伦的声音转换成了我自己的声音。 作者:inifnite_loop https://www.bilibili.com/read/cv21425662 出处:bilibili

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

so-vits-svc环境安装和AI训练 的相关文章

  • 关于论文那点事——对抗样本

    学会读论文是一件读研期间必做的事 xff0c 已经读过好几篇 xff0c 但都是浅读 xff0c 读完后发现啥也没记住 xff0c 总想着等我有需要我再去细读文章 xff0c 但如果你连自己研究方法的各种理论和方法都没有基础了解的话 xff
  • 论文那些事—Learning Deep Features for Discriminative Localization

    1 摘要 背景 论文主要针对图片中不同类别物体定位的弱监督学习问题 xff0c 提出了基于分类网络的图片识别与定位 在分类模型中 xff0c 卷积层本身带有物体定位功能 xff0c 比如一个物体在左上角 xff0c 那么卷积之后的结果 fe
  • 2023年高频Java面试题集锦(含答案),让你的面试之路畅通无阻

    面试职位 xff1a Java后端开发工程师 在面试前三面真的有点急促 xff0c 一周内就面完了三次面试 xff0c 接着就开始无尽的等待 xff0c 整整等了三周左右 xff0c 终于完成了四面和HR面 整个过程还是比较曲折的 xff0
  • URL的标准格式

    URL的标准格式 scheme host port path query fragment 1 scheme xff1a 协议 2 host xff1a 主机 3 port xff1a 端口 4 path xff1a 路径 5 query
  • koa2获取用户ip

    调用下面方法即可获取 koa2 中 req 为 ctx req const getUserIp 61 req 61 gt return req headers 39 x forwarded for 39 req connection rem
  • Vim插件YouCompleteMe安装记录(号称最难装的Vim插件?)

    使用 PulginInstall 安装就不要想了 xff0c 如果你没有梯子的话 自己的 ssr 被封 xff0c 使用的同事的 ss xff0c 但是同事设置的加密方式在 linux 上的 ss 应用不支持 好吧 xff0c 直接上过程
  • 低显存(4g)训练LoRA模型的一些经验+自训练四季夏目LoRA模型分享

    一 Lora简介 LoRA Low Rank Adaptation of Large Language Models 是微软研究员引入的一项新技术 xff0c 主要用于处理大模型微调的问题 目前超过数十亿以上参数的具有强能力的大模型 例如
  • docker无法删除<none>镜像

    1 1 进入root权限 2 3 sudo su 或 sudo i 4 5 2 停止所有的container xff08 这样才能够删除其中的images xff09 xff1a 6 7 docker stop docker ps a q
  • node(koa2)跨域与获取cookie

    欲做一个node 的网关服务 xff0c 通过 cookie 做信息传递 xff0c 选择框架 koa2 xff0c 这里简单记录跨域处理以及 cookie 获取 首先 xff1a 解决跨域问题 xff0c 使用 koa2 cros 来处理
  • 算法思考(1)别再用递归计算斐波那契数列了!

    曾经学习到递归时 xff0c 相信绝大部分人都使用过斐波那契数列来学习递归吧 当初我学习递归是老师还刻意让我们思考如何优化其性能 xff0c 于是我们加了一些变量 参数 用于传递数据减少内存消耗 xff0c 或者讲递归分割 xff0c 分割
  • 推荐几个好用串口调试、检测的工具

    Sscom xff1a 比较实用的 xff0c 类似有 xcom xff0c 友善串口调试 xff0c 野火调试工具 xff0c securecrt 不免费 UartAssist netAssist 是出自同门 xff0c 后者调试网络 x
  • 2021-11-17:virtualbox6+Ubuntu18.04,虚拟机与主机间ping不通问题解决方案

    虚拟机可以ping通主机 xff0c 但是主机ping不通虚拟机的解决方案 1 先要查看虚拟机以及主机防火墙是否都关闭 xff0c 虚拟机防火墙关闭方法 xff1a a sudo apt get install ufw 安装 b sudo
  • 学习 > SCI-Hub论文免费下载可用网址

    http tool yovisun com scihub
  • armbian各版本名称对照

    摘录自armbian官网 镜像文件名 Armbian 20 05 2 Orangepilite bullseye current 5 4 43 img Bionic 61 Ubuntu Bionic 18 04 LTS Disco 61 U
  • Linux内核学习笔记之进程切换(八)

    Linux通过时间片来控制每个任务的执行时间 xff0c 每经过一个时间片就触发一次切换 xff0c 通过不停的来回切换执行任务 xff0c 当切换速度很快的时候 xff0c 就像视觉暂留一样 xff0c 给用户造成一个任务并行效果的假象
  • UML--动态建模

    五 动态建模 所有系统均可表示为两个方面 xff1a 静态结构和动态行为 UML 提供图来描述系统的结构和行为 类图 xff08 class diagram xff09 最适合于描述系统的静态结构 xff1b 类 对象及它们之间的关系 而状
  • Clash of Clans

    Clash of Clans Days ago I notice that my Clash Royal Account has been destroyed and if I go back I can t play it so I do
  • Ai画画——Textual Inversion, Hypernetwork, Dreambooth三种模型训练心得

    这几天大家都在用stable diffusion搭载novelai的模型疯狂搓术式生成老婆 xff0c 我也跟着潮流体验了一下 xff0c 但是试了很多次却发现无法生成我喜欢的某个冷门角色 比如说姬坂乃爱 很多人表示只要描述的够详细就能生成
  • linux命令--mkdir 与文件权限

    mkdir命令 mkdir命令用来创建目录 该命令创建由dirname命名的目录 如果在目录名的前面没有加任何路径名 xff0c 则在当前目录下创建由dirname指定的目录 xff1b 如果给出了一个已经存在的路径 xff0c 将会在该目
  • pixhawk2.4.8:Compasses inconsistent解决方法

    转载自 xff1a http pix 1yuav com compasses inconsistentjie jue fang fa html Compasses inconsistent意思是罗盘不同步的意思 xff0c 当我们使用双罗盘

随机推荐

  • 华清老师对于编程学习方法的一些描述

    应该多写多练 xff0c 自然你的编程能力会提高很快 xff0c 你只看的话确实容易眼高手低 一定要多敲多练 视频第九分钟左右 编程这个东西 xff0c 理解了跟这个东西是不是你的不是一码事 xff0c 你理解你不敲 xff0c 这个知识早
  • SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包“

    SDK 就是 Software Development Kit 的缩写 中文意思就是 软件开发工具包 让我想起当初OZO也有SDK
  • linux shell中一些有用的

    一些命令的记法 dpkg dpkg 是 Debian Packager 的简写 apt APT the Advanced Packaging Tool 为什么软件包是 deb文件啊因为是debian 系统 为什么dpkg i是安装啊 xff
  • shell编程第一行#!/bin/bash的作用

    shell编程第一行他们说要写 bin bash 是为了告诉他们用哪个shell 其实这个命令你是懂的bin文件夹下就是放着各种可执行文件嘛 后面他们又讲到执行shell脚本时有两种方式 xff0c 第一钟是 文件名 xff0c 第二种是b
  • shell脚本对空格有严格的规定,赋值语句等号两边不能有空格,而字符串比较,等号两边必须有空格

    shell脚本对空格有严格的规定 xff0c 赋值语句等号两边不能有空格 xff0c 而字符串比较 xff0c 等号两边必须有空格 赋值时 xff1a i 61 1 i 61 i 43 1 61 用作赋值时 xff0c 两边绝对不能有空格
  • GCC编译过程

    华清课程2 4 1截图 面试可能会考 这感觉可以和makefile的编写结合起来理解 你也就明白为什么makefile那么写了 xff0c 可执行文件后面为什么是 o文件 xff0c 而 o文件后面跟着 c文件 去看华清3 2 3第23分钟
  • 对网络编程以及Linux应用层编程有了更多的理解

    做题听了华清的开班课 xff08 视频一小时三十分钟左右 xff09 之后 对于网络编程以及linux应用层编程有了点清晰的认识 xff0c linux应用层编程说白了就是利用Linux提供的接口去做一些事情 xff0c 网络编程也是如此
  • 推荐一本书《高质量嵌入式linux C编程》

    这本书确实讲得比较比较全面 xff0c 很多细节都讲到了 xff0c 和华清的课程体系很像 xff0c 看来华清的课再看这本书感觉很熟悉 xff0c 我甚至觉得这本书比华清自己的课本要好些 这本书值得反复读反复翻 xff0c 用来回顾知识巩
  • VideoReTalking:用于野外会说话的头部视频编辑的基于音频的唇形同步

    我们展示了 VideoReTalking xff0c 这是一种新系统 xff0c 可以根据输入音频编辑真实世界中说话的头部视频的面部 xff0c 从而产生高质量和口型同步的输出视频 xff0c 即使带有不同的情绪 我们的系统将这个目标分解为
  • 关于程序=数据结构+算法

    程序 61 数据结构 43 算法 xff0c 这个早就看到了 xff0c 很多人也说了 xff0c 谭浩强的C语言里面也有 而且我发现计算机考研里面的算法题是夹杂着数据结构的题去考的 我现在渐渐感受到他们所说的算法和我以前所理解的算法可能不
  • 简历里不要轻易说精通

    也告诉我一定要重视基础 xff0c 不要过于强调一些什么高大上的项目
  • 关于非全日制,似乎有公司承认,有的北邮的非全去向似乎不错。

    如果到时候能调个北邮非全也试试吧 北邮由非全读博的 xff0c 武科大也有 https bbs byr cn article AimGraduate 1189353 p 61 1 北京户口也不卡了 https bbs byr cn arti
  • 数据结构的体系

    将来不管你接触任何一种数据结构 xff0c 你都要用这样的方法想这三个事 xff08 逻辑结构 xff0c 存储结构 xff0c 操作 xff09 xff0c 不难 xff0c 就三个事 xff0c 想明白了 xff0c 那这个结构在写的时
  • 链表头节点的data实际存放的数据是0

    链表头节点的data中没有赋值实际内存中放的是什么值 xff1f 这个实际自己用程度输出一下头节点的data值就知道了 xff0c 华清的课程里面也多次看到输出的是0
  • 数据结构里的结构体

    结构体的定义为什么是那样的 xff0c 只能死记么 这么多死记感觉不太好吧 那样写是因为确实需要那样 xff0c 不是人为规定死的 首先确定一个结构体需要哪些信息 xff0c 这些信息也必然是结构体所包含的信息 顺序表 单链表 顺序栈 链式
  • 严蔚敏版数据结构课本里面status ,return OK 这样写是因为已经宏定义了

    数据结构课本里面status return OK 这样写是因为已经宏定义了 所以严的课本里用的C语言还是严格的C语言的 xff01
  • 链式队列有必要专门总结一下

    链式队列的结构你没弄清楚 xff0c 你在释放整个链表的时候就会感觉到混乱 建立链式队列的时候需要两个malloc 确实需要画图 xff0c 你才看得清楚明白 真正叫你写链式队列的程序你才能感受到这一点
  • 我感觉很有必要多刷刷leetcode

    我感觉Leetcode就非常好地融合了数据结构和算法 xff0c 里面有上面数组字符串 xff0c 栈和队列 xff0c 哈希等等 学了华清的前三个level的课程再看这些很有体会 xff0c 我觉得还需要再刷些题才能真正很好地掌握 我也感
  • 关于单链表排序,倒置的具体方法(华清的方法,比我的好些)

    单链表的排序我之前自己写过程序 xff0c 但是看了华清视频之后感觉它的方法要比我简单一些 xff0c 包括它实现倒置的思路和它实现排序的思路基本大体一样 xff0c 先把头节点单个断开 他的方法思路确实比我的简单要好些 我当时是用的数组的
  • so-vits-svc环境安装和AI训练

    So VITS SVC 4 0 新版整合包使用教程 So VITS SVC 项目一直都有在更新 xff0c B站视频 xff08 指4月26日换源前的视频 xff09 里的版本已经比较落后了 xff0c 并且原版整合包因为做的匆忙 xff0