WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)

环境:

硬:

台式电脑

1.cpu:I5 11代以上

2.内存16G以上

3.硬盘固态500G以上

4.显卡N卡8G显存以上
20系2070以上

本案例英伟达4070 12G

5.网络可连github

软:

Win10 专业版 19045以上

WSL2 -Ubuntu22.04

1.bert-Vits2.3

Extra-v2:中文特化修复版
Extra-Fix分支

底模:Bert-VITS2_中文特化修复底模_0.0.1

2.python 3.11以上

3.git

4.cuda11.8

5.pytorch2.1

问题描述:

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版

在这里插入图片描述

解决方案:

Bert-VITS2简介

bert-vits2可预测感情文本转语音技术的工作原理是,首先对大量的文本数据进行情感分析,以了解不同情感表达的语法和词汇使用情况。然后,利用这些信息,人工智能模型可以预测给定文本的情感倾向,并调整语音输出的音调和语速等参数,以匹配这种情感倾向。
流程包括文本预处理、声学模型处理训练和后处理三个步骤。首先,文本预处理会对标注的文本分析和处理,例如分词、词性标注和语法分析等。然后,声学模型训练会将文本转化为声学特征,这个过程通常需要大量的语音数据来训练。最后,后处理会对生成的语音波形进行优化和调整,以使其更符合直播带货的需求

Bert-VITS2部署

一、部署底层环境

Win10 安装WSL

WSL,全称Windows Subsystem for Linux,是Windows操作系统中的一个功能,它允许在Windows上运行Linux子系统。通过WSL,用户可以在Windows环境下使用Linux的命令行工具、脚本和应用程序,而无需进行双系统切换或虚拟机配置。WSL提供了与Linux内核的兼容性,使得在Windows上进行开发和运行Linux应用变得更加方便。用户可以在Microsoft Store中下载WSL,安装后即可使用。

1.启用 WSL 相关功能:

打开cmd终端(管理员权限)

运行以下命令以启用虚拟机平台功能:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

在这里插入图片描述

重新启动计算机

2.安装 WSL 2 Linux 内核更新包:
下载适用于你的系统的 WSL 2 Linux 内核更新包:

x64 系统:https://aka.ms/wsl2kernel
在这里插入图片描述

ARM64 系统:https://aka.ms/wsl2kernelarm64
安装下载的。

3.设置 WSL 2 为默认版本:
打开 cmd终端,运行以下命令以将 WSL 2 设置为默认版本:
shell wsl --set-default-version 2

4.安装 Ubuntu 22.04 分发版:
打开 Microsoft Store 应用商店
在搜索栏中搜索 “Ubuntu 22.04”
选择 “Ubuntu 20.04 LTS” 并点击 “获取”
安装完成后,点击 “启动”

在这里插入图片描述

5.配置 Ubuntu 22.04:
在 Ubuntu 20.04 的安装界面中,为新的 Linux 用户设置用户名和密码

在这里插入图片描述

安装显卡驱动

1.Win10安装cuda-wsl驱动

https://developer.nvidia.com/cuda/wsl

确定要安装的版本

从物理设备开始一直到上层应用,CUDA有一条复杂的软件版本依赖链。我们通常从自己电脑的物理GPU型号开始,确定每个环节的软件版本:
GPU物理设备的型号	——决定——>	GPU驱动的版本号	对应关系
GPU驱动的版本号	——决定——>	CUDA的版本号	对应关系
CUDA的版本号	——决定——>	cuDNN的版本号	对应关系
CUDA的版本号,同上	——决定——>	PyTorch等深度学习框架的版本号	对应关系
nvcc -V

在这里插入图片描述

cmd下以root权限进入WSL

wsl -u root 

查看显卡配置

 nvidia-smi

在这里插入图片描述

2.ubuntu安装cuda(如果WIN10下驱动正常,这步不需要再安装)

https://developer.nvidia.com/cuda-toolkit-archive
安装cuda11.8
在这里插入图片描述

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

选install

在这里插入图片描述

在这里插入图片描述
3.安装cuda-toolkit

apt install nvidia-cuda-toolkit

完成查看

nvcc -V

在这里插入图片描述

4.安装cuDNN

https://developer.nvidia.com/rdp/cudnn-archive#a-collapse833-115
在这里插入图片描述

拉取Vits2.3项目

拉取Extra-Fix分支

1.在e盘新建work文件夹

2.进入文件夹cd /mnt/e/work

git clone https://github.com/fishaudio/Bert-VITS2.git

还可以下载下来解压到work目录

在这里插入图片描述
3.安装python3.11

编辑软件源配置文件:

sudo nano /etc/apt/sources.list

在打开的文件中,将现有的软件源地址替换为清华大学的镜像源地址。

将清华源地址粘贴到文件中

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

保存更改,并关闭编辑器(按下 Ctrl + X,然后按下 Y 确认保存,最后按下 Enter 关闭编辑器)。

更新软件包列表:
sudo apt update

安装python3.11

sudo apt install python3.11
apt install python3-pip

4.安装pytorch

PyTorch是一个开源的机器学习框架,用于构建深度学习模型。它提供了丰富的工具和库,使得开发者可以轻松地创建和训练各种类型的神经网络模型
pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/nightly/cu118

警告:以“root”用户身份运行pip可能会导致权限中断以及与系统包管理器发生冲突。建议改用虚拟环境:https://pip.pypa.io/warnings/venv

5.设置虚拟环境

安装venv包,请先安装:

sudo apt install python3-venv

创建新的虚拟环境:

python3 -m venv vitsenv

将vitsenv替换为您想要为虚拟环境的名称

激活虚拟环境:

source vitsenv/bin/activate

在这里插入图片描述

现在您的提示符应该已更改,表示您正在虚拟环境中工作。现在,您可以使用pip而无需使用sudo命令

完成工作后,请记得停用虚拟环境:

deactivate
pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/nightly/cu118

在这里插入图片描述
查看是否成功

python -c "import numpy; print(numpy.__version__)"
python -c "import torch; print(torch.__version__)"

在这里插入图片描述

6.安装需求依赖库

安装项目里的需求依赖库:

 pip install -r requirements.txt

requirements.txt 里面内容

librosa==0.9.2:用于音频和音乐信号处理的Python库。
matplotlib:用于创建可视化图表和绘图的Python库。
numpy:用于进行数值计算和数组操作的Python库。
numba:用于提供即时编译(JIT)功能,加速Python代码的执行。
phonemizer:用于将文本转换为音素序列的Python库。
scipy:用于科学计算和数值分析的Python库。
tensorboard:用于可视化和监控深度学习模型训练过程的工具。
Unidecode:用于将Unicode文本转换为ASCII文本的Python库。
amfm_decompy:用于分解调频调幅信号的Python库。
jieba_fast:用于中文分词的快速版本。
jieba:用于中文分词的Python库。
transformers:用于自然语言处理(NLP)任务的预训练模型和工具的库。
pypinyin:用于将汉字转换为拼音的Python库。
cn2an:用于将中文数字转换为阿拉伯数字的Python库。
gradio==3.50.2:用于构建交互式界面的Python库。
av:用于音频和视频处理的Python库。
mecab-python3:Python的日本语形态分析器MeCab的绑定。
loguru:用于更简单和更美观的日志记录的Python库。
unidic-lite:日本语形态分析字典Unidic的轻量级版本。
cmudict:包含美国英语发音的字典。
fugashi:Python的日本语形态分析器。
num2words:将数字转换为对应的文字表达的Python库。
PyYAML:用于解析和生成YAML文件的Python库。
requests:用于发送HTTP请求的Python库。
pyopenjtalk-prebuilt:日本语文本到语音合成的库。
jaconv:用于日本语文本转换的Python库。
psutil:用于获取系统信息和进程管理的Python库。
GPUtil:用于获取GPU(显卡)信息的Python库。
vector_quantize_pytorch:用于向量量化的PyTorch实现。
g2p_en:用于将英文单词转换为音素序列的Python库。
sentencepiece:用于分词和文本处理的Python库。
pykakasi:用于日语文本转化为罗马字拼音的Python库。
langid:用于自然语言文本语言检测的Python库。
onnxruntime-gpu:用于在GPU上运行ONNX模型的库。
opencc==1.1.7:用于简繁体中文转换的库。
WeTextProcessing>=0.1.10:用于中文文本处理的库

在这里插入图片描述
安装需要一段时间。。。

可以把源设置为清华的

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

苗贺明7.安装转写包

pip install funasr modelscope -i https://pypi.douban.com/simple/

二、模型下载

1.首先是bert模型下载

bert模型链接

https://openi.pcl.ac.cn/Stardust_minus/Bert-VITS2/modelmanage/show_model

2.按各自需要下载英日中的bert模型,将下载得到的pytorch_model.bin文件放入对应文件夹

deberta-v2-large-japanese-char-wwm(必下)

点进去下载
在这里插入图片描述

chinese-roberta-wwm-ext-large (必下)

在这里插入图片描述点进去下载

在这里插入图片描述

3.放进chinese-roberta-wwm-ext-large 下
在这里插入图片描述

将clap模型放入

Bert-VITS2\emotional\clap-htsat-fused
在这里插入图片描述

4.然后我们需要下载训练所需要的预训练模型

先输入

pip install openi

在这里插入图片描述

5.安装启智ai

然后进入以下链接: https://openi.pcl.ac.cn/user/settings/applications

先注册该平台账号,然后生成token(令牌)
在这里插入图片描述在这里插入图片描述保存该令牌,然后回到vits界面,输入openi login

右键粘贴你刚才保存的token
在这里插入图片描述在这里插入图片描述
6.在线下载

openi model download -r Stardust_minus/Bert-VITS2 -m  Bert-VITS2_中文特化修复底模 -p ./pretrained_model    

还可以手工一个一个下载

在这里插入图片描述放置在,你设定的数据集名称文件夹 模型文件夹里,和下面自定义模型文件夹路径一样

在这里插入图片描述

三、生成和修改配置文件

1.首次使用该项目先输入 python resample.py,生成配置文件

在这里插入图片描述

2.然后修改config.yml,根据自己实际情况进行修改

如果你不知道应该怎么修改,可以给我的参考一下

dataset_raw是你放置未处理的音频的文件夹,dataset处理后的数据集文件夹

这两个文件夹都需要手动创建

mirror将它的值从改为"openi"

在这里插入图片描述

3.将标注文本文件全部同意命名为clean_barbara.list,标注文本位于filelist文件夹内(后期用别的软件标注,标注文件在这替换)

在这里插入图片描述

4.自动保存的模型数量,根据需要和自己的硬盘空间进行修改
在这里插入图片描述

5.server内的模型留空[],进入Hiyori UI后再加载模型

在这里插入图片描述在这里插入图片描述

6.webui块的模型路径根据你自己的模型位置进行修改

ctrl+将所有的config.json路径都替换为configs/config.json

在这里插入图片描述
全部配置文件内容如下

# 全局配置
# 对于希望在同一时间使用多个配置文件的情况,例如两个GPU同时跑两个训练集:通过环境变量指定配置文件,不指定则默认为./config.yml# 拟提供通用路径配置,统一存放数据,避免数据放得很乱
# 每个数据集与其对应的模型存放至统一路径下,后续所有的路径配置均为相对于datasetPath的路径
# 不填或者填空则路径为相对于项目根目录的路径
dataset_path: ""# 模型镜像源,默认huggingface,使用openi镜像源需指定openi_token
mirror: "openi"
openi_token: "824fc7f0a921968883b708ea1ad64fe015894b37"  # openi token# resample 音频重采样配置
# 注意, “:” 后需要加空格
resample:# 目标重采样率sampling_rate: 44100# 音频文件输入路径,重采样会将该路径下所有.wav音频文件重采样# 请填入相对于datasetPath的相对路径in_dir: "dataset_raw/XFQLS" # 相对于根目录的路径为 /datasetPath/in_dir# 音频文件重采样后输出路径out_dir: "dataset/XFQLS"# preprocess_text 数据集预处理相关配置
# 注意, “:” 后需要加空格
preprocess_text:# 原始文本文件路径,文本格式应为{wav_path}|{speaker_name}|{language}|{text}。transcription_path: "filelists/clean_barbara.list"# 数据清洗后文本路径,可以不填。不填则将在原始文本目录生成cleaned_path: ""# 训练集路径train_path: "filelists/train.list"# 验证集路径val_path: "filelists/val.list"# 配置文件路径config_path: "configs/config.json"# 每个语言的验证集条数val_per_lang: 4# 验证集最大条数,多于的会被截断并放到训练集中max_val_total: 12# 是否进行数据清洗clean: true# bert_gen 相关配置
# 注意, “:” 后需要加空格
bert_gen:# 训练数据集配置文件路径config_path: "configs/config.json"# 并行数num_processes: 4# 使用设备:可选项 "cuda" 显卡推理,"cpu" cpu推理# 该选项同时决定了get_bert_feature的默认设备device: "cuda"# 使用多卡推理use_multi_device: false# emo_gen 相关配置
# 注意, “:” 后需要加空格
emo_gen:# 训练数据集配置文件路径config_path: "configs/config.json"# 并行数num_processes: 4# 使用设备:可选项 "cuda" 显卡推理,"cpu" cpu推理device: "cuda"# 使用多卡推理use_multi_device: false# train 训练配置
# 注意, “:” 后需要加空格
train_ms:env:MASTER_ADDR: "localhost"MASTER_PORT: 10086WORLD_SIZE: 1LOCAL_RANK: 0RANK: 0# 可以填写任意名的环境变量# THE_ENV_VAR_YOU_NEED_TO_USE: "1234567"# 底模设置base:use_base_model: falserepo_id: "Stardust_minus/Bert-VITS2"model_image: "Bert-VITS2_2.3底模" # openi网页的模型名# 训练模型存储目录:与旧版本的区别,原先数据集是存放在logs/model_name下的,现在改为统一存放在Data/你的数据集/models下model: "data/XFQLS/models"# 配置文件路径config_path: "configs/config.json"# 训练使用的worker,不建议超过CPU核心数num_workers: 5# 关闭此项可以节约接近70%的磁盘空间,但是可能导致实际训练速度变慢和更高的CPU使用率。spec_cache: False# 保存的检查点数量,多于此数目的权重会被删除来节省空间。keep_ckpts: 15# webui webui配置
# 注意, “:” 后需要加空格
webui:# 推理设备device: "cuda"# 模型路径model: "models/G_8000.pth"# 配置文件路径config_path: "configs/config.json"# 端口号port: 7860# 是否公开部署,对外网开放share: false# 是否开启debug模式debug: false# 语种识别库,可选langid, fastlidlanguage_identification_library: "langid"# server-fastapi配置
# 注意, “:” 后需要加空格
# 注意,本配置下的所有配置均为相对于根目录的路径
server:# 端口号port: 5000# 模型默认使用设备:但是当前并没有实现这个配置。device: "cuda"# 需要加载的所有模型的配置,可以填多个模型,也可以不填模型,等网页成功后手动加载模型# 不加载模型的配置格式:删除默认给的两个模型配置,给models赋值 [ ],也就是空列表。参考模型2的speakers 即 models: [ ]# 注意,所有模型都必须正确配置model与config的路径,空路径会导致加载错误。# 也可以不填模型,等网页加载成功后手动填写models。models:- # 模型的路径model: ""# 模型configs/config.json的路径config: ""# 模型使用设备,若填写则会覆盖默认配置device: "cuda"# 模型默认使用的语言language: "ZH"# 模型人物默认参数# 不必填写所有人物,不填的使用默认值# 暂时不用填写,当前尚未实现按人区分配置speakers:- speaker: "科比"sdp_ratio: 0.2noise_scale: 0.6noise_scale_w: 0.8length_scale: 1- speaker: "五条悟"sdp_ratio: 0.3noise_scale: 0.7noise_scale_w: 0.8length_scale: 0.5- speaker: "安倍晋三"sdp_ratio: 0.2noise_scale: 0.6noise_scale_w: 0.8length_scale: 1.2- # 模型的路径model: ""# 模型configs/config.json的路径config: ""# 模型使用设备,若填写则会覆盖默认配置device: "cpu"# 模型默认使用的语言language: "JP"# 模型人物默认参数# 不必填写所有人物,不填的使用默认值speakers: [ ] # 也可以不填# 百度翻译开放平台 api配置
# api接入文档 https://api.fanyi.baidu.com/doc/21
# 请不要在github等网站公开分享你的app id 与 key
translate:# 你的APPID"app_key": ""# 你的密钥"secret_key": ""

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

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

相关文章

【MySQL进阶之路】好友推荐系统索引设计实战

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

VMware虚拟机安装openEuler系统(二)(2024)

下面我们进行openEuler系统的一些简单配置。 1. 开启openEuler系统 在VMware Workstation Pro虚拟机软件中找到安装好的openEuler操作系统虚拟机并开启。 等待开启。 2. 安装配置 进入后选择第一个“Install openEuler 20.03-LTS”。 3. 选择系统语言 为虚拟机设置系统语言…

《统计学简易速速上手小册》第5章:回归分析(2024 最新版)

文章目录 5.1 线性回归基础5.1.1 基础知识5.1.2 主要案例:员工薪资预测5.1.3 拓展案例 1:广告支出与销售额关系5.1.4 拓展案例 2:房价与多个因素的关系 5.2 多元回归分析5.2.1 基础知识5.2.2 主要案例:企业收益与多因素关系分析5.…

【数学建模】【2024年】【第40届】【MCM/ICM】【D题 五大湖的水位控制问题】【解题思路】

一、题目 (一) 赛题原文 2024 ICM Problem D: Great Lakes Water Problem Background The Great Lakes of the United States and Canada are the largest group of freshwater lakes in the world. The five lakes and connecting waterways const…

Ajax+JSON学习一

AjaxJSON学习一 文章目录 前言一、Ajax简介1.1. Ajax基础1.2. 同源策略 二、Ajax的核心技术2.1. XMLHttpRequest 类2.2. open指定请求2.3. setRequestHeader 设置请求头2.4. send发送请求主体2.5. Ajax取得响应 总结 前言 一、Ajax简介 1.1. Ajax基础 Ajax 的全称是 Asynchron…

C++ dfs状态的表示(五十三)【第十三篇】

今天我们将来求解N皇后问题。 1.N皇后问题 N 皇后问题是一个经典的问题,在一个 NN 的棋盘上放置 N 个皇后,每行刚好放置一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)。 上图就是一个合法的 8 皇后的解。 N 皇后问题是指:计算一共有多少种合法的…

游泳佩戴耳机会对耳朵有危害吗?什么样的耳机适合游泳时佩戴

游泳佩戴耳机会对耳朵造成危害吗?答案并不绝对,关键在于选择什么样的耳机。如果使用的是普通耳机或者防水性能不高的蓝牙耳机,在水中使用时,水可能会进入耳机内部,导致耳机损坏,甚至引发中耳炎等耳部疾病。…

MySQL-运维

一、日志 1.错误日志 错误日志是MySQL中最重要的日志之一,它记录了当mysql启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关性息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的&#xf…

Linux---网络套接字

端口号 端口号 端口号是一个2字节16位的整数; 端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理; IP地址 端口号能够标识网络上的某一台主机的某一个进程; 一个端口号只能被一个进程占用 在公网上,IP地址能表示唯一的一台主机&…

分享66个时间日期JS特效,总有一款适合您

分享66个时间日期JS特效,总有一款适合您 66个时间日期JS特效下载链接:https://pan.baidu.com/s/1niQUpDSs10gfGYKYnEgKRg?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,…

单片机学习笔记---AT24C02(I2C总线)

目录 有关储存器的介绍 存储器的简介 存储器简化模型 AT24C02介绍 AT24C02引脚及应用电路 I2C总线介绍 I2C电路规范 开漏输出模式和弱上拉模式 其中一个设备的内部结构 I2C通信是怎么实现的 I2C时序结构 起始条件和终止条件 发送一个字节 接收一个字节 发送应答…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月12日,星期一

每天一分钟,知晓天下事! 2024年2月12日 星期一 农历正月初三 1、 注意错峰出行!今起全国公路网流量将处于高位运行状态。 2、 中国旅游研究院:预计2024年国内旅游人数或超60亿人次。 3、 阔别四年,北京、贵阳、张家…