本地训练,开箱可用,Bert-VITS2 V2.0.2版本本地基于现有数据集训练(原神刻晴)

这篇具有很好参考价值的文章主要介绍了本地训练,开箱可用,Bert-VITS2 V2.0.2版本本地基于现有数据集训练(原神刻晴)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本地训练,开箱可用,Bert-VITS2 V2.0.2版本本地基于现有数据集训练(原神刻晴)

按照固有思维方式,深度学习的训练环节应该在云端,毕竟本地硬件条件有限。但事实上,在语音识别和自然语言处理层面,即使相对较少的数据量也可以训练出高性能的模型,对于预算有限的同学们来说,也没必要花冤枉钱上“云端”了,本次我们来演示如何在本地训练Bert-VITS2 V2.0.2模型。

Bert-VITS2 V2.0.2基于现有数据集

目前Bert-VITS2 V2.0.2大体上有两种训练方式,第一种是基于现有数据集,即原神各角色已经标注好的语音数据,这部分内容是公开的,但是不能商用,可以在这里下载:

https://pan.ai-hobbyist.org/Genshin%20Datasets/%E4%B8%AD%E6%96%87%20-%20Chinese/%E5%88%86%E8%A7%92%E8%89%B2%20-%20Single/%E8%A7%92%E8%89%B2%E8%AF%AD%E9%9F%B3%20-%20Character

我们只需要选择喜欢的角色进行下载即可:

第二种是没有现有的数据集,即假设我们想克隆地球人随便任意一个人的声音,这种情况下我们需要收集这个人的语音素材,然后自己制作数据集。

本次我们只演示第一种训练方式,即训练现有数据集的原神角色,第二种暂且按下不表。

Bert-VITS2 V2.0.2配置模型

首先克隆项目:

git clone https://github.com/v3ucn/Bert-VITS2_V202_Train.git

随后下载新版的bert模型:

链接:https://pan.baidu.com/s/11vLNEVDeP_8YhYIJUjcUeg?pwd=v3uc

下载成功后,解压放入项目的bert目录,目录结构如下所示:

E:\work\Bert-VITS2-v202\bert>tree /f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
│   bert_models.json  
│  
├───bert-base-japanese-v3  
│       config.json  
│       README.md  
│       tokenizer_config.json  
│       vocab.txt  
│  
├───bert-large-japanese-v2  
│       config.json  
│       README.md  
│       tokenizer_config.json  
│       vocab.txt  
│  
├───chinese-roberta-wwm-ext-large  
│       added_tokens.json  
│       config.json  
│       pytorch_model.bin  
│       README.md  
│       special_tokens_map.json  
│       tokenizer.json  
│       tokenizer_config.json  
│       vocab.txt  
│  
├───deberta-v2-large-japanese  
│       config.json  
│       pytorch_model.bin  
│       README.md  
│       special_tokens_map.json  
│       tokenizer.json  
│       tokenizer_config.json  
│  
└───deberta-v3-large  
        config.json  
        generator_config.json  
        pytorch_model.bin  
        README.md  
        spm.model  
        tokenizer_config.json

随后下载预训练模型:

https://openi.pcl.ac.cn/Stardust_minus/Bert-VITS2/modelmanage/model_readme_tmpl?name=Bert-VITS2%E4%B8%AD%E6%97%A5%E8%8B%B1%E5%BA%95%E6%A8%A1-fix

放入项目的pretrained_models目录,如下所示:

E:\work\Bert-VITS2-v202\pretrained_models>tree /f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
    DUR_0.pth  
    D_0.pth  
    G_0.pth

接着把上文提到的刻晴数据集放入项目的Data目录中的raw目录:

E:\work\Bert-VITS2-v202\Data\keqing\raw\keqing>tree /f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
vo_card_keqing_endOfGame_fail_01.lab  
vo_card_keqing_endOfGame_fail_01.wav

如果想定制化目录结构,可以修改config.yml文件:

bert_gen:  
  config_path: config.json  
  device: cuda  
  num_processes: 2  
  use_multi_device: false  
dataset_path: Data\keqing  
mirror: ''  
openi_token: ''  
preprocess_text:  
  clean: true  
  cleaned_path: filelists/cleaned.list  
  config_path: config.json  
  max_val_total: 8  
  train_path: filelists/train.list  
  transcription_path: filelists/short_character_anno.list  
  val_path: filelists/val.list  
  val_per_spk: 5  
resample:  
  in_dir: raw  
  out_dir: raw  
  sampling_rate: 44100

至此,模型和数据集就配置好了。

Bert-VITS2 V2.0.2数据预处理

标注好的原始数据集并不能够直接进行训练,需要预处理一下,首先需要将原始数据文件转写成为标准的标注文件:

python3 transcribe_genshin.py

生成好的文件:

Data\keqing\raw/keqing/vo_card_keqing_endOfGame_fail_01.wav|keqing|ZH|我会勤加练习,拿下下一次的胜利。  
Data\keqing\raw/keqing/vo_card_keqing_endOfGame_win_01.wav|keqing|ZH|胜负本是常事,不必太过挂怀。  
Data\keqing\raw/keqing/vo_card_keqing_freetalk_01.wav|keqing|ZH|这「七圣召唤」虽说是游戏,但对局之中也隐隐有策算谋略之理。

这里ZH代表中文,新版的Bert-VITS2 V2.0.2也支持日文和英文,代码分别为JP和EN。

随后对文本进行预处理以及生成bert模型可读文件:

python3 preprocess_text.py  
  
python3 bert_gen.py

执行后会产生训练集和验证集文件:

E:\work\Bert-VITS2-v202\Data\keqing\filelists>tree /f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
    cleaned.list  
    short_character_anno.list  
    train.list  
    val.list

检查无误后,数据预处理就完成了。

Bert-VITS2 V2.0.2本地训练

万事俱备,只差训练。先不要着急,打开Data/keqing/config.json配置文件:

{  
  "train": {  
    "log_interval": 50,  
    "eval_interval": 50,  
    "seed": 42,  
    "epochs": 200,  
    "learning_rate": 0.0001,  
    "betas": [  
      0.8,  
      0.99  
    ],  
    "eps": 1e-09,  
    "batch_size": 8,  
    "fp16_run": false,  
    "lr_decay": 0.99995,  
    "segment_size": 16384,  
    "init_lr_ratio": 1,  
    "warmup_epochs": 0,  
    "c_mel": 45,  
    "c_kl": 1.0,  
    "skip_optimizer": false  
  },  
  "data": {  
    "training_files": "Data/keqing/filelists/train.list",  
    "validation_files": "Data/keqing/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": 1,  
    "cleaned_text": true,  
    "spk2id": {  
      "keqing": 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": "2.0"  
}

这里需要调整的参数是batch_size,如果显存不够,需要往下调整,否则会出现“爆显存”的问题,假设显存为8G,那么该数值最好不要超过8。

与此同时,首次训练建议把log_interval和eval_interval参数调小一点,即训练的保存间隔,方便训练过程中随时进行推理验证。

随后输入命令,开始训练:

python3 train_ms.py

程序返回:

11-22 13:20:28 INFO     | data_utils.py:61 | Init dataset...  
100%|█████████████████████████████████████████████████████████████████████████████| 581/581 [00:00<00:00, 48414.40it/s]  
11-22 13:20:28 INFO     | data_utils.py:76 | skipped: 31, total: 581  
11-22 13:20:28 INFO     | data_utils.py:61 | Init dataset...  
100%|████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:00<?, ?it/s]  
11-22 13:20:28 INFO     | data_utils.py:76 | skipped: 0, total: 5  
Using noise scaled MAS for VITS2  
Using duration discriminator for VITS2  
INFO:models:Loaded checkpoint 'Data\keqing\models\DUR_0.pth' (iteration 7)  
INFO:models:Loaded checkpoint 'Data\keqing\models\G_0.pth' (iteration 7)  
INFO:models:Loaded checkpoint 'Data\keqing\models\D_0.pth' (iteration 7)

说明训练已经开始了。

训练过程中,可以通过命令:

python3 -m tensorboard.main --logdir=Data/keqing/models

来查看loss损失率,访问:

http://localhost:6006/#scalars

一般情况下,训练损失率低于50%,并且损失函数在训练集和验证集上都趋于稳定,则可以认为模型已经收敛。收敛的模型就可以为我们所用了,如何使用训练好的模型,请移步:又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享,囿于篇幅,这里不再赘述。

训练好的模型存放在Data/keqing/models目录:

E:\work\Bert-VITS2-v202\Data\keqing\models>tree /f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
│   DUR_0.pth  
│   DUR_550.pth  
│   DUR_600.pth  
│   DUR_650.pth  
│   D_0.pth  
│   D_600.pth  
│   D_650.pth  
│   events.out.tfevents.1700625154.ly.24008.0  
│   events.out.tfevents.1700630428.ly.20380.0  
│   G_0.pth  
│   G_450.pth  
│   G_500.pth  
│   G_550.pth  
│   G_600.pth  
│   G_650.pth  
│   train.log  
│  
└───eval  
        events.out.tfevents.1700625154.ly.24008.1  
        events.out.tfevents.1700630428.ly.20380.1

需要注意的是,首次训练需要将预训练模型拷贝到models目录。

结语

除了中文,Bert-VITS2 V2.0.2也支持日语和英语,同时提供中英日混合的Mix推理模式,欲知后事如何,且听下回分解。文章来源地址https://www.toymoban.com/news/detail-746874.html

到了这里,关于本地训练,开箱可用,Bert-VITS2 V2.0.2版本本地基于现有数据集训练(原神刻晴)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • bert-vits2本地部署报错疑难问题汇总

    bert-vits2.3 win 和wsl bert-vits2本地部署报错疑难问题汇总 问题1: Conda安装requirements里面依赖出现ERROR: No matching distribution found for opencc==1.1.6 解决方法 问题2: error: Microsoft Visual C++ 14.0 or greater is required. Get it with \\\"Microsoft C++ Build Tool 解决方法 安装VS2019 单独安装2个组件 问题3: 训练报错

    2024年02月19日
    浏览(36)
  • 基于GPT3.5逆向 和 本地Bert-Vits2-2.3 的语音智能助手

    各位读者你们好,我最近在研究一个语音助手的项目,是基于GPT3.5网页版的逆向和本地BertVits2-2.3 文字转语音,能实现的事情感觉还挺多,目前实现【无需翻墙,国内网络发送消息,返回答案文字和语音】,网站已上线并未公开链接,以下是演示GIF: 前端使用uni-app完成,登录

    2024年01月24日
    浏览(49)
  • Bert-vits2-2.3-Final,Bert-vits2最终版一键整合包(复刻生化危机艾达王)

    近日,Bert-vits2发布了最新的版本2.3-final,意为最终版,修复了一些已知的bug,添加基于 WavLM 的 Discriminator(来源于 StyleTTS2),令人意外的是,因情感控制效果不佳,去除了 CLAP情感模型,换成了相对简单的 BERT 融合语义方式。 事实上,经过2.2版本的测试,CLAP情感模型的效果

    2024年02月04日
    浏览(47)
  • Python - Bert-VITS2 语音推理服务部署

    目录 一.引言 二.服务搭建 1.服务配置 2.服务代码 3.服务踩坑 三.服务使用 1.服务启动 2.服务调用 3.服务结果 四.总结 上一篇文章我们介绍了如果使用 conda 搭建 Bert-VITS2 最新版本的环境并训练自定义语音,通过 1000 个 epoch 的训练,我们得到了自定义语音模型,本文基于上文得

    2024年02月02日
    浏览(41)
  • Bert-VITS-2 效果挺好的声音克隆工具

    持中日英三语训练和推理。内置干声分离,切割和标注工具,开箱即用。请点下载量右边的符号查看镜像所对应的具体版本号。 教程地址: sjj​​​​​​​CodeWithGPU | 能复现才是好算法 CodeWithGPU | GitHub AI算法复现社区,能复现才是好算法 https://www.codewithgpu.com/i/fishaudio/Ber

    2024年02月21日
    浏览(44)
  • AIGC:语音克隆模型Bert-VITS2-2.3部署与实战

    单阶段文本到语音模型最近被积极研究,其结果优于两阶段管道系统。以往的单阶段模型虽然取得了较大的进展,但在间歇性非自然性、计算效率、对音素转换依赖性强等方面仍有改进的空间。本文提出VITS2,一种单阶段的文本到语音模型,通过改进之前工作的几个方面,有

    2024年04月17日
    浏览(60)
  • 栩栩如生,音色克隆,Bert-vits2文字转语音打造鬼畜视频实践(Python3.10)

    诸公可知目前最牛逼的TTS免费开源项目是哪一个?没错,是Bert-vits2,没有之一。它是在本来已经极其强大的Vits项目中融入了Bert大模型,基本上解决了VITS的语气韵律问题,在效果非常出色的情况下训练的成本开销普通人也完全可以接受。 BERT的核心思想是通过在大规模文本语

    2024年02月08日
    浏览(49)
  • 义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)

    Bert-vits2更新了版本V210,修正了日/英的bert对齐问题,效果进一步优化;对底模使用的数据进行优化和加量,减少finetune失败以及电音的可能性;日语bert更换了模型,完善了多语言推理。 更多情报请参考Bert-vits2官网: 最近的事情大家也都晓得了,马督工义无反顾带头冲锋,身

    2024年02月05日
    浏览(50)
  • 又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享

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

    2024年02月05日
    浏览(50)
  • 首次引入大模型!Bert-vits2-Extra中文特化版40秒素材复刻巫师3叶奈法

    Bert-vits2项目又更新了,更新了一个新的分支:中文特化,所谓中文特化,即针对中文音色的特殊优化版本,纯中文底模效果百尺竿头更进一步,同时首次引入了大模型,使用国产IDEA-CCNL/Erlangshen-MegatronBert-1.3B大模型作为Bert特征提取,基本上完全解决了发音的bad case,同时在情

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包