Vits2.3-Extra-v2:中文特化,如何训练及推理(新手教程)

环境:

Vits2.3-Extra-v2:中文特化修复版

auto_DataLabeling

干声10分钟左右.wav

问题描述:

Vits2.3-Extra-v2:中文特化,如何训练及推理(新手教程)

解决方案:

一、准备数据集

切分音频

本次音频数据自己录制干声10分钟左右

1.运行auto_DataLabeling\slicer-gui\slicer-gui.exe

2.点击左上角Add Audio Files,导入源音频文件

在这里插入图片描述

静音检测
本应用根据 RMS(均方根)来测量音频的安静度并检测静音部分,计算每个帧的 RMS 值(帧长度设为 hop size(跳跃步长)),RMS 低于 threshold(阈值)的所有帧都将被视为静默帧。

音频切片
一旦检测到自上次切片以来的有效(声音)部分达到 min length (最小长度),且长度超过 min interval(最小间距)的静音部分,该音频将从静音区域内 RMS 值最低的帧脱离出来。长时间静音的部分可能会被删除。

参数
Threshold(阈值)
以 dB 表示的 RMS 阈值。所有 RMS 值都低于此阈值的区域将被视为静音。如果音频有噪音,请增加此值。默认值为 -40。

Minimum Length(最小长度)
每个切片音频剪辑所需的最小长度,以毫秒为单位。默认值为 5000。

Minimum Interval(最小间距)
要切片的静音部分的最小长度,以毫秒为单位。如果音频仅包含短暂的中断,请将此值设置得更小。此值越小,此应用程序可能生成的切片音频剪辑就越多。请注意,此值必须小于 min length 且大于 hop size。默认值为 300。

Hop Size(跳跃步长)
每个 RMS 帧的长度,以毫秒为单位。增加此值将提高切片的精度,但会降低处理速度。默认值为 10。

Maximum Silence Length(最大静音长度)
在切片音频周围保持的最大静音长度,以毫秒为单位。根据需要调整此值。请注意,设置此值并不意味着切片音频中的静音部分具有完全给定的长度。如上所述,该算法将搜索要切片的最佳位置。默认值为 1000。

性能
此应用程序在 Intel i7 8750H CPU 上的运行速度超过 400 倍于实时。速度可能因 CPU 和磁盘而异。

3.将输出目录设置为auto_DataLabeling\raw_audio
在这里插入图片描述
在这里插入图片描述点击start
在这里插入图片描述
切片好的音频经过手动筛选删除过短的音频

在这里插入图片描述
4.运行auto_DataLabeling\raw_audio.VITS数据集批量重命名.bat自动重命名文件

重命名.bat复制到raw_audio然后运行
在这里插入图片描述完成
在这里插入图片描述

5.开始标注并清理标注

根据需求运行0.带标点符号的标注.bat

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

6.运行2.清理用于Bert_VITS2的标注.bat清理标注

在这里插入图片描述如果要另外标注删除long_character_anno里面内容(适用二次标注)
在这里插入图片描述

7.把文音频文件放入Bert-Vits2/dataset/你的数据集名称文件夹中

在这里插入图片描述如果要训练另外一个声音,要先删除\dataset\XFQLS里面文件

8.把clean_barbara.list复制到Bert-Vits2/filelists/文件夹中

提示

别忘了改config.yml中的各个路径, 有些不好改的可以直接复制到Data文件夹里

将生成的clean_barbara.list放入Bert-Vits2/filelists/文件夹中

在这里插入图片描述

二、Vits2.3训练准备

1.声音重采样

将音频文件重采样为44100Hz,可以使用Audacity或者ffmpeg

本次直接运行Bert-VITS2\resample.py

操作的目录见config.yml中的in_dir与out_dir

进入bert-vits2目录

2.运行下面命令,进行声音重采样

python resample.py 

在这里插入图片描述
3.划分标注数据

先改写config.yml中的transcription_path为filelists/clean_barbara.list

在这里插入图片描述

python preprocess_text.py

在这里插入图片描述
4.生成bert特征文件

python bert_gen.py    

如报错缺少模型Erlangshen-MegatronBert-1.3B-Chinese
在这里插入图片描述下载后
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
配置文件这边,改为1
在这里插入图片描述
再次生成ok

在这里插入图片描述
5.生成clap特征文件(2.3版本可以忽略这步)

python clap_gen.py  

6.使用底模:

在config.yml中找到train_ms,将use_base_model改为true,并将num_workers改为少于cpu核心数的值
在这里插入图片描述在这里插入图片描述

三、开始训练

修改config.json中的"train""epoch"为你想要的训练轮数,模型会在每一千步保存一次

在这里插入图片描述

1.运行

Bert-Vits2/train_ms.py

python train_ms.py

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

2.查看训练train日志,可以看到训练进度相关信息
在这里插入图片描述3.如果这个项目训练完了,要训练另外一个声音,先删除models里面全部文件

重命名也可以
在这里插入图片描述
二次训练占用9G显存

在这里插入图片描述

四、推理

1.在models文件夹,把最后训练好的文件G开头G_7000.pth,拿来推理,更改config.yml配置文件里面模型路径

在这里插入图片描述
2.启动web服务,打开推理页面

python webui.py

在这里插入图片描述
3.开始推理

在这里插入图片描述
在这里插入图片描述
4.推理完成,试听音频文件,如果听起来分辨不出说明效果可以,如果不行还需要继续训练,我这epoch 600轮效果可以了

在这里插入图片描述