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

2023-11-04 08:59

本文主要是介绍AI数字人:基于VITS-fast-fine-tuning构建多speaker语音训练,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 vitspip install imageio==2.4.1
pip install --upgrade youtube-dl
pip install moviepycd 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.pypython denoise_audio.pypython long_audio_transcribe.py --languages "CJE" --whisper_size mediumpython short_audio_transcribe.py --languages "CJE" --whisper_size mediumpython 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即可体验语音生成效果

这篇关于AI数字人:基于VITS-fast-fine-tuning构建多speaker语音训练的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/344684

相关文章

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Spring AI使用tool Calling和MCP的示例详解

《SpringAI使用toolCalling和MCP的示例详解》SpringAI1.0.0.M6引入ToolCalling与MCP协议,提升AI与工具交互的扩展性与标准化,支持信息检索、行动执行等... 目录深入探索 Spring AI聊天接口示例Function CallingMCPSTDIOSSE结束语

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化: