[AI]从零开始的so-vits-svc webui部署教程(小白向)

一、本次教程是给谁的?

        如果你点进了这篇教程,相信你已经知道so-vits-svc是什么了,那么我们这里就不过多讲述了。如果你还不知道so-vits-svc能做什么,可以去b站搜索一下,你大概率会搜索到一些AI合成的音乐,是的简单来讲,so-vits-svc是一个训练并且推理声音的开源项目。它能够模仿某些角色的声音来唱歌或者单纯的文字朗读。那么,我们回到正题,本次教程是给谁的?如果你是一位开源项目爱好者并且有项目部署的经验,那么本次的教程可以作为你的参考。如果你是以为音乐爱好者,并且没有计算机基础,那么你可能需要花一些时间来学习计算机基础,在拥有了计算机基础以后,可以跟着本教程尝试部署so-vits-svc,但是如果你没有太多的时间,可能这个项目的一键包更适合你。如果你是以为ACG爱好者,想使用本教程部署so-vits-svc,并且通过这个项目推理自己喜欢的角色的声音,那么你也需要一些计算机基础,如果你时间有限,我同样建议你使用so-vits-svc的一键包。总的来说,不管是哪一类人群,不管声音推理是你的专业还是爱好,在部署so-vits-svc时,你都需要一定的计算机基础对编程语言有一定的了解并且具有解决问题的能力。

二、关于细节和遇到问题的解决方案

        在本次教程之前,我已经在别的教程中讲述过pytorch的安装以及conda环境的安装,在本次教程中,我也会将往期的教程放在对应的位置。这次教程很详细,但是不会像每个单独教程那么详细。如果你想看到更多的细节,建议还是去看单独的教程。在本次的教程中,我们做的事有非常强的前后逻辑性,必须在完成前面的步骤以后你才能进行下一步。当然,在你安装时,肯定会遇到非常多的问题,所以这需要你具有一定解决问题的能力,项目开源已经有一段时间了,所以网络上的资料非常多。当你遇到问题以后,你可以在浏览器中用尽量简短的话去描述并且搜索你的问题。或者直接将报错的那一行信息直接复制到浏览器中进行搜索,这可能也需要你会查看python的报错,python报错一般都伴随着很多文件。直接搜索报错信息这种办法非常有效,可以让你快速定位错误原因和解决办法。如果你在直接搜索时没有搜素到你对应的错误那你就可以考虑用比较详细的话语描述你的错误并提交给AI,如果你使用的是目前比较新的AI语言模型,它应该都能给出比较有效的解决方案。当你在进行了以上的步骤以后,依然不能解决你的问题,那你就可以考虑去社区或者论坛中寻求帮助,但是请注意提问的艺术,你需要详细的描述你的问题并且描述你在出现这个问题之前进行了什么操作,只有这样,大佬才知道你的问题在哪儿并且给出解决方案。总的来说,这次部署过程是非常不容易的,如果你准备好了,那就让我们开始吧!

三、miniconda环境安装

        本次我们将在虚拟环境中演示如何部署,这里我选择miniconda来实现虚拟环境。后面的演示也都会基于miniconda,如果你已经能够分清在系统中直接安装python和python虚拟环境的区别,那么你就可以选择自己喜欢的方式来进行下一步,如果你是一位小白,那么请跟着我进行操作。我们需要使用conda将环境隔离出来,防止别的依赖冲突问题。你可以跟着我当前的文章进行操作,也可以去看我以前的文章,那个教程会详细许多,我也建议小白前往下面的链接查看教程:

miniconda安装教程:[python]我们应该如何安装Miniconda虚拟环境?(详细)_miniconda创建虚拟环境-CSDN博客

如果你已经跟着上面的教程成功安装了miniconda,那么你可以直接跳过这个大点。下面我们开始安装miniconda。

首先我们去到miniconda官网下载安装包:

下载好以后如下图所示:

开始安装:

这里最好把所有勾打上。

在安装完成以后,启动测试一下,直接在搜索框中搜索“miniconda”,并且启动:

使用下面的命令来创建一个虚拟环境:

conda create --name so-vits-svc python=3.8

使用下面的命令进入虚拟环境:

conda activate so-vits-svc

在成功进入虚拟环境以后,conda的安装步骤就已经结束了,值得注意的是这里将python版本最好固定在3.8附近。

四、pytorch安装

        因为我们的so-vits-svc依赖于pytorch运行,我们在这里需要自行安装pytorch。这里一定要将pytorch单独安装。这里pytorch的安装在以前我也提供了教程,如果你要获取详细的安装教程,请参考下面的文章,下面我会演示如何在虚拟环境中安装pytorch:

pytorch安装:[python]如何正确的安装pytorch?(详细)_pytorch安装-CSDN博客

下面我会简单的演示我的安装步骤,有一点要注意的是,我们这里要将pytorch的CUDA版本固定在11.7或者11.8,在12以后的版本都不适用,使用CPU部署的可以忽略这一条。

查看cuda版本:

去官网下载对应CUDA的最新驱动安装包:

选择好对应版本:

下载好以后如图:

下载好以后不着急安装,我们先去安装一个Visual Studio,这里在安装CUDA驱动时会用到它的C++编译环境,包括后面安装python包时也会用到,建议大家在现在就安装好。

去到Visual Studio官网下载安装包:

这里我们选择图中所示的版本:

下载好以后如图:

开始安装Visual Studio。

等待完成:

这里把C++桌面开发勾上:

更换一下安装的路径。不然默认安装在C盘。

选择好安装路径以后,直接点击安装:

等待安装完成:

在安装完成以后就可以了,出现如下界面:

可以不登录,直接关掉即可,在安装完成以后建议重启一次电脑。

在安装好vs以后,我们就可以继续安装CUDA驱动了。

等待安装完成。

打开cmd输入下面的命令查看安装是否成功。

nvcc -V

注意这里的V是大写的。出现下面的输出表示CUDA驱动安装成功:

开始在虚拟环境中安装pytorch。

进入虚拟环境:

选择pytorch版本。因为要固定CUDA版本,所以,我们选择下面版本的pytorch。

在固定CUDA版本的同时pytorch不要太新,这里选择2.0的。复制到命令行中,开始安装:

等待安装完成。

在安装完成以后,使用“pip list” 查看已经安装的包,出现以下结果就表示安装完成。

这里显示的pytorch的版本和对应的CUDA的版本。如果你安装的是GPU版的pytorch但是这里没有出现CUDA的版本,那你就要考虑看看是不是在安装时哪里出了问题。可以尝试重新安装。如果你反复重试都无法成功就可以尝试去看一下上面链接中的文章,这个文章讲述了详细安装教程。

我们可以在已经安装了pytorch的虚拟环境中依次输入下面的命令进行验证:

pythonimport torchprint(torch.cuda.is_available())

如果安装成功则会返回“True”

当你安装完pytorch以后,才能进行下一步。

五、FFmpeg安装

        FFmpeg的安装相对简单,所以没有专门的文章教程,大家跟着我操作即可。

去到FFmpeg的官网下载FFmpeg的安装包,FFmpeg官网:FFmpeg

下载好以后如图所示:

解压以后得到如下文件夹:

文件夹下有一个名为“bin”的文件夹,文件夹中有如下内容:

我们需要将这个“bin”文件夹的路径添加到环境变量。

右键”此电脑“点击属性,得到以下界面:

在这个界面中点击“高级系统设置”:

在高级系统设置中点击“环境变量”:

我们要对“系统变量”进行设置:

选中“Path”后点击“编辑”:

在编辑中点击“浏览”:

将刚才的路径选中进来。

这里要注意路径中不能有中文和一些不明字符。

当路径选入以后,点击确定,然后将打开的所有窗口一路确定下去。

在配置完以上以后,就可以打开cmd命令行窗口输入下面的命令检查是否安装成功了。

ffmpeg -version

输入以后回车,应该会有类似于一下图中的输出。

如果你在输入命令以后,没有得到上面图中这样的输出,或者提示未知命令,找不到命令,这些提示都表示安装没有完成,可以考虑重试上面的步骤或者查阅相关资料

至此,我们的FFmpeg已经安装完成。

六、拉取项目

        我们需要将整个so-vits-svc项目克隆下来,大家可以自行安装git使用下面的命令进项克隆,或者是直接下载项目压缩包再解压。

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

项目文件夹如图所示:

七、其它依赖项的安装

        我们在项目文件夹中找到“requirements_win.txt”并且使用记事本打开。

这里面就是我们项目所依赖的所有库了。我们需要单独安装“fairseq”这个库。这个库安装可能会出现许多错误,请你在安装这个库之前已经安装了Visual Studio 2022并且在其中安装的C++的开发环境。

在虚拟环境中使用下面的命令安装“fairseq”库:

pip install fairseq==0.12.2

第一次安装出现了非常多的警告,并且还伴随着错误,在你完全看不懂这些警告和错误的情况下,将它们复制给AI是一个不错的解决方案:

AI给出了如下解决方案,我们可以逐一尝试:

使用AI的解决方案,如果再有报错就再将错误提交给AI,直到所有的错误解决为止,这个过程可以提高你解决问题的能力。如图,我们的“fairseq”库已经安装完成了。

既然已经安装完成,我们就可以到“requirements_win.txt”中将这个库删除,然后我们可以在终端中执行下面的命令,安装“requirements_win.txt”中的所有依赖:

pip install -r requirements_win.txt

如果你在安装时出现报错,可以尝试重新执行上面的命令进行安装,如果你反复出现错误,可以尝试将“requirements_win.txt”的库一个一个进行安装。

如果你在安装时出现网络问题,可以使用下面的命令将你的pip换源:

# 设置清华大学下载镜像
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

如图所示,就已经安装完成了,可以看到安装了非常多的库:

在保证上面的库安装没有问题以后,使用下面的命令将指定的库固定到指定版本:

pip install --upgrade fastapi==0.84.0
pip install --upgrade pydantic==1.10.12
pip install --upgrade gradio==3.41.2

在确认上面的库安装没有问题以后,使用下面的命令来打开webui。记得在项目根路径下执行命令,不然会找不到这个文件:

python .\webUI.py

如果在启动时报错,可以重新查看是否是库的缺失或者是不是库的版本冲突。可以使用上面的办法将错误直接复制给AI进行分析。在输入上面的命令后,如果没有出现错误,过一会儿就可以看到以下输出,并且会自动打开浏览器并且打开webui。

它这里给出了一个提示,我们可以升级这个库,大家根据自己的情况选择升级。

如下图所示,我们的so-vits-svc webui已经成功启动了:

webui能够正常启动说明我们的环境并没有问题。至此,我们“so-vits-svc webui”的所有依赖项已经安装完成。

八、载入底模与相关配置文件

        我们这里,不管是推理还是训练,都需要有底模的参与,so-vits-svc的开源库中提供了非常多的底模,不同参数的底模训练和推理出的声音不一样。下面我会进行一个底模以及配置文件的导入和推理测试。

在此处的配置可以参考文章:so-vits-svc-Deployment-Documents/README_zh_CN.md at 4.1 · SUC-DriverOld/so-vits-svc-Deployment-Documents · GitHub

如果你在环境配置还有问题也可以参考上面的文档。下面会用到一些文件资源,资源来自下面这些UP主:

底模提供以及部署教程:【视频已过时仅作参考】最详细的AI音色转换So-vits-SVC4.1本地配置/训练/推理/使用教程/非整合包/从零开始配置!_哔哩哔哩_bilibili

芙宁娜模型提供:分享一个so-vits-svc4.0芙宁娜的AI语音模型【第二期】_原神 (bilibili.com)

上面视频的教程大家也可以看,我的流程和视频中是一样的。我会整理后面会用到的文件,大家自行下载以后,就可以跟着我继续操作了。

相关文件下载:

在下载好相关文件以后,我们就可以继续下一步了。

将压缩文件解压以后得到以下文件夹:

下面的配置会使用到这些文件。

我们首先打开“Sovits4.x”文件夹。

我们将“Sovits4.x”文件夹的“checkpoint_best_legacy_500.pt”文件复制到项目文件夹的“”

将“Sovits4.x”文件夹下的“D_0.pth”和“G_0.pth”文件复制到项目文件夹目录下的“logs/44k”目录下。

将“Sovits4.x”文件夹下的“model_0.pt”复制到项目文件夹下的“logs\44k\diffusion”目录下。

在以上文件都复制完成以后,请多确认几次准确无误。

至此我们相关的配置就已经完成了。

九、使用训练好的模型进行推理测试

        当你进行到这一步时,相信你已经完成了上面的步骤。如果你没有完成上面的步骤,可以多尝试几次,之前提到过,我们整个部署过程有非常强的逻辑性,只有完成了前面的步骤,我们这一步才算成功才算真的部署好了这个项目。当你遇到问题时,可以参考上面我提到的文章也可以去看我给出的视频链接。

在你确定上面的步骤没有问题以后,那就开始我们本次部署的最后一步,使用训练好的模型进行推理测试吧。

我们首先启动webui。

我们点击图中所示的地方将“芙宁娜so-vits4.0”文件夹中的“G_46400.pth”文件选中进来。

出现模型大小就表示导入成功了。

我们点击图中所示的地方将“芙宁娜so-vits4.0”文件夹中的“config.json”文件选中进来。

在完成以上步骤以后,我们就可以点击“加载模型”:

点击了“加载模型”以后,会出现出现说话人,如果一个模型在训练的时候训练了多个说话人,这里就能选择,当然,我们目前这个模型只有一个说话人。

在选择了说话人以后,我们可以选择我们的推理设备,auto表示自动选择,如果你安装了CUDA版的pytorch但是这里却没有你的显卡,说明你的pytorch没有安装成功,请回去检查以下,或者使用cpu进行推理。

在设置好以上以后,我们将这个页面滑到最下面,我们这里选择“文字转音频”:

我们这里在文字框中输入想要转换的文字,然后选择说话人的性别,这里说话人的性别很重要,如果说话人的性别和这里没对应转换出来的声音就会很怪,这里芙宁娜的模型我们要选择女声。随后点击“音频转换”:

开始转换以后,会有一个预估时间:

出现音频以后,就表示转换成功了,大家可以试听一下,大家也可以去下载别的模型进行体验,模型最主要的是一个模型文件一个配置文件,只需要导入这两个文件,模型就能最基本运行。

至此,我们的so-vits-svc webui部署与推理已经完成,如果你在导入模型或者推理时出现错误可以参考上面我给出的文章,或者使用我最开始给出的遇到错误解决办法。

十、结语

        我们部署了so-vits-svc,大家可以使用这个开源项目推理自己喜欢的角色的声音,大家可以自行去下载已经训练好的模型,后面有趣的玩法留给大家自行探索吧!

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

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

相关文章

C#利用ffmpeg借助NVIDIA GPU实现实时RTSP硬解码+硬编码录制MP4

目录 说明 效果 项目 代码 下载 说明 利用周杰的开源项目 Sdcb.FFmpeg 项目地址:https://github.com/sdcb/Sdcb.FFmpeg/ 代码实现参考:https://github.com/sdcb/ffmpeg-muxing-video-demo 效果 C#利用ffmpeg借助NVIDIA GPU实现实时RTSP硬解码硬…

助力外骨骼机器人动力学分析

目录 一、动力学分析 二、拉格朗日方程 三、参考文献 一、动力学分析 动力学是考虑引起运动所需要的力,使执行器作用的力矩或施加在操作臂上的外力使操作臂按照这个动力学方程运动。 目前机器人动力学分析中主要采用牛顿-欧拉动力学方程和拉格朗日动力学方程 […

基于大数据的水资源管理与调度优化研究【Web可视化、灰色预测、大屏设计】

需要本项目的私信博主 目录 1 引言 1.1 研究背景 1.2 国内外研究现状 1.3 研究目的 1.4 研究意义 2 关键技术理论介绍 2.1 Python语言 2.2 pandas 2.3 pyecharts 2.4 灰色预测 3 数据来源及处理 3.1 数据来源 3.2 数据处理 4 数据可视化分析及大屏设计 4.1 年度…

08 - debugfs

---- 整理自 王利涛老师 课程 实验环境:宅学部落 www.zhaixue.cc 文章目录 0. 什么是 debugfs1. debugfs 配置编译和注册运行2. 第一个 debugfs 编程示例3. 通过 debugfs 导出整型数据4. 通过 debugfs 导出 16 进制数据5. 通过 debugfs 到处数组6. 通过 debugfs 导出…

Ubuntu20.04可以同时安装ROS(Noetic)和ROS2(Humble)

Ubuntu系统确实可以同时安装ROS(Robot Operating System)和ROS2,但需要注意一些关键步骤和配置以确保两者能够顺利共存并独立运行。以下是在Ubuntu上同时安装ROS和ROS2的详细步骤和注意事项: 安装前准备 检查Ubuntu版本&#xff…

nacos 动态读取nacos配置中心项目配置

实现了项目稳定运行情况下不需要在项目中改配置&#xff0c;直接在nacos中修改更方便。 pom文件&#xff1a; <!--读取bootstrap文件--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap…

HarmonyOs应用权限申请,system_grant和user_grant区别。本文附头像上传申请user-grant权限代码示例

HarmonyOs应用权限申请&#xff0c;system_grant和user_grant区别。本文附头像上传申请user-grant权限代码示例 system_grant&#xff08;系统授权&#xff09; system_grant指的是系统授权类型&#xff0c;在该类型的权限许可下&#xff0c;应用被允许访问的数据不会涉及到用户…

大数据测试怎么做,数据应用测试、数据平台测试、数据仓库测试

本期内容由中通科技高级质量工程师龙渊在公益讲座中分享&#xff0c;他从大数据测试整体介绍、数据应用测试、数据平台测试以及数据仓库测试等方面&#xff0c;与大家共同探讨了大数据测试的方法实施与落地。 以下是讲座正文&#xff1a; 今天我们分享的内容主要从大数据简介…

二、基于Vue3的开发-环境搭建【Visual Studio Code】扩展组件

Visual Studio Code中的扩展组件 1、安装的扩展工具2、说明2.1 、代码规范性检查EsLint2.2 、代码语法高亮提示工具Vue - Official2.3 、阿里的AI代码开发提示工具 TONGYI Lingma 1、安装的扩展工具 2、说明 2.1 、代码规范性检查EsLint Visual Studio Code 中【设置】-setti…

基于springboot+vue+uniapp的使命召唤游戏助手小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

OSI七层模型中的数据链路层

图片&#xff1a;数据帧的格式 这里面的一个关键点是&#xff0c;数据的源IP和目标IP在哪里&#xff1f; 就在图中的“数据”里面&#xff0c;这个“数据”也就是网络层的数据包&#xff0c;如果是TCP类型的数据包&#xff0c;数据包里面就包含TCP类型的首部信息&#xff0c;…

使用excel把json文件转为表格

json文件格式 [ { "ID": "16", "名称": "测站", "管理ID": "3", "管理名称": "土", "辅助信息": { "百度经度&qu…

linux neo4j 切换知识图谱

neo4j 安装 linux neo4j的安装可以浏览这篇文章&#xff1a; ubuntu sudo apt-get install neo4j 配置安装与设置远程访问 引言 如果你是window用户&#xff0c;直接下载桌面版进行安装与使用即可&#xff1b; 我有一台linux的服务器&#xff0c;想部署在上面&#xff0c;不…

阿里云私有镜像仓库配置及使用

1 登录阿里云 阿里云访问地址&#xff1a;https://www.aliyun.com/ 右上角选择“控制台” 2 创建个人实例 搜索框搜索“容器镜像服务” 新建“个人实例” 选择“创建个人版” 同意协议&#xff0c;点击确定 3 个人实例配置 设置Registry登录密码 密码要求&#xff1…

[Arxiv 2024] Self-Rewarding Language Models

Contents IntroductionMethodExperimentsReferences Introduction 作者提出 Self-Rewarding 训练框架&#xff0c;LLM 在训练过程中同时担任 actor 和 critic&#xff0c;actor 负责合成新数据&#xff0c;critic 负责判断合成数据质量用于组成高质量的偏好数据集用于模型的下…

NoSql数据库Redis集群

一、关系型数据库和 NoSQL 数据库 1.1 数据库主要分为两大类&#xff1a;关系型数据库与 NoSQL 数据库 关系型数据库 &#xff0c;是建立在关系模型基础上的数据库&#xff0c;其借助于集合代数等数学概念和方法来处理数据库中的数据主流的 MySQL 、 Oracle 、 MS SQL Server…

ElasticSearch和Kibana的安全设置以及https设置

&#x1f468;‍&#x1f4bb;本文专栏&#xff1a;ElasticSearch和Kibana的安全设置以及https设置 &#x1f468;‍&#x1f4bb;本文简述&#xff1a;跟着猿灰灰一起学Java&#xff01; &#x1f468;‍&#x1f4bb;上一篇文章&#xff1a; &#x1f468;‍&#x1f4bb;有任…

『功能项目』怪物受击的动画事件【10】

我们打开上一篇09着色器光透魔法球的项目&#xff0c; 本章要做的事情是在场景中创建一个怪物对象&#xff0c;当怪物被主角的魔法球击中后播放受击动画效果&#xff0c;此类技术用到动画事件帧&#xff0c;在动画上创建脚本。 首先打开资源商店选择一个免费资源的怪物模型加载…

apache httpclient速成

目录标题 快速使用连接池参数连接池状态清除闲置连接evictIdleConnections删除过期连接 timeToLive 和evictExpiredConnections 注意释放内存关闭流 http和netty的关系 导入依赖 <dependency><groupId>org.apache.httpcomponents.client5</groupId><artif…

【ceph学习】S3权限认证部分

认证过程简介 认证的过程是一个对用户信息进行解析并且判断前后得到的秘钥是否一致的过程。 auth_regitry的创建 在rgw_main.cc:main()中进行初始化auth_registry对象 /*rgw_main.cc*/ /* Initialize the registry of auth strategies which will coordinate * the dynamic…