首次引入大模型!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  
│       .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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/327315.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot基于哨兵模式的Redis(7.2)集群实现读写分离

文章目录 一、前提条件二、SpringBoot访问Redis集群1. 引入依赖2. yaml配置3. 设置读写分离4. 简单的controller 三、运行四、测试1. 写2. 读3. 额外测试 环境 docker desktop for windows 4.23.0redis 7.2Idea 一、前提条件 先根据以下文章搭建一个Redis集群 Docker-Compo…

竞赛练一练 第24期:NOC大赛每日一练,scratch题目刷题第3天,包含答案解析

023年NOC大赛创客智慧编程赛项图形化复赛模拟题一,包含答案解析 本次题目来源:NOC 大赛创客智慧编程赛项图形化复赛模拟题(一) 第一题: 制作一个生日贺卡小程序. 1.点击绿旗后蛋糕出现在 (0,-80) 的位置,大小为 100,造型为 cake-b2.当碰到鼠标指针时,将造型切换为 cak…

odoo16 连接postgresql错误

odoo16 连接postgresql错误 odoo16 用odoo15的环境出错,看到是psycopg2.OperationalError分析是postgresql版本问题,安装了13版本,还是出错,多版本共存问题如下: Traceback (most recent call last):File "D:\o…

MyBatis-Plus框架学习笔记

先赞后看,养成习惯!!!❤️ ❤️ ❤️ 文章码字不易,如果喜欢可以关注我哦! ​如果本篇内容对你有所启发,欢迎访问我的个人博客了解更多内容:链接地址 MyBatisPlus (简称…

时序分解 | Matlab实现CPO-VMD基于冠豪猪优化算法(CPO)优化VMD变分模态分解时间序列信号分解

时序分解 | Matlab实现CPO-VMD基于冠豪猪优化算法(CPO)优化VMD变分模态分解时间序列信号分解 目录 时序分解 | Matlab实现CPO-VMD基于冠豪猪优化算法(CPO)优化VMD变分模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 【原创】CPO-VMD【24年新算法…

晶振老化和晶振引脚氧化的原因与影响

相信大部分的客户都会遇到晶振老化和晶振引脚氧化,而很多新手也难民啊会混淆晶振老化和晶振引脚样话这两个概念,也不理解。那么接下来,晶发给大家详细讲解,这两种情况怎么发生以及如何避免此类情况发生,保护我们的晶振…

【Java集合篇】为什么HashMap的Cap是2^n,如何保证?

为什么HashMap的Cap是2^n,如何保证? ✔️目录✔️ 为什么是2 ^ n ?✔️为什么 X %2^n X & (2^n - 1) ? ✔️如何保证✔️初始化时期保证✔️扩容时期保证 ✔️目录 ✔️ 为什么是2 ^ n ? HashMap是通过 (table.length - 1) & (key.hashCode …

【AIGC-图片生成视频系列-7】MoonShot:实现多模态条件下的可控视频生成和编辑

目录 一. 贡献概述 二. 方法详解​编辑 三. Zero-Shot主题定制视频生成 四. 文本到视频生成 五. 直接使用图像ControlNet 六. 图像动画比较 七. 视频编辑 八. 针对视频生成中多模态 Cross-Attn的消融实验 九. 对视频生成中多模态 Cross-Attn的消融实验 十. 论文 十一…

java数据结构与算法刷题-----LeetCode62. 不同路径

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难,但它就是固定套路而已。其实动态规划只…

强化学习1——多臂老虎机(上)

在强化学习中,关注智能体在与环境的交互中学习,成为试错型学习。多臂老虎机不存在状态信息,只有动作和奖励,是最简单的“和环境交互中学习“。 什么是多臂老虎机 老虎机_百度百科 (baidu.com) 多臂老虎机即有多个摇杆的老虎机&a…

[python]gym安装报错ERROR: Failed building wheel for box2d-py

报错截图: box2d是一个游戏领域的2D图形C引擎,用来模拟2D刚体物体运动和碰撞。 swig是一个将c/c代码封装为Python库的工具(是Python调用c/c库的一种常见手段),所以在运行时box2d会依赖到swig。而swig并不是一个python库…

vivado xsim 终端 模拟

只模拟的话直接终端运行会快很多 计数器举例 mkdir srccounter.v module counter(input wire clk,input wire rst_n,output reg[31:0] cnt ); always (posedge clk or negedge rst_n)if(!rst_n)cnt < 31h0;elsecnt < cnt1;endmodule tb.v module tb; wire[31:0] out…