Bert-vits2项目近期迸裂更新,放出了v2.0.2版别的代码,批改了存在于2.0从前版别的严重bug,而且重炼了底模,本次更新是即1.1.1版别后最严重的更新,支撑了三言语练习及混合组成,而且做到向下兼容,能够推理老版别的模型,本次我们依据新版V2.0.2来本地推理原神小姐姐们的音色模型。
具体的更新日志请参见官网:
https://github.com/fishaudio/Bert-VITS2/releases
模型装备
首要克隆官方最近的v2.0.2代码:
git clone https://github.com/fishaudio/Bert-VITS2.git
随后在项目的根目录创立Data目录
cd Bert-VITS2
mkdir Data
该目录用来寄存音色模型文件。
随后下载雷电将军和八重神子的音色模型:
链接:https://pan.baidu.com/s/1e9gKidfvYKLU2IzjoW3sVw?pwd=v3uc
这两个模型都是依据老版别进行练习的,囿于篇幅,练习流程先按下不表。
需求注意的是,模型文件地点的目录不支撑中文,最好改成英文,目录结构如下所示:
E:workBert-VITS2-v202_launch_yingAndBachongData>tree/F
Folder PATH listing for volume myssd
Volume serial number is 7CE3-15AE
E:.
├───bachong
│ │ config.json
│ │
│ └───models
│ G_47700.pth
│
└───ying
│ config.json
│ config.yml
│
├───custom_character_voice
├───filelists
└───models
G_4600.pth
这儿.pth文件就是模型本体,config.json是模型装备文件。
当然,除了笔者共享的模型,也能够加载之前老版别自己练习的模型,但需求注意的是,必须指定模型练习的版别,也就是当时练习操作过程中Bert-VITS2的版别,比如笔者的模型练习时是依据v1.1.1,那么就必须在config中进行指定:
{
"train": {
"log_interval": 100,
"eval_interval": 100,
"seed": 52,
"epochs": 200,
"learning_rate": 0.0001,
"betas": [
0.8,
0.99
],
"eps": 1e-09,
"batch_size": 4,
"fp16_run": false,
"lr_decay": 0.999875,
"segment_size": 16384,
"init_lr_ratio": 1,
"warmup_epochs": 0,
"c_mel": 45,
"c_kl": 1.0,
"skip_optimizer": true
},
"data": {
"training_files": "filelists/train.list",
"validation_files": "filelists/val.list",
"max_wav_value": 32768.0,
"sampling_rate": 44100,
"filter_length": 2048,
"hop_length": 512,
"win_length": 2048,
"n_mel_channels": 128,
"mel_fmin": 0.0,
"mel_fmax": null,
"add_blank": true,
"n_speakers": 2,
"cleaned_text": true,
"spk2id": {
"bachong": 0
}
},
"model": {
"use_spk_conditioned_encoder": true,
"use_noise_scaled_mas": true,
"use_mel_posterior_encoder": false,
"use_duration_discriminator": true,
"inter_channels": 192,
"hidden_channels": 192,
"filter_channels": 768,
"n_heads": 2,
"n_layers": 6,
"kernel_size": 3,
"p_dropout": 0.1,
"resblock": "1",
"resblock_kernel_sizes": [
3,
7,
11
],
"resblock_dilation_sizes": [
[
1,
3,
5
],
[
1,
3,
5
],
[
1,
3,
5
]
],
"upsample_rates": [
8,
8,
2,
2,
2
],
"upsample_initial_channel": 512,
"upsample_kernel_sizes": [
16,
16,
8,
2,
2
],
"n_layers_q": 3,
"use_spectral_norm": false,
"gin_channels": 256
},
"version": "1.1.1"
}
最后的version参数用来指定模型,假如不指定模型,体系默许是v2.0版别,假设模型和版别不匹配,会形成本地推理的音色异常。
修改好版别之后,能够通过pip装置依靠:
pip install -r requirements.txt
至此,模型就装备好了。
本地推理
依靠装置好之后,在根目录执行命令:
python3 server_fastapi.py
程序返回:
E:workBert-VITS2-v202_launch_yingAndBachong>python server_fastapi.py
E:workBert-VITS2-v202_launch_yingAndBachongvenvlibsite-packagestorchnnutilsweight_norm.py:30: UserWarning: torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.
warnings.warn("torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.")
11-20 11:08:46 SUCCESS | server_fastapi.py:101 | 增加模型E:workBert-VITS2-v202_launch_yingAndBachongDatayingmodelsG_4600.pth,运用装备文件E:workBert-VITS2-v202_launch_yingAndBachongDatayingconfig.json
11-20 11:08:46 SUCCESS | server_fastapi.py:107 | 模型已存在,增加模型引证。
11-20 11:08:46 WARNING | server_fastapi.py:626 | 本地服务,请勿将服务端口暴露于外网
11-20 11:08:46 INFO | server_fastapi.py:627 | api文档地址 http://127.0.0.1:7860/docs
阐明服务现已启动,没错,Bert-vits2的推理api是依据Fast-api的。关于Fast-api结构,请移步:
2020年是时候更新你的技能武器库了:Asgi vs Wsgi(FastAPI vs Flask)
这儿能够将两个模型一同加载进来。
右侧参数为推理设备和言语,默许是运用cuda和中文。
假如是没有N卡的同学,也能够挑选用cpu进行本地推理。
随后将推理文本写入文本框:
这儿值得一提的是,Bert-vits2解决了长文本报错的问题,假如是长文本,只需求翻开自动切分的选项即可,体系会依据文本中的标点进行切割,削减每次推理的token数量,然后避免报错。
最后新版别支撑多模型同时推理:
只需求挑选对应的模型选项,然后下载音频即可。
结语
笔者现已采用:一键整合,万用万灵,Python3.10项目嵌入式一键整合包的制造(Embed)的方法将项目做成了一键整合包,解压后运行launch.bat文件,开箱可用,一键推理:
链接:https://pan.baidu.com/s/12pinwHb5mmYvskYTZtLKvg?pwd=v3uc
欢迎诸公下载品鉴。