• 首次引入大模型!Bert-vits2-Extra中文特化版40秒素材复刻巫师3叶奈法


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

    更多情报请参见Bert-vits2项目官网:

    https://github.com/fishaudio/Bert-VITS2/releases/tag/Extra
    

    本次我们基于Bert-vits2中文特化版本通过40秒素材复刻巫师3角色叶奈法(Yennefer)的音色。

    配置Bert-vits2中文特化版本

    首先克隆项目:

    git clone https://github.com/v3ucn/Bert-VITS2-Extra_-.git
    

    注意这里是针对官方的Extra分支的修改版本,增加了音频切分和转写。

    随后下载新的纯中文底模:

    https://openi.pcl.ac.cn/Stardust_minus/Bert-VITS2/modelmanage/show_model
    

    同时还需要下载IDEA-CCNL/Erlangshen-MegatronBert-1.3B大模型的预训练模型:

    值得一提的是,这个新炼的纯中文底模非常牛逼,官方作者仅通过一个5秒的素材就可以完美复刻音色。

    关于作者的中文特化底模极限测试:

    https://www.bilibili.com/video/BV1Fa4y1B7HB/
    

    随后将模型放入对应的文件夹,bert模型文件结构如下:

    E:\work\Bert-VITS2-Extra\bert>tree /f  
    Folder PATH listing for volume myssd  
    Volume serial number is 7CE3-15AE  
    E:.  
    │   bert_models.json  
    │  
    ├───bert-base-japanese-v3  
    │       .gitattributesconfig.json  
    │       README.md  
    │       tokenizer_config.json  
    │       vocab.txt  
    │  
    ├───bert-large-japanese-v2  
    │       .gitattributesconfig.json  
    │       README.md  
    │       tokenizer_config.json  
    │       vocab.txt  
    │  
    ├───chinese-roberta-wwm-ext-large.gitattributes  
    │       added_tokens.jsonconfig.json  
    │       pytorch_model.bin  
    │       README.md  
    │       special_tokens_map.json  
    │       tokenizer.json  
    │       tokenizer_config.json  
    │       vocab.txt  
    │  
    ├───deberta-v2-large-japanese  
    │       .gitattributesconfig.json  
    │       pytorch_model.bin  
    │       README.md  
    │       special_tokens_map.json  
    │       tokenizer.json  
    │       tokenizer_config.json  
    │  
    ├───deberta-v2-large-japanese-char-wwm  
    │       .gitattributesconfig.json  
    │       pytorch_model.bin  
    │       README.md  
    │       special_tokens_map.json  
    │       tokenizer_config.json  
    │       vocab.txt  
    │  
    ├───deberta-v3-large.gitattributesconfig.json  
    │       generator_config.json  
    │       pytorch_model.bin  
    │       README.md  
    │       spm.model  
    │       tokenizer_config.json  
    │  
    ├───Erlangshen-DeBERTa-v2-710M-Chinese  
    │       config.json  
    │       special_tokens_map.json  
    │       tokenizer_config.json  
    │       vocab.txt  
    │  
    ├───Erlangshen-MegatronBert-1.3B-Chinese  
    │       config.json  
    │       pytorch_model.bin  
    │       vocab.txt  
    │  
    └───Erlangshen-MegatronBert-3.9B-Chinese  
            config.json  
            special_tokens_map.json  
            tokenizer_config.json  
            vocab.txt
    

    很明显,这里关于Erlangshen-MegatronBert大模型,其实有三个参数选择,有710m和1.3b以及3.9B,作者选择了居中的1.3b大模型。

    这里介绍一下国产的Erlangshen-MegatronBert大模型。

    Erlangshen-MegatronBert 是一个具有 39 亿参数的中文 BERT 模型,它是目前最大的中文 BERT 模型之一。这个模型的编码器结构为主,专注于解决各种自然语言理解任务。它同时,鉴于中文语法和大规模训练的难度,使用了四种预训练策略来改进 BERT,Erlangshen-MegatronBert 模型适用于各种自然语言理解任务,包括文本生成、文本分类、问答等,这个模型的权重和代码都是开源的,可以在 Hugging Face 和 CSDN 博客等平台上找到。

    Erlangshen-MegatronBert 模型可以应用于多种领域,如 AI 模拟声音、数字人虚拟主播等。

    另外需要注意的是,clap模型也已经回归,结构如下:

    E:\work\Bert-VITS2-Extra\emotional\clap-htsat-fused>tree /f  
    Folder PATH listing for volume myssd  
    Volume serial number is 7CE3-15AE  
    E:.  
        .gitattributes  
        config.json  
        merges.txt  
        preprocessor_config.json  
        pytorch_model.bin  
        README.md  
        special_tokens_map.json  
        tokenizer.json  
        tokenizer_config.json  
        vocab.json  
      
    No subfolders exist
    

    clap主要负责情感风格的引导。2.3版本去掉了,中文特化又加了回来。

    至此模型就配置好了。

    Bert-vits2中文特化版本训练和推理

    首先把叶奈法的音频素材放入角色的raw目录。

    随后需要对数据进行预处理操作:

    python3 audio_slicer.py  
    python3 short_audio_transcribe.py
    

    这里是切分和转写。

    接着运行预处理的webui:

    python3 webui_preprocess.py
    

    这里需要注意的是,bert特征文件的生成会变慢,因为需要大模型的参与。

    后续应该会有一些改进。

    数据处理之后,应该包括重采样音频,bert特征文件,以及clap特征文件:

    E:\work\Bert-VITS2-Extra\Data\Yennefer\wavs>tree /f  
    Folder PATH listing for volume myssd  
    Volume serial number is 7CE3-15AE  
    E:.  
        Yennefer_0.bert.pt  
        Yennefer_0.emo.pt  
        Yennefer_0.spec.pt  
        Yennefer_0.wav  
        Yennefer_1.bert.pt  
        Yennefer_1.emo.pt  
        Yennefer_1.spec.pt  
        Yennefer_1.wav  
        Yennefer_10.bert.pt  
        Yennefer_10.emo.pt  
        Yennefer_10.spec.pt  
        Yennefer_10.wav  
        Yennefer_11.bert.pt  
        Yennefer_11.emo.pt  
        Yennefer_11.spec.pt  
        Yennefer_11.wav  
        Yennefer_12.bert.pt  
        Yennefer_12.emo.pt  
        Yennefer_12.spec.pt  
        Yennefer_12.wav  
        Yennefer_13.bert.pt  
        Yennefer_13.emo.pt  
        Yennefer_13.spec.pt  
        Yennefer_13.wav  
        Yennefer_14.bert.pt  
        Yennefer_14.emo.pt  
        Yennefer_14.spec.pt  
        Yennefer_14.wav  
        Yennefer_15.bert.pt  
        Yennefer_15.emo.pt  
        Yennefer_15.spec.pt  
        Yennefer_15.wav  
        Yennefer_16.bert.pt  
        Yennefer_16.emo.pt  
        Yennefer_16.spec.pt  
        Yennefer_16.wav  
        Yennefer_17.bert.pt  
        Yennefer_17.emo.pt  
        Yennefer_17.spec.pt  
        Yennefer_17.wav  
        Yennefer_18.bert.pt  
        Yennefer_18.emo.pt  
        Yennefer_18.spec.pt  
        Yennefer_18.wav  
        Yennefer_19.bert.pt  
        Yennefer_19.emo.pt  
        Yennefer_19.spec.pt  
        Yennefer_19.wav  
        Yennefer_2.bert.pt  
        Yennefer_2.emo.pt  
        Yennefer_2.spec.pt  
        Yennefer_2.wav  
        Yennefer_20.bert.pt  
        Yennefer_20.emo.pt  
        Yennefer_20.spec.pt  
        Yennefer_20.wav  
        Yennefer_3.bert.pt  
        Yennefer_3.emo.pt  
        Yennefer_3.spec.pt  
        Yennefer_3.wav  
        Yennefer_4.bert.pt  
        Yennefer_4.emo.pt  
        Yennefer_4.spec.pt  
        Yennefer_4.wav  
        Yennefer_5.bert.pt  
        Yennefer_5.emo.pt  
        Yennefer_5.spec.pt  
        Yennefer_5.wav  
        Yennefer_6.bert.pt  
        Yennefer_6.emo.pt  
        Yennefer_6.spec.pt  
        Yennefer_6.wav  
        Yennefer_7.bert.pt  
        Yennefer_7.emo.pt  
        Yennefer_7.spec.pt  
        Yennefer_7.wav  
        Yennefer_8.bert.pt  
        Yennefer_8.emo.pt  
        Yennefer_8.spec.pt  
        Yennefer_8.wav  
        Yennefer_9.bert.pt  
        Yennefer_9.emo.pt  
        Yennefer_9.spec.pt  
        Yennefer_9.wav
    

    随后训练即可:

    python3 train_ms.py
    

    结语

    Bert-vits2中文特化版本引入了大模型,导致入门的门槛略微变高了一点,官方说至少需要8G显存才可以跑,实际上6G也是可以的,如果bert大模型选择参数更少的版本,相信运行的门槛会进一步的降低。

    最后奉上整合包链接:

    整合包链接:https://pan.quark.cn/s/754f236ef864
    
  • 相关阅读:
    《算法导论》12.3 插入和删除
    MTK平台导航栏按键修改-Android13
    L6.linux命令每日一练 -- 第二章 文件和目录操作命令 -- touch和ls命令
    远程控制软件
    PG::Seppuku
    FFmpeg入门详解之70:获取音视频流信息(Metadata)
    Unity 声音的控制
    容器云平台监控告警体系(三)—— 使用Prometheus Operator部署并管理Prometheus Server
    关于mysql数据文件损坏导致的mysql无法启动的问题
    深度学习笔记其六:现代卷积神经网络和PYTORCH
  • 原文地址:https://www.cnblogs.com/v3ucn/p/17949874