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

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

ye.jpg

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  
│       .gitattributes  
│       config.json  
│       README.md  
│       tokenizer_config.json  
│       vocab.txt  
│  
├───bert-large-japanese-v2  
│       .gitattributes  
│       config.json  
│       README.md  
│       tokenizer_config.json  
│       vocab.txt  
│  
├───chinese-roberta-wwm-ext-large  
│       .gitattributes  
│       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  
│       .gitattributes  
│       config.json  
│       pytorch_model.bin  
│       README.md  
│       special_tokens_map.json  
│       tokenizer.json  
│       tokenizer_config.json  
│  
├───deberta-v2-large-japanese-char-wwm  
│       .gitattributes  
│       config.json  
│       pytorch_model.bin  
│       README.md  
│       special_tokens_map.json  
│       tokenizer_config.json  
│       vocab.txt  
│  
├───deberta-v3-large  
│       .gitattributes  
│       config.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
相关文章
|
机器学习/深度学习 缓存 自然语言处理
义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)
Bert-vits2更新了版本V210,修正了日/英的bert对齐问题,效果进一步优化;对底模使用的数据进行优化和加量,减少finetune失败以及电音的可能性;日语bert更换了模型,完善了多语言推理。
义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)
|
数据采集 机器学习/深度学习 人工智能
Bert-vits2-2.3-Final,Bert-vits2最终版一键整合包(复刻生化危机艾达王)
近日,Bert-vits2发布了最新的版本2.3-final,意为最终版,修复了一些已知的bug,添加基于 WavLM 的 Discriminator(来源于 StyleTTS2),令人意外的是,因情感控制效果不佳,去除了 CLAP情感模型,换成了相对简单的 BERT 融合语义方式。
Bert-vits2-2.3-Final,Bert-vits2最终版一键整合包(复刻生化危机艾达王)
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
1215 1
|
人工智能 算法 API
百川智能发布角色大模型 ,零代码复刻角色轻松满足游戏领域定制需求
百川智能于2024年1月9日推出Baichuan-NPC角色大模型,优化了角色知识和对话能力,提升游戏AI角色的真实感。同时,公司发布了零代码角色创建平台,允许游戏厂商通过简单描述快速定制角色,降低开发成本和提高效率。Baichuan-NPC通过大量针对性训练,解决了角色扮演的“非拟人化”问题,增强了角色一致性。此外,百川智能的角色创建平台结合搜索增强知识库,提供高自由度的角色定制,支持实时调优和一键代码复制,简化了开发流程,已获得创梦天地、完美世界游戏等合作伙伴的认可。
243 2
百川智能发布角色大模型 ,零代码复刻角色轻松满足游戏领域定制需求
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
264 0
|
2月前
|
机器学习/深度学习 数据采集 人工智能
35_BERT与RoBERTa:优化编码器模型
2018年,Google发布的BERT(Bidirectional Encoder Representations from Transformers)模型彻底改变了自然语言处理领域的格局。作为第一个真正意义上的双向预训练语言模型,BERT通过创新的掩码语言模型(Masked Language Model, MLM)预训练策略,使模型能够同时从左右两侧的上下文信息中学习语言表示,从而在多项NLP任务上取得了突破性进展。
|
2月前
|
人工智能 自然语言处理 调度
24_BERT模型详解:从预训练到微调的全方位指南
BERT(Bidirectional Encoder Representations from Transformers)是由Google AI在2018年推出的革命性预训练语言模型,它彻底改变了自然语言处理(NLP)领域的格局。通过创新的双向训练方式,BERT能够捕捉词语在上下文环境中的完整语义信息,从而在各种下游任务中取得了突破性的表现。
|
6月前
|
存储 机器学习/深度学习 自然语言处理
避坑指南:PAI-DLC分布式训练BERT模型的3大性能优化策略
本文基于电商搜索场景下的BERT-Large模型训练优化实践,针对数据供给、通信效率与计算资源利用率三大瓶颈,提出异步IO流水线、梯度压缩+拓扑感知、算子融合+混合精度等策略。实测在128卡V100集群上训练速度提升3.2倍,GPU利用率提升至89.3%,训练成本降低70%。适用于大规模分布式深度学习任务的性能调优。
286 3
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
昇腾AI行业案例(四):基于 Bert 模型实现文本分类
欢迎学习《昇腾行业应用案例》的“基于 Bert 模型实现文本分类”实验。在本实验中,您将学习如何使用利用 NLP (natural language processing) 领域的AI模型来构建一个端到端的文本系统,并使用开源数据集进行效果验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
778 0
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
1107 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!

热门文章

最新文章