• 又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享


    Bert-vits2项目近期炸裂更新,放出了v2.0.2版本的代码,修正了存在于2.0先前版本的重大bug,并且重炼了底模,本次更新是即1.1.1版本后最重大的更新,支持了三语言训练及混合合成,并且做到向下兼容,可以推理老版本的模型,本次我们基于新版V2.0.2来本地推理原神小姐姐们的音色模型。

    具体的更新日志请参见官网:

    https://github.com/fishaudio/Bert-VITS2/releases
    
    • 1

    模型配置

    首先克隆官方最近的v2.0.2代码:

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

    随后在项目的根目录创建Data目录

    cd Bert-VITS2
    mkdir Data
    
    • 1
    • 2

    该目录用来存放音色模型文件。

    随后下载雷电将军和八重神子的音色模型:

    链接:https://pan.baidu.com/s/1e9gKidfvYKLU2IzjoW3sVw?pwd=v3uc 
    
    • 1

    这两个模型都是基于老版本进行训练的,囿于篇幅,训练流程先按下不表。

    需要注意的是,模型文件所在的目录不支持中文,最好改成英文,目录结构如下所示:

    E:\work\Bert-VITS2-v202_launch_yingAndBachong\Data>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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    这里.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"  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96

    最后的version参数用来指定模型,如果不指定模型,系统默认是v2.0版本,假设模型和版本不匹配,会造成本地推理的音色异常。

    修改好版本之后,可以通过pip安装依赖:

    pip install -r requirements.txt
    
    • 1

    至此,模型就配置好了。

    本地推理

    依赖安装好之后,在根目录执行命令:

    python3 server_fastapi.py
    
    • 1

    程序返回:

    E:\work\Bert-VITS2-v202_launch_yingAndBachong>python server_fastapi.py  
    E:\work\Bert-VITS2-v202_launch_yingAndBachong\venv\lib\site-packages\torch\nn\utils\weight_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:\work\Bert-VITS2-v202_launch_yingAndBachong\Data\ying\models\G_4600.pth,使用配置文件E:\work\Bert-VITS2-v202_launch_yingAndBachong\Data\ying\config.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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    说明服务已经启动,没错,Bert-vits2的推理api是基于Fast-api的。关于Fast-api框架,请移步:

    2020年是时候更新你的技术武器库了:Asgi vs Wsgi(FastAPI vs Flask)

    随后访问http://127.0.0.1:7860/:

    这里可以将两个模型一起加载进来。

    右侧参数为推理设备和语言,默认是使用cuda和中文。

    如果是没有N卡的同学,也可以选择用cpu进行本地推理。

    随后将推理文本写入文本框:

    这里值得一提的是,Bert-vits2解决了长文本报错的问题,如果是长文本,只需要打开自动切分的选项即可,系统会根据文本中的标点进行切割,减少每次推理的token数量,从而避免报错。

    最后新版本支持多模型同时推理:

    只需要选择对应的模型选项,然后下载音频即可。

    结语

    笔者已经采用:一键整合,万用万灵,Python3.10项目嵌入式一键整合包的制作(Embed)的方式将项目做成了一键整合包,解压后运行launch.bat文件,开箱可用,一键推理:

    链接:https://pan.baidu.com/s/12pinwHb5mmYvskYTZtLKvg?pwd=v3uc
    
    • 1

    欢迎诸公下载品鉴。

  • 相关阅读:
    JuiceFS 在 Elasticsearch/ClickHouse 温冷数据存储中的实践
    互联网摸鱼日报(2023-10-11)
    Gitlab合并代码并解决冲突演示
    【案例分享】H3C设备配置端口镜像
    SpringBoot 06: springboot中使用redis
    设计模式面试系列-03
    vimdiff
    Java学习笔记(十四)
    武汉新时标文化传媒有限公司短视频营销玩法大比拼
    沁恒 CH32V208(三): CH32V208 Ubuntu22.04 Makefile VSCode环境配置
  • 原文地址:https://blog.csdn.net/zcxey2911/article/details/134503958