Bert-vits2-2.3-Final,Bert-vits2最终版一键整合包(复刻生化危机艾达王)

在这里插入图片描述

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

事实上,经过2.2版本的测试,CLAP情感模型的效果还是不错的,关于2.2版本,请移步:

Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)

更多情报请关注Bert-vits2官网:

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

本次我们基于最新版Bert-vits2-2.3来复刻生化危机经典角色艾达王(ada wong)的声音。

Bert-vits2-2.3项目配置

首先克隆项目:

git clone https://github.com/v3ucn/Bert-vits2-V2.3.git

注意该项目fork自Bert-vits2的2.3分支,在其基础上增加了素材切分和转写标注等功能,更易于使用。

随后进入项目:

cd Bert-vits2-V2.3

安装依赖:

pip3 install -r requirements.txt

随后下载对应的模型,首先是bert模型:

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

放入到bert目录:

E:\work\Bert-VITS2-2.3\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

注意,其中每个子目录中的pytorch_model.bin就是bert模型本体。

随后还得下载clap模型,虽然推理已经把clap去掉了,同时下载wav2vec2-large-robust-12-ft-emotion-msp-dim模型,放入到项目的emotional目录:

E:\work\Bert-VITS2-2.3\emotional>tree /f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
├───clap-htsat-fused  
│       .gitattributes  
│       config.json  
│       merges.txt  
│       preprocessor_config.json  
│       pytorch_model.bin  
│       README.md  
│       special_tokens_map.json  
│       tokenizer.json  
│       tokenizer_config.json  
│       vocab.json  
│  
└───wav2vec2-large-robust-12-ft-emotion-msp-dim  
        .gitattributes  
        config.json  
        LICENSE  
        preprocessor_config.json  
        pytorch_model.bin  
        README.md  
        vocab.json

最后下载底模:

https://huggingface.co/OedoSoldier/Bert-VITS2-2.3

放入到角色的models目录即可。

请注意这次2.3的底模是4个文件。

Bert-vits2-2.3数据预处理

把艾达王的语音素材放入到Data/ada/raw目录中,执行切分脚本:

python3 audio_slicer.py

会切分成小片素材:

E:\work\Bert-VITS2-2.3\Data\ada\raw>tree /f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
    ada_0.wav  
    ada_1.wav  
    ada_10.wav  
    ada_11.wav  
    ada_12.wav  
    ada_13.wav  
    ada_14.wav  
    ada_15.wav  
    ada_16.wav  
    ada_17.wav  
    ada_18.wav  
    ada_19.wav  
    ada_2.wav  
    ada_20.wav  
    ada_21.wav  
    ada_22.wav  
    ada_23.wav  
    ada_24.wav  
    ada_25.wav  
    ada_26.wav  
    ada_3.wav  
    ada_4.wav  
    ada_5.wav  
    ada_6.wav  
    ada_7.wav  
    ada_8.wav  
    ada_9.wav

随后运行转写和标注:

python3 short_audio_transcribe.py

程序返回:

E:\work\Bert-VITS2-2.3\venv\lib\site-packages\whisper\timing.py:58: NumbaDeprecationWarning: The 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.  
  def backtrace(trace: np.ndarray):  
Data/ada/raw  
Detected language: en  
I do. The kind you like.  
Processed: 1/27  
Detected language: en  
Now where's the amber?  
Processed: 2/27  
Detected language: en  
Leave the girl. She's lost no matter what.  
Processed: 3/27  
Detected language: en  
You walk away now, and who knows?  
Processed: 4/27  
Detected language: en  
Maybe you'll live to meet me again.  
Processed: 5/27  
Detected language: en  
And I might get you that greeting you were looking for.  
Processed: 6/27  
Detected language: en  
How about we continue this discussion another time?  
Processed: 7/27  
Detected language: en  
Sorry, nothing yet.  
Processed: 8/27  
Detected language: en  
But my little helper is creating  
Processed: 9/27  
Detected language: en  
Quite the commotion.  
Processed: 10/27  
Detected language: en  
Everything will work out just fine.  
Processed: 11/27  
Detected language: en  
He's a good boy. Predictable.  
Processed: 12/27  
Detected language: en  
The deal was, we get you out of here when you deliver the amber. No amber, no protection, Louise.  
Processed: 13/27  
Detected language: en  
Nothing personal, Leon.  
Processed: 14/27  
Detected language: en  
Louise and I had an arrangement.  
Processed: 15/27  
Detected language: en  
Don't worry, I'll take good care of it.  
Processed: 16/27  
Detected language: en  
Just one question.  
Processed: 17/27  
Detected language: en  
What are you planning to do with this?  
Processed: 18/27  
Detected language: en  
So, we're talking millions of casualties?  
Processed: 19/27  
Detected language: en  
We're changing course. Now.  
Processed: 20/27  
Detected language: en  
You can stop right there, Leon.  
Processed: 21/27  
Detected language: en  
wouldn't make me use this.  
Processed: 22/27  
Detected language: en  
Would you? You don't seem surprised.  
Processed: 23/27  
Detected language: en  
Interesting.  
Processed: 24/27  
Detected language: en  
Not a bad move  
Processed: 25/27  
Detected language: en  
Very smooth. Ah, Leon.  
Processed: 26/27  
Detected language: en  
You know I don't work and tell.

注意,这里whiper会报一个警告,如果觉得不好看,可以修改timing.py第58行:

修改前  
@numba.jit  
def backtrace(trace: np.ndarray):  
  
修改后  
@numba.jit(nopython=True)  
def backtrace(trace: np.ndarray):

随后,运行web预处理界面:

python3 webui_preprocess.py

随后按照页面提示操作即可:

至此,数据预处理就结束了。

Bert-vits2-2.3训练和推理

在根目录运行命令:

python3 train_ms.py

模型会在models目录生成:

E:\work\Bert-VITS2-2.3\Data\ada\models>tree/f  
Folder PATH listing for volume myssd  
Volume serial number is 7CE3-15AE  
E:.  
    G_150.pth

随后开启推理页面进行推理即可:

python3 webui.py

新的推理页面增加了使用辅助文本的语意来辅助生成对话(语言保持与主文本相同),即以提示词prompt的形式来定制化生成语音的风格。

但又不能使用使用指令式文本(如:开心),要使用带有强烈情感的文本(如:我好快乐!!!)

这就导致生成的语音情感风格比较玄学:

因为你得不停地调整prompt来测试效果,不如之前地clap情感的audio prompt来的直观,但客观上讲,通过bert语义文本引导的风格化情感语音还是有一定效果的。

结语

更新Bert-vits2基础教程的同时,也学习到了很多东西,毫无疑问,Bert-vits2让更多的人领略到了深度学习的魅力,它是一个极其优秀的人工智能入门项目,兴趣永远是最好的老师,与各位共勉,最后奉上Bert-vits2-2.3-Final整合包:

整合包链接:https://pan.baidu.com/s/182LZCu5cyR3nH8EoTBLR-g?pwd=v3uc

与众乡亲同飨。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大模型】快速体验百度智能云千帆AppBuilder搭建知识库与小助手

文章目录 前言千帆AppBuilder什么是千帆AppBuilderAppBuilder能做什么 体验千帆AppBuilderJava知识库高考作文小助手 总结 前言 前天,在【百度智能云智算大会】上,百度智能云千帆AppBuilder正式开放服务。这是一个AI原生应用开发工作台,可以…

计算机网络:应用层

0 本节主要内容 问题描述 解决思路 1 问题描述 不同的网络服务: DNS:用来把人们使用的机器名字(域名)转换为 IP 地址;DHCP:允许一台计算机加入网络和获取 IP 地址,而不用手工配置&#xff1…

【DWJ_1703225514】基于Sklearn航空公司服务质量分析

【Talk is cheap】 # 导入库 import warnings warnings.filterwarnings(ignore)import pandas as pd import seaborn as sns import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False %matplotlib inlinefrom skl…

华为科技:辉煌发展、问题应对与未来战略

导言 作为全球领先的科技公司之一,华为经历了辉煌的发展历程。本文将深入探讨华为科技的发展过程、遇到的问题及解决过程、未来的可用范围,以及在各国的应用和未来的研究趋势。同时,分析在哪些领域华为能够取胜,以及在哪些方面发力…

文献管理软件EndNote X9 mac功能介绍

EndNote X9 for Mac是一款文献管理软件,不仅可以让您免于手动收集和整理您的研究资料和格式化书目的繁琐工作,还可以让您在与同事协调时更加轻松自如。让你的团队专注科研,更高效的共享文献开展协作。 EndNote X9 for Mac功能介绍 引文报告 …

数据结构和算法-红黑树(定义 性质 查找 插入 删除)

文章目录 红黑树的定义和性质为什么要发明红黑树?红黑树怎么考总览红黑树的定义实例:一颗红黑树练习:是否符合红黑树的要求一种可能的出题思路补充概念:节点黑高 红黑树的性质 红黑树的查找红黑树的插入实例小结与黑高相关的理论 …

深入浅出:Swagger annotations (注解)在API文档中的应用

Swagger 提供的注解集是其框架中定义 API 规范和文档的重要工具。这些注解在代码里标注重要部分,为 Swagger 的解析工作铺路,进而生成详尽的 API 文档。开发者编写的注释能够被转换成直观的文档,并展现API端点、参数和响应等信息。这不仅提升…

创新固定资产管理方式:易点易动集成企业微信的全新解决方案

在当今竞争激烈的商业环境中,高效的固定资产管理对于企业的成功至关重要。然而,传统的资产管理方式往往繁琐、容易出错,并且缺乏实时性和准确性。为了解决这些挑战,易点易动与企业微信进行了集成合作,推出了一种全新的…

Enge问题解决教程

目录 解决问题的一般步骤: 针对"Enge问题"的具体建议: 以下是一些普遍适用的解决问题的方法: 以下是一些更深入的Enge浏览器问题和解决办法: 浏览器性能问题: 浏览器插件与网站冲突: 浏览…

输电线路定位:应对复杂环境,确保电力传输畅通无阻

在现代社会,电力作为我们生活和工业生产的重要能源,其安全、稳定、高效的传输显得尤为重要。而输电线路的定位与监测,正是保障电力传输畅通无阻的关键环节。恒峰智慧科技将详细介绍输电线路分布式故障定位及隐患监测装置HFP-GZS2000的技术原理…

RabbitMQ 常用知识点总结,纯手绘23张图带你拿下

请访问原文 Java面试必备!RabbitMQ 常用知识点总结,纯手绘23张图带你拿下 - 知乎 思维导航: 基础 为什么使用 MQ?MQ缺点几种 MQ 实现总结完整架构图RabbitMQ 六种工作模式 1、Simple 简单模式2、work 工作模式3、publish/subsc…

阻塞 IO(BIO)

文章目录 阻塞 IO(BIO)模型等待队列头init_waitqueue_headDECLARE_WAIT_QUEUE_HEAD 等待队列项使用方法驱动程序应用程序模块使用参考 阻塞 IO(BIO) 模型 等待队列是内核实现阻塞和唤醒的内核机制。 等待队列以循环链表为基础结构,链表头和链表项分别为等待队列头和…

Notepad++:多行数据操作

1)删除关键字之后(或之前)的所有字符 删除s之后(包含s)的所有内容;快捷键:s.*$ 替换成功 删除s之前(包含s)的所有内容;快捷键:^.*s 2&#xff09…

ssh远程管理服务

什么是ssh SSH是一种加密的网络协议,用于在不安全的网络中安全地传输数据。它允许用户通过一个安全的通道连接到远程计算机,并在该通道上执行各种网络服务,例如远程登录和文件传输。 SSH使用公钥加密技术来验证远程计算机的身份,并…

NXP iMX8MM 通过 TFTP和 NFS 启动示例

By Toradex秦海 1). 简介 嵌入式 Linux 设备开发调试时候为了方便部署各种配置和修改常用的一种方法就是通过网络启动,具体就是将 Linux Kernel(以及 Device tree/Device Tree overlays) 从开发主机的 TFTP 服务加载, Linux rootfs 通过开发…

mysql SQL执行超时问题

show variables like max_execution_time 使用这个命令查看了,没有设置sql执行超时时间,那么大概率问题就出在阿里的Druid数据库连接池出了问题 尝试着socketTimeout由60000毫秒改成10000毫秒,果然执行了十几秒就超时报错了 socketTime…

【JS】按照a>b>c>d>e>f的优先级,将a,b,c,d,e,f元素进行筛选,选出三个不为空字符的元素进行字符拼接

设计思路: 1、定义一个数组,把元素按照优先级进行排序; 2、 使用 filter() 方法过滤掉空字符串元素,得到一个新的数组; 3、在排序函数中,循环数组,使用 indexOf() 方法获取元素 a 和 b 在数组中的索引&a…

消息队列选型:RocketMQ 适用哪些场景?

关于消息队列的应用场景有很多,不同消息队列由于在实现上有着细微的差别,所以就有各自适合的应用场景。 如果你的工作以业务开发为主,建议了解一下消息队列背后的设计思想,以及其基本的特性,这样才能在业务开发中应用…

24 同学聚会

出局记1&#xff0c;未出局记0 #include <iostream> using namespace::std; using std::cout; using std::cin; int main() {int num,n;cin >> num >> n;int nums[num];for(int i0; i<num; i){nums[i]0;}int t-1;for(int i0; i<num-1; i){for(int j0…

鸿蒙原生应用/元服务开发-Stage模型能力接口(九)下

ohos.app.ability.UIAbility (UIAbility)Caller 通用组件Caller通信客户端调用接口, 用来向通用组件服务端发送约定数据。 Caller.call call(method: string, data: rpc.Parcelable): Promise<void>; 向通用组件服务端发送约定序列化数据。 系统能力&#xff1a;Syste…