AI数字人:基于VITS-fast-fine-tuning构建多speaker语音训练

2023-11-14

1 VITS模型介绍

        VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种语音合成方法,它使用预先训练好的语音编码器 (vocoder声码器) 将文本转化为语音。

        VITS 的工作流程如下:

        (1)将文本输入 VITS 系统,系统会将文本转化为发音规则。

        (2)将发音规则输入预先训练好的语音编码器 (vocoder),vocoder 会根据发音规则生成语音信号的特征表示。

        (3)将语音信号的特征表示输入预先训练好的语音合成模型,语音合成模型会根据特征表示生成合成语音。

        VITS 的优点是生成的语音质量较高,能够生成流畅的语音。但是,VITS 的缺点是需要大量的训练语料来训练 vocoder 和语音合成模型,同时需要较复杂的训练流程。

        论文链接:论文地址

2 VITS-fast-fine-tuning介绍

        VITS-fast-fine-tuning是在原始VITS(VITS源码)基础上开发出的一站式多speaker训练的傻瓜式版本,简单易用,可以基于VITS-fast-fine-tuning半小时内无需标注训练任意角色的语音,并提供了基础的预训练模型,可以在预训练模型上进行二次训练,实现任意角色的语音生成。

        代码地址如下:VITS-fast-fine-tuning源码

        训练步骤如下:

        (1)准备预训练数据,按照制定格式和路径进行存放,数据无需标注

        (2)对数据进行预处理,采用whisper模型进行语音提取和切分,形成标注数据。

                whisper的内容详见:whisper

        (3)使用提出的带标注的数据进行语音合成训练

3 VITS-fast-fine-tuning部署与训练

    (1)conda环境准备

        conda环境准备详见:annoconda

    (2)运行环境安装

conda create -n vits python=3.9
conda activate vits

pip install imageio==2.4.1
pip install --upgrade youtube-dl
pip install moviepy


cd VITS-fast-fine-tuning
pip install -r requirements.txt

     (3)训练准备

mkdir monotonic_align
python setup.py build_ext --inplace
cd ..
mkdir pretrained_models
mkdir video_data
mkdir raw_audio
mkdir denoised_audio
mkdir custom_character_voice
mkdir segmented_character_voice

(4)数据准备

数据下载地址:数据集合包

下载完成后:

  • 将“sampled_audio4ft”和“sampled_audio4ft.txt”放入VITS-fast-fine-tuning的根目录下
  • 将“D_0.pth”和“G_0.pth”放入pretrained_models目录下
  • 将“finetune_speaker.json”放入config目录下
  • 将“baker”放入custom_character_voice目录下

注意,如果使用其他文件,命名规则如下:

视频:./video_data/
长音频:./raw_audio/
短音频:./custom_character_voice/
1.其中短音频的格式是:
 ├───aaa
 ├   ├───xxx.wav
 ├   ├───...
 ├   └───zzz.wav
 ├───bbb
 ├   ├───xxx.wav
 ├   ├───...
 ├   └───zzz.wav
 ├───...
 ├
 └───Character_name_n
     ├───xxx.wav
     ├───...
     └───zzz.wav
质量要求:2秒以上,10秒以内,尽量不要有背景噪音。
数量要求:一个角色至少10条,最好每个角色20条以上。
2.以角色名命名的长音频文件,音频内只能有单说话人,背景音会被自动去除。
命名格式为:{角色名}_{数字}.wav
同一个角色可以放多个音频,数字不同
(例如:aaa_001.wav, bbb_001.wav),必须是.wav文件。
3.以角色名命名的长视频文件,视频内只能有单说话人,背景音会被自动去除。
命名格式为:{角色名称}_{数字}.mp4
(例如:aaa_332452.mp4, bbb_957315.mp4),必须是.mp4文件。

(5)启动数据的预处理

python video2audio.py

python denoise_audio.py

python long_audio_transcribe.py --languages "CJE" --whisper_size medium

python short_audio_transcribe.py --languages "CJE" --whisper_size medium

python preprocess_v2.py

参数--add_auxiliary_data选择:

如果总样本少于100条时增加,即最后一行改为如下命令执行:

python preprocess_v2.py --add_auxiliary_data True

(6)启动模型训练

 为保证模型可以二次训练,修改 finetune_speaker_v2.py文件中的代码

utils.save_checkpoint(net_g, None, hps.train.learning_rate, epoch, os.path.join(hps.model_dir, "G_{}.pth".format(global_step)))
utils.save_checkpoint(net_g, None, hps.train.learning_rate, epoch,
                              os.path.join(hps.model_dir, "G_latest.pth".format(global_step)))

在保存推理模型的同时,保存判别模型。

启动训练命令如下:

python finetune_speaker_v2.py -m "./OUTPUT_MODEL" --max_epochs "300"

其中参数300为训练300个epochs,可以根据实际情况调整,一般建议200以上

(7)模型推理

将VC_inference.py文件中的

    parser.add_argument("--model_dir", default="./OUTPUT_MODEL/G_latest.pth", help="directory to your fine-tuned model")

改为(如训练300个epochs):

    parser.add_argument("--model_dir", default="./OUTPUT_MODEL/G_300.pth", help="directory to your fine-tuned model")

运行启动命令:

python VC_inference.py

启动的语音生成界面如下:

 输入文字点击generate即可体验语音生成效果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AI数字人:基于VITS-fast-fine-tuning构建多speaker语音训练 的相关文章

随机推荐

  • libev学习系列之三:libev编译安装

    libev学习系列之三 libev编译安装 版本说明 版本 作者 日期 备注 0 1 ZY 2019 5 31 初稿 目录 文章目录 libev学习系列之三 libev编译安装 版本说明 目录 源码结构 正常编译 交叉编译 源码结构 4 2
  • 龙书虎书鲸书啃不动?试试豆瓣评分9.5的猴书

    相传 编译原理界有三大圣书 龙书是为Compilers Principles Techniques and Tools 虎书是为Modern Compiler Implementation in C 鲸书是为Advanced Compile
  • python自动化办公(三十一)TKinter 先登录授权窗口,授权成功后进入master主窗口

    一 主简介 先登录授权窗口 比如验证账号密码信息等等 授权成功后进入master主窗口 验证成功后 进入主页面 Tkinter实现登录成功后进入主界面 月半的博客 CSDN博客 tkinter登录成功跳转主窗体
  • 安装Pycharm工具 -- ubuntu18.04

    在Ubuntu18 04下 pycharm工具的安装及其快捷方式的创建 下载pycharm安装包 tar gz包 网址 https www jetbrains com pycharm tar gz 安装包解压缩 此处没有指定解压到哪个路径
  • 最经典的黑客技术入门知识

    最经典的黑客技术入门知识 整理 Ackarlix 第一节 什么是黑客 以我的理解 黑客 大体上应该分为 正 邪 两类 正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善 而邪派黑客则是通过各种黑客技能对系统进行攻击 入侵或者
  • js原型和原型链你只要看这一篇

    一 原型概述 任何对象都有一个原型对象 这个原型对象由对象的内置属性 proto 指向它的构造函数的prototyoe指向的对象 即任何对象都是由一个构造函数创建的 被创建的对象都可以获得构造函数的prototype属性 注意 对象是没有p
  • mysql数据库内置函数大全_MySQL数据库——内置函数

    MySQL数据库 内置函数 建表并插入数据 create table student id char 36 primary key name varchar 8 not null age int 3 default 0 mobile cha
  • win7用友u8安装教程_如何在win7系统中安装用友u8(图文)

    现在很多大企业或公司都会用到用友u8软件 相信大家对用友u8都比较熟悉了 一些新手不知道如何在win7系统中安装用友u8 所以今天给大家带来就是在win7系统中安装用友u8的方法 解决方法如下 1 打开 控制面板 程序和功能 打开或关闭wi
  • 【C++】:用sort对string类型进行排序

    前言 这个问题来自于leetcode上面的一道题 Valid Anagram Given two strings s and t write a function to determine if t is an anagram of s F
  • 第3关:文件查看器

    编程要求 实现对给定文件夹目录结构的展示 并以文件名按升序排序的形式打印至控制台 如果是文件夹则在其名字之前加上 若是文件则加上 上级目录与下级目录 下级文件用两个空格作为间隔 补充完善右侧代码区中的showDirStructure Fil
  • 【经典】synergy共享鼠标键盘/一套鼠标键盘操作多台电脑

    使用场景 用一套鼠标键盘控制两个或多个电脑屏幕 所有电脑位于同一局域网下 win10 操作系统 安装 synergy step1 下载 下载地址 synergy step2 安装 选择自己想要安装在的目录然后一直 next 最后 finis
  • java生成PDF(图片,模板,表格)

    刚接到了一个需求 生成一个pdf 一开始以为挺简单的 通过模板生成嘛 我也发过相应的文章 根据模板直接生成pdf 响应到前端或者根据模板生成pdf 直接指定下载位置 这两种方案都可以 不过这篇文章主要讲的生成的pdf是既有模板填充还需要自己
  • hdu 2586 How far away ?

    Problem acm hdu edu cn showproblem php pid 2586 Meaning 给一棵 n 个点的树 和 n 1 条边的边权 多次询问树上两点的距离 Analysis 以任意顶点为根 DFS 预处理出所有结点
  • 【数据库MongoDB的学习】

    一 数据库和文件的主要区别 1 数据库有数据库表 行和列的概念 让我们存储操作数据更方便 2 数据库提供了非常方便的接口 可以让 nodejs php java net 很方便的实现增加修改删 除功能 二 关系型和非关系型数据库的介绍 关系
  • 深度学习数字仪表盘识别_一种改进的卷积神经网络的数显仪表识别方法

    数显仪表 就是一种显示数字的仪器 便于人们了解相关信息 目前 数显仪表被广泛的应用于航天 农业 工业等各个行业中 但出于工作条件和成本控制等原因 仍有很多的仪表无法直接获得读数 大多由人工读取 但是人工无法长时间且实时记录 还有些地方工人不
  • Deepin操作系统丨一台10年前的家用联想台式机重装国产Linux系统,制作成生信服务器

    本篇笔记是利用个人电脑搭建Linux系统 deepin 20 8 的教程 包括系统下载 映像刻录 启动盘制作 电脑BIOS设置 安装系统 故障解决 驱动更新 软件下载 conda配置 R语言和Rstudio server配置 远程SSH配置
  • 【深度学习】入门的25个概念

    神经网络基础 1 神经元 Neuron 就像形成我们大脑基本元素的神经元一样 神经元形成神经网络的基本结构 想象一下 当我们得到新信息时我们该怎么做 当我们获取信息时 我们一般会处理它 然后生成一个输出 类似地 在神经网络的情况下 神经元接
  • R ggplot2坐标轴设置相关函数

    1 设置坐标轴标签 xlab ylab labs x NULL y NULL 2 设置坐标轴刻度范围 xlim ylim 3 添加标题 ggtitle 4 theme 控制字体 坐标轴刻度 背景以及背景上的线条 4 1 在theme 内部有
  • 出现—passwd:Authentication token manipulation error—错误的解决办法

    在服务器安装过程中 经常遇到软件安装失败 有一部分原因是在linux系统禁止添加新的用户和修改原有用户 在网上找了一篇解决此问题的文章 特转到此处作为参考 文章 http blog sina com cn s blog 70c9c4b401
  • AI数字人:基于VITS-fast-fine-tuning构建多speaker语音训练

    1 VITS模型介绍 VITS Variational Inference with adversarial learning for end to end Text to Speech 是一种语音合成方法 它使用预先训练好的语音编码器 v