忍法:声音克隆之术

前言:

最近因为一直在给肚子里面的宝宝做故事胎教,每天(其实是看自己心情抽空讲下故事)都要给宝宝讲故事,心想反正宝宝也看不见我,只听我的声音,干脆偷个懒,克隆自己的声音,然后把故事输入进去。然后老婆想给宝宝做胎教的时候就可以输入一个故事,即使我还没下班也可以给宝宝讲故事,岂不美哉!果然,偷懒是人类进步的阶梯,说干就干。我找了一圈相应的软件,发现GPT-sovits非常符合我的需求,又是开源的,又不需要很长时间的音频素材,简直完美,所以就有了下面的GPT-vosits使用教程。其实网上已经有很多这样的教程了,大家都可以搜一搜,我也只是记录一下自己的使用过程,顺便水(记录)一篇博客,好久没写了,感觉还是的写一写,要不然真的是浪费了自己空闲时间。

使用:

前置条件:

测试通过的环境

下面这个摘自官网,需要用python环境,最好是有一张好的显卡,没有的话cpu其实也可以跑,就是慢嘛。

  • Python 3.9,PyTorch 2.0.1,CUDA 11
  • Python 3.10.13,PyTorch 2.1.2,CUDA 12.3
  • Python 3.9,Pytorch 2.2.2,macOS 14.4.1(Apple 芯片)
  • Python 3.9,PyTorch 2.2.2,CPU 设备

注: numba==0.56.4 需要 python<3.11

因为我这个纯粹是给自己使用,也就没有折腾在云上,或者服务器上的使用操作了。只有windows电脑的使用步骤,如果各位读者是会点编程,有技术背景的话,可以看下最底部的参考资料,里面有官网的语雀文档,里面有介绍怎么在云上使用,linux,macOS使用等情况。

1.从官网下载

官网上提供了两个整合包,0206fix3 整合包或0217fix2 整合包,但是都是huggingface(国外的)下载会很慢。

还有一个方式就是去B站关注下up主:花儿不哭,自动回复消息里面会有连接。这里我提供了花儿不哭大佬给的网盘地址,下载地址,不过还是建议各位去关注一下一键三连,为大佬的开源精神支持一下。

2.下载完之后,解压7z格式的文件

3.双击go-webui.bat

image-20240630145807703

4.语音处理

如果你的音频素材,很干净,比如说就是你手机录的你自己的声音,那可以跳过这一步。

如果你的素材是从网上下载过来的,里面有背景声音,杂音等,那就需要走这一步,这样分离出来的声音效果更好,后续输出声音才会更加准确。

4.1

我这里是从网上下载的一个海绵宝宝的声音素材,里面有背景音,所以我需要先处理下音频文件,勾选是否开启UVR5-WebUI的勾选框,会弹出来一个新的界面。

image-20240630152657725

4.2

参考下面的图,把音频文件放到某个目录,举例,我这里把海绵宝宝的声音放到E:\video\haimianbaobao里面,

然后在下面的第一个红框里面填入文件系统的地址。红框下面那个是可以直接拖入文件的,也可以用下面那个。

接着,填写输出__主人声的文件夹__,比如我的音频文件里面不是有海绵宝宝的声音和背景音吗,海绵宝宝的声音就是主人声,其他的声音都是用不到的,就填写在__非主人声文件夹__里面。这里我特意区分了一下,写了一个vocal(主人声)和others(非主人声)的路径,这个路径不存在也没关系,点击转换之后软件会自动创建文件夹。

image-20240630153511899

5.语音切分

因为这个语音很长的话,训练效果会很差,所以需要将长的语音切短。不过我们这里用的声音其实挺短的,只有10秒,所以只切出来一个文件,如果是比较完整的素材效果会更加好,官网是这么说的如果你的显卡有24G显存,那么高于24秒的音频就要去掉,可以参考一下,看看自己的电脑配置去掉过长的音频。将上一步处理完的音频文件/文件夹地址粘贴过来放到第一个红框里面,然后第二个红框加上/haimianbaobao方便和其他音频文件区分开。

image-20240630154228894

6.语音降噪

官网说这个功能不太好用,慎用,所以我们就不用这个功能了,直接跳过

image-20240630154547313

7.语音打标

输入上一步得到的文件夹地址,然后填入输出文件夹路径,我们依然是加一个haimianbaobao的文件夹

image-20240630155650498

8.校对标注

一般这个标注都是准的,可能有些多音字,或者词语可能会标错之类的,填写好标注文件的地址,开启标注WebUI进行修改调整。我们这里就一句话,也没啥好调的直接跳过了

image-20240630160005789

image-20240630155920374

9.训练模型

切换到第二个TTS的界面,填入标注文件地址,切分文件目录,在点击一键三连即可。

image-20240630160719288

10.微调训练

微调训练反正根据自己的显卡来,我这里是一张8G的4060,batch_size都选的2,两个训练,SoVITS,GPT依次训练过来。训练轮次在显卡显存不太大的时候也调小一点。

image-20240630161743646

11.推理

以上的步骤都弄完了,恭喜你,已经可以愉快的玩耍了。

点到推理的栏目,选择自己之前训练的模型,你可能会看到haimianbaobao的模型有好几个,还有类似e10这样的后缀,表示它的训练轮次,你可以几个模型都试一下哪个效果最好,就用哪个。image-20240630170117469

如果没有看到你训练的模型,点击刷新模型路径试试。

之后再勾选开启TTS推理WebUI,跳转到一个新的界面,然后在输入一段3-10秒参考音频,我们就从切分好的音频文件夹/slicer_opt/haimianbaobao里面选一个长度符合的即可。

image-20240630171959213

接着在输入你想要朗读的文本,点击推理,就会生成一个音频文件,就可以听到你训练的声音读的文本啦~

如果你的文本很长,下面还会有一个辅助长文本切分的工具,可以按照好几种方式切分,然后把在切分好的翁本放入到要合成的文本里面。

训练素材:

输出素材:

后记

训练了自己的声音,以为可以偷懒用软件替代自己给宝宝讲故事了,结果老婆嫌弃软件没有我讲的声情并茂,也没用几次,还是要我自己讲故事。呜呼,白搞。整体从训练过程来看还是比较麻烦的,对于有技术背景的人可能还好,对于小白来说还是比较复杂的,参考资料里面有个UP主对GPT-SoVITs的流程进行了简化,有兴趣的也可以看看。

参考资料:

1.最好的AI声音克隆工具

2.花儿不哭B站视频

3.B站视频教程

4.GPT-SoVITS官网语雀文档

5.基于GPT-SoVITS修改的更加简洁的一键脚本

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

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

相关文章

【SpringBoot】SpringBoot应用Yaml 解析冒号(:)字符串踩坑排查记录

文章目录 一、现象二、原因排查三、怎么办 一、现象 某次在配置中心Nacos上配置了一个字符串&#xff0c;采用YAML格式&#xff0c;如下&#xff1a; id: 114:1代码中采用的是Value注解的形式获取配置&#xff1a; Value("${id}")代码中预期获取的是字符串&#x…

微服务中的Docker详细学习

Docker的个人理解 首先我对于Docker的理解分为两部分&#xff0c;第一是对名字上的理解&#xff0c;我们都知道docker的英文翻译是“码头工人”的意思&#xff0c;所以我们也可以理解为docker是码头上的一个个集装箱的使用。这也与他的图标很相似。其次我是对于其功能上的理解&…

ASP.Net.WebAPI和工具PostMan

1.WebAPI概述 1.1 WebAPI WebAPI 是一种传统的方式&#xff0c;用于构建和暴露 RESTUI风格的Web服务。它提供了丰富的功能和灵活性&#xff0c;可以处理各种HTTP请求&#xff0c;并支持各种数据格式&#xff0c;如JSON、XML等。 WebAPI使用控制器(Controllers)和动作方法(Ac…

力扣每日一题 6/30 记忆化搜索/动态规划

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 494.目标和【中等】 题目&#xff1a; 给你一个非负整数数组 nums 和一个…

INS-GPS组合导航——卡尔曼滤波

系列文章目录 《SAR笔记-卫星轨道建模》 《SAR笔记-卫星轨迹&#xff08;三维建模&#xff09;》 《常用坐标系》 文章目录 前言 一、经典卡尔曼滤波 二、扩展卡尔曼滤波 三、无迹卡尔曼滤波 总结 前言 SAR成像仪器搭载于运动平台&#xff0c;平台的自定位误差将影响SAR…

Redis缓存问题二、缓存雪崩

缓存雪崩 缓存雪崩&#xff1a;是指在同一时段大量的缓存key同时失效或者Redis服务宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 缓存雪崩的解决方案&#xff1a; 给不同的Key的TTL添加随机值利用Redis集群提高服务的可用性给缓存业务添加降级限流策略…

数据库物理结构设计-定义数据库模式结构(概念模式、用户外模式、内模式)、定义数据库、物理结构设计策略

一、引言 如何基于具体的DBMS产品&#xff0c;为数据库逻辑结构设计的结果&#xff0c;即关系数据库模式&#xff0c;制定适合应用要求的物理结构 1、在设计数据库物理结构前&#xff0c;数据库设计人员首先 要充分了解所用的DBMS产品的功能、性能和特点&#xff0c;包括提供…

DarkGPT:基于GPT-4-200k设计的人工智能OSINT助手

关于DarkGPT DarkGPT是一款功能强大的人工智能安全助手&#xff0c;该工具基于GPT-4-200k设计并实现其功能&#xff0c;可以帮助广大研究人员针对泄露数据库进行安全分析和数据查询相关的OSINT操作。 工具要求 openai1.13.3 requests python-dotenv pydantic1.10.12 工具安装 …

word2016中新建页面显示出来的页面没有页眉页脚,只显示正文部分。解决办法

问题描述&#xff1a;word2016中新建页面显示出来的页面没有页眉页脚&#xff0c;只显示正文部分。设置了页边距也不管用。 如图1 图1 解决&#xff1a; 点击“视图”——“多页”——“单页”&#xff0c;即可。如图2操作 图2 结果展示&#xff1a;如图3 图3

操作系统精选题(三)(简答题、概念题)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;操作系统 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 简答题 一、对 CPU、内存、外设并…

红黑树插入删除流程(流程图)

红黑树插入删除流程&#xff08;流程图&#xff09; 红黑树性质 左根右(二叉树&#xff09;根叶黑&#xff08;根节点是黑色的&#xff09;不红红&#xff08;不存在相邻两个红色节点&#xff09;黑路同&#xff08;对于每个节点&#xff0c;从该节点出发到任一空叶节点所经过…

==和equals的区别(面试题)

和equals有什么区别 对于基本数据类型&#xff0c;比较的是值是否相等&#xff0c;对于引用类型则是比较的地址是否相等&#xff1b;对于equals来说&#xff0c;基本数据类型没有equals方法&#xff0c;对于引用类型equals比较的是引用对象是否相同 那针对以上结论&#xff0c…

基于模糊神经网络的时间序列预测(以hopkinsirandeath数据集为例,MATLAB)

模糊神经网络从提出发展到今天,主要有三种形式&#xff1a;算术神经网络、逻辑模糊神经网络和混合模糊神经网络。算术神经网络是最基本的&#xff0c;它主要是对输入量进行模糊化&#xff0c;且网络结构中的权重也是模糊权重&#xff1b;逻辑模糊神经网络的主要特点是模糊权值可…

Web后端开发概述环境搭建项目创建servlet生命周期

Web开发概述 web开发指的就是网页向后再让发送请求,与后端程序进行交互 web后端(javaEE)程序需要运行在服务器中 这样前端才可以对其进行进行访问 什么是服务器? 解释1: 服务器就是一款软件,可以向其发送请求,服务器会做出一个响应.可以在服务器中部署文件&#xff0c;让…

pytest-作用域

固件的作用是为了抽离出重复的工作和方便复用&#xff0c;为了更精细化控制固件&#xff08;比如只想对数据库访问测试脚本使用自动连接关闭的固件&#xff09;&#xff0c;pytest 使用作用域来进行指定固件的使用范围。 在定义固件时&#xff0c;通过 scope 参数声明作用域&a…

专业指南:U盘数据恢复全攻略

一、引言&#xff1a;U盘数据恢复的重要性 在信息化日益发展的今天&#xff0c;U盘已成为我们日常生活中不可或缺的存储设备。然而&#xff0c;由于各种原因&#xff0c;U盘中的数据可能会面临丢失的风险。U盘数据恢复技术便应运而生&#xff0c;它旨在帮助用户找回因误删除、…

Unity制作一个简单抽卡系统(简单好抄)

业务流程&#xff1a;点击抽卡——>播放动画——>显示抽卡面板——>将随机结果添加到面板中——>关闭面板 1.准备素材并导入Unity中&#xff08;包含2个抽卡动画&#xff0c;抽卡结果的图片&#xff0c;一个背景图片&#xff0c;一个你的展示图片&#xff09; 2.给…

【前端】简易化看板

【前端】简易化看板 项目简介 看板分为三个模块&#xff0c;分别是待办&#xff0c;正在做&#xff0c;已做完三个部分。每个事件采取"卡片"式设计&#xff0c;支持任务间拖拽&#xff0c;删除等操作。 代码 import React, { useState } from react; import { Car…

通用管理页面的功能实现

在Windows Forms&#xff08;WinForms&#xff09;应用程序中&#xff0c;创建一个通用的管理页面通常涉及对数据的增删改查&#xff08;CRUD&#xff09;操作&#xff0c;以及一些额外的功能&#xff0c;如数据过滤、排序、导出和导入等。 先看一个仓库管理页面要素。 仓库管…

Redis-主从复制-测试主从模式下的读写操作

文章目录 1、在主机6379写入数据2、在从机6380上写数据报错3、从机只能读数据&#xff0c;不能写数据 1、在主机6379写入数据 127.0.0.1:6379> keys * (empty array) 127.0.0.1:6379> set uname jim OK 127.0.0.1:6379> get uname "jim" 127.0.0.1:6379>…