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轮效果可以了