义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)

Bert-vits2更新了版本V210,修正了日/英的bert对齐问题,效果进一步优化;对底模使用的数据进行优化和加量,减少finetune失败以及电音的可能性;日语bert更换了模型,完善了多语言推理。
更多情报请参考Bert-vits2官网:
https://github.com/fishaudio/Bert-VITS2/releases/tag/2.1
最近的事情大家也都晓得了,马督工义无反顾带头冲锋,身体力行地实践着横渠四句:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
本次我们基于Bert-vits2的新版本V210,复刻马督工,向他致敬。
Bert-vits2V210整备数据集
我们知道马督工的风格是语速极快,也没啥肢体语言,语调上也基本没有变化,除了换气,基本上就像机关枪一样无限念稿。当然,这也是因为睡前消息内容密度过大导致的,但作为深度学习训练数据集来说,睡前消息节目的音频素材显然是不合格的。
真正好的高质量数据集应该包含以下几个特征:
音色多样性:数据集应该包含目标说话人的多个语音样本,涵盖他们在不同情感状态、不同语速和不同音高下的说话。这样可以捕捉到目标说话人在不同情境下的声音特征。
音频质量:确保语音样本的音频质量高,没有明显的噪声、失真或其他干扰。音频质量的好坏直接影响到复刻结果的质量。
多样的语音内容:语音样本应该包含不同类型的语音内容,例如单词、短语、句子和段落。这有助于捕捉到目标说话人在不同语境下的音色特征。
语音平衡:确保数据集中包含目标说话人的样本数量相对平衡,以避免训练出偏向某些样本的模型。
覆盖不同音高:收集目标说话人在不同音高和音调下的语音样本。这样可以更好地捕捉到他们声音的变化和音高特征。
语音环境:包含不同环境下的语音样本,例如室内、室外、静音和嘈杂环境等。这样可以使复刻的音色更具鲁棒性,适应不同的环境条件。
长度和多样性:语音样本的长度和多样性也是需要考虑的因素。收集包含不同长度和语音风格的样本,以便更好地捕捉到目标说话人的声音特征。
当然了,完全满足上述特点基本不太可能,这里选择马督工和刘女神的一段采访视频:
https://www.bilibili.com/video/BV1sN411M73g/

首先将视频进行下载,这里使用you-get:
pip install you-get
运行命令:
https://www.bilibili.com/video/BV1sN411M73g/
下载成功后,将马督工的声音提取出来。
Bert-vits2V210训练模型
首先克隆笔者fork自官网的v210项目:
git clone https://github.com/v3ucn/Bert-VITS2_V210.git
将素材放入Data/meimei/raw/meimei目录中,注意必须是wav文件。
然后更换新的底模,下载地址:
https://openi.pcl.ac.cn/Stardust_minus/Bert-VITS2/modelmanage/show_model
把Bert-VITS2_2.1-Emo底模放入项目的pretrained_models目录。
同时单独把deberta-v2-large-japanese-char-wwm模型放入到项目的bert/deberta-v2-large-japanese-char-wwm目录中。
由于新增了多维情感模型,所以也需要单独下载模型:
https://huggingface.co/facebook/wav2vec2-large-robust/tree/main
放入项目的emotional目录:
E:\work\Bert-VITS2-v21_demo\emotional>tree /f
Folder PATH listing for volume myssd
Volume serial number is 7CE3-15AE
E:.
└───wav2vec2-large-robust-12-ft-emotion-msp-dim
.gitattributes
config.json
LICENSE
preprocessor_config.json
pytorch_model.bin
README.md
vocab.json
运行脚本,切分素材:
python3 audio_slicer.py
随后进行重采样和文本识别:
python3 short_audio_transcribe.py
接着进行标注:
python3 preprocess_text.py
和V2.0.2不同的是,V2.1需要生成多维情感模型文件:
python3 emo_gen.py
相对于原版,新版增加了,针对训练集的spec缓存,可以有效提高训练效率:
python3 spec_gen.py
最后生成bert模型可读文件:
python3 bert_gen.py
最后开始训练:
python3 train_ms.py
Bert-vits2V210模型推理
模型训练好之后,进入到推理环节,首先修改根目录的config.yml文件:
bert_gen:
config_path: config.json
device: cuda
num_processes: 2
use_multi_device: false
dataset_path: Data\meimei
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
server:
device: cuda
models:
- config: ./Data/meimei/config.json
device: cuda
language: ZH
model: ./Data/meimei/models/G_0.pth
speakers:
- length_scale: 1
noise_scale: 0.6
noise_scale_w: 0.8
sdp_ratio: 0.2
speaker: "\u79D1\u6BD4"
- length_scale: 0.5
noise_scale: 0.7
noise_scale_w: 0.8
sdp_ratio: 0.3
speaker: "\u4E94\u6761\u609F"
- length_scale: 1.2
noise_scale: 0.6
noise_scale_w: 0.8
sdp_ratio: 0.2
speaker: "\u5B89\u500D\u664B\u4E09"
- config: ./Data/meimei/config.json
device: cuda
language: JP
model: ./Data/meimei/models/G_0.pth
speakers: []
port: 7860
train_ms:
base:
model_image: "Bert-VITS2_2.1-Emo底模"
repo_id: Stardust_minus/Bert-VITS2
use_base_model: false
config_path: config.json
env:
MASTER_ADDR: localhost
MASTER_PORT: 10086
RANK: 0
THE_ENV_VAR_YOU_NEED_TO_USE: '1234567'
WORLD_SIZE: 1
keep_ckpts: 8
model: models
num_workers: 16
spec_cache: true
translate:
app_key: ''
secret_key: ''
webui:
config_path: Data/meimei/config.json
debug: false
device: cuda
language_identification_library: langid
model: models/G_150.pth
port: 7860
share: false
在后面的webui配置中写入模型文件名:model: models/G_150.pth。
随后启动推理脚本:
python3 webui.py
就可以进行推理了:

请注意,推理建议使用官方的基于Gradio版本的推理页面,而非FastApi的版本。
结语
本项目只是用于Bert-vits2的研究和测试,毫无疑问,想通过30秒的素材就复刻马督工根本是天方夜谭,但马督工的精神,是我们每一个人都可以复刻的。
义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)的更多相关文章
- 复刻smartbits的国产网络测试工具minismb简介
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带 ...
- YY表行推荐十块顶级复刻表,一比一开模复刻,外观堪比正品
随着国内制表工艺的逐渐提升,顶级复刻表的行列里成员越来越多,今天复刻表工厂就总结一下最值得入手的十款顶级复刻表来和大家分享. TOP 10:爱彼 AP15400购买指数★★★ AP15400采用顶级复 ...
- 复刻smartbits的国产网络性能测试工具minismb-如何配置Ping报文
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太网测试工具测试任何ip网络设备的端口吞吐率,带宽, ...
- 复刻smartbits的国产网络测试工具minismb-使用burst模式
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数 ...
- 复刻smartbits的国产网络测试工具minismb-如何添加数据流
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数 ...
- 复刻smartbits的国产网络测试工具minismb-如何测试路由器
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数 ...
- 复刻smartbits的国产网络测试工具minismb-操作技巧
复刻smartbits的国产网络性能测试工具smartbits,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连 ...
- 复刻smartbits的国产网络测试工具minismb功能特点-如何加载、发送PCAP数据包
复刻smartbits的网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太网测试工具测试任何ip网络设备的端口吞吐率,带宽,并发 ...
- 复刻smartbits的国产网络测试工具minismb-如何测试DPI引擎
复刻smartbits的网络性能测试工具MiniSMB,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太网测试工具测试任何ip网络设备的端口吞吐率,带宽,并发 ...
- 复刻smartbits的国产网络测试工具minismb-如何测试协议限速
复刻smartbits的网络性能测试工具MiniSMB,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数和最 ...
随机推荐
- Linux下apt与dpkg的详解
apt是一个包管理工具,用于管理Debian和Ubuntu等基于Debian的Linux发行版中的软件包.它是"Advanced Packaging Tool"的缩写,允许用户在系 ...
- nflsoj 1351 抓住奶牛
这题类似走迷宫,走迷宫是向四个方向进行拓展,而这道题好比是向三个方向拓展,分别是:\(x+1,x-1,x×2\) 在这里拓展的时候我写了一个函数 operation 来计算拓展后的坐标 这里判断坐标是 ...
- 使用API接口获取淘宝商品数据的详细指南
在电商行业中,淘宝作为中国最大的在线购物平台,每天有数以百万计的商品被发布和交易.作为程序员,如果需要获取淘宝商品的详细数据,可以通过调用API接口来实现.本文将详细介绍如何使用淘宝API接口获取 ...
- Mysql中文字符串提取datetime
DATE_FORMAT无法用于提取含中文字符的时间字符串中的时间, 可以通过STR_TO_DATE来提取其中的信息, 如下: SELECT STR_TO_DATE("2018年11月05日 ...
- 《HelloGitHub》第 90 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...
- 聊聊基于Alink库的主成分分析(PCA)
概述 主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维和特征提取技术,用于将高维数据转换为低维的特征空间.其目标是通过线性变换将原始特征转化为一组新的 ...
- Hadoop集群模式安装笔记
前言 Hadoop集群=HDFS集群+YARN集群 特点:两个集群逻辑上分离,通常物理上在一起:并且都是标准的主从架构集群 Hadoop安装 方式一源码编译安装 方式二官方编译安装包 () 环境 Ce ...
- linux常用命令(六)
用于查找系统文件的相关命令 grep find locate grep:查找文件中符号条件的字符串(关键词) 命令语法:grep [选项] 查找模式 [文件名] 选项 选项含义 -E 模式是一个可扩展 ...
- 第五周单元测验题英语教学与互联网 mooc
第五周单元测验题 返回 本次得分为:16.00/20.00, 本次测试的提交时间为:2020-08-30, 如果你认为本次测试成绩不理想,你可以选择 再做一次 . 1 单选(2分) 从评价的主体来看, ...
- svn: E200007: Retrieval of mergeinfo unsupported解决
http://blog.csdn.net/intlgj/article/details/39080605 svn: E200007: Retrieval of mergeinfo unsupport ...