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:中文特化修复版

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

解决方案:

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

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

重新启动计算机

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

x64 系统:https://aka.ms/wsl2kernel
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第3张图片

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” 并点击 “获取”
安装完成后,点击 “启动”

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

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

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

安装显卡驱动

1.Win10安装cuda-wsl驱动

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

确定要安装的版本

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

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

cmd下以root权限进入WSL

wsl -u root 

查看显卡配置

 nvidia-smi

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

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

https://developer.nvidia.com/cuda-toolkit-archive
安装cuda11.8
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第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

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

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第10张图片
3.安装cuda-toolkit

apt install nvidia-cuda-toolkit

完成查看

nvcc -V

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

4.安装cuDNN

https://developer.nvidia.com/rdp/cudnn-archive#a-collapse833-115
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第12张图片

拉取Vits2.3项目

拉取Extra-Fix分支

1.在e盘新建work文件夹

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

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

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

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第13张图片
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

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第14张图片
查看是否成功

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(必下)

点进去下载
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第15张图片

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

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第16张图片点进去下载

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

3.放进chinese-roberta-wwm-ext-large 下
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第18张图片

将clap模型放入

Bert-VITS2\emotional\clap-htsat-fused
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第19张图片

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

先输入

pip install openi

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

5.安装启智ai

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

先注册该平台账号,然后生成token(令牌)
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第21张图片在这里插入图片描述保存该令牌,然后回到vits界面,输入openi login

右键粘贴你刚才保存的token
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第22张图片在这里插入图片描述
6.在线下载



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

还可以手工一个一个下载

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第23张图片放置在,你设定的数据集名称文件夹 模型文件夹里,和下面自定义模型文件夹路径一样

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

三、生成和修改配置文件

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

在这里插入图片描述

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

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

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

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

mirror将它的值从改为"openi"

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

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

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

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

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

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

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

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

WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)_第29张图片
全部配置文件内容如下

# 全局配置
# 对于希望在同一时间使用多个配置文件的情况,例如两个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: 10086
    WORLD_SIZE: 1
    LOCAL_RANK: 0
    RANK: 0
    # 可以填写任意名的环境变量
    # THE_ENV_VAR_YOU_NEED_TO_USE: "1234567"
  # 底模设置
  base:
    use_base_model: false
    repo_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, fastlid
  language_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.2
          noise_scale: 0.6
          noise_scale_w: 0.8
          length_scale: 1
        - speaker: "五条悟"
          sdp_ratio: 0.3
          noise_scale: 0.7
          noise_scale_w: 0.8
          length_scale: 0.5
        - speaker: "安倍晋三"
          sdp_ratio: 0.2
          noise_scale: 0.6
          noise_scale_w: 0.8
          length_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": ""

你可能感兴趣的:(Bert-VITS2,ubuntu,linux,运维)