忍法:声音克隆之术

前言:

最近因为一直在给肚子里面的宝宝做故事胎教,每天(其实是看自己心情抽空讲下故事)都要给宝宝讲故事,心想反正宝宝也看不见我,只听我的声音,干脆偷个懒,克隆自己的声音,然后把故事输入进去。然后老婆想给宝宝做胎教的时候就可以输入一个故事,即使我还没下班也可以给宝宝讲故事,岂不美哉!果然,偷懒是人类进步的阶梯,说干就干。我找了一圈相应的软件,发现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.mzph.cn/bicheng/38073.shtml

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

相关文章

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程

方法一&#xff1a;PHP_diseval_extension禁用 Linux CentOS 禁用php的eval函数详细图文教程_centos php 禁用 eval-CSDN博客 这个方法make报错&#xff0c;懒得费时间处理&#xff0c;直接用第二种 方法二&#xff1a;suhosin禁用 不支持PHP8&#xff0c;官方只支持PHP7以下…

【电源专题】为什么带电量计芯片的电池MOS保护要放在高侧

在实际的电量计电池开发中,发现一个很奇怪的现象。传统电池保护IC往往都是将充电保护和放电保护的两个MOS管放在低侧的。如下所示是文章:【电源专题】读一读单节锂电池保护IC规格书 可以看到M1和M2两个MOS管是放在PB-(也就是电池的负端),我们叫做低端。 而BQ28Z610电…

目标检测常用涨点方法:注意力机制小结(空间注意力、通道注意力、CBAM等)

1.通道注意力 通道注意力&#xff08;Channel Attention&#xff09;是在通道维度上对输入数据进行学习&#xff0c;再对不同的通道分配相应的权重表示重要性&#xff0c;从而达到“分配注意力”的效果。SENet&#xff08;Squeeze and Excitation networks) 是一个典型的使用通…

Swift宏的实现

上篇介绍了Swift宏的定义与生声明&#xff0c;本篇主要看看是Swift宏的具体实现。结合Swift中Codable协议&#xff0c;封装一个工具让类或者结构体自动实现Codable协议&#xff0c;并且添加一些协议中没有的功能。 关于Codable协议 Codable很好&#xff0c;但是有一些缺陷&…

yaklang window安装 vscode运行得到“hello world”

资源来源&#xff1a;旅程伊始&#xff1a;Yak 语言环境安装与搭建环境 | Yak Program Language 安装yak语言非常简单&#xff0c;管理员权限打开命令行运行以下命令&#xff1a; powershell (new-object System.Net.WebClient).DownloadFile(https://yaklang.oss-cn-beijing…

1085 PAT单位排行(测试点5)

solution 测试点5&#xff1a;总分是在每个学生加权后再取整&#xff0c;所以用来存学生分数的变量要用浮点型学校排序&#xff1a; 若成绩不同&#xff0c;则按成绩降序若成绩相同&#xff0c;人数不同&#xff0c;则按成绩升序若成绩和人数都相同&#xff0c;则按单位名升序…

理解GPT2:无监督学习的多任务语言模型

目录 一、背景与动机 二、卖点与创新 三、几个问题 四、具体是如何做的 1、更多、优质的数据&#xff0c;更大的模型 2、大数据量&#xff0c;大模型使得zero-shot成为可能 3、使用prompt做下游任务 五、一些资料 一、背景与动机 基于 Transformer 解码器的 GPT-1 证明…

NAS教程丨铁威马如何登录 SSH终端?

适用型号&#xff1a; 所有TNAS 型号 如您有特殊操作需要通过 SSH 终端登录 TNAS&#xff0c;请参照以下指引&#xff1a; (注意: 关于以下操作步骤中的"cd /"的指令,其作用是使当前 SSH/Telnet 连接的位置切换到根目录,以免造成对卷的占用.请不要遗漏它.) Windows…

数据分析的线上云端数据库搭建及Excel和Tableau连接

数据分析的线上云端数据库搭建及Excel和Tableau连接 SQL基础知识 线上SQL训练&#xff1a; SQlZOO: https://www.sqlzoo.net/wiki/SQL_Tutorial 牛客网SQL真题&#xff1a;https://www.nowcoder.com/ta/sql select,from,where, order by, limit, group by, having, substr(),…

【SpringBoot】SpringBoot使用mail实现登录邮箱验证

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 一、前期准备 1 开启邮箱服务 2 SpringBoot导入依赖 3 创建application.yml配置文件 4 创建数据库文件 5 配置redis服务 二、验证邮件发送功能 三、注册功能实现邮箱验证 1 创建User实体类 2 创建UserPa…

DEBOPIE框架:打造最好的ChatGPT交易机器人

本文介绍了如何利用 DEBOPIE 框架并基于 ChatGPT 创建高效交易机器人&#xff0c;并强调了在使用 AI 辅助交易时需要注意的限制以及操作步骤。原文: Build the Best ChatGPT Trading Bots with my “DEBOPIE” Framework 如今有大量文章介绍如何通过 ChatGPT 帮助决定如何以及在…

仓库管理系统12--供应商设置

1、添加供应商窗体 2、布局控件UI <UserControl x:Class"West.StoreMgr.View.SupplierView"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc"http://…

为什么前端传了token,后端一直获取不到?一直报跨域错误?

这是我的前端代码 这是我的后端拦截器 那就需要了解一下 预检请求 对于非简单请求&#xff08;如PUT、DELETE或包含自定义HTTP头的请求&#xff09;&#xff0c;浏览器会先发送一个OPTIONS请求到目标服务器&#xff0c;询问是否允许该跨域请求。这个过程称为预检请求。 当opt…

【爬虫实战】今日头条-关键词搜索-快速整理出1w条数据

快速整理头条关键词数据工具&#xff0c;学习效率妥妥翻倍&#xff01;&#xff01;&#xff01;本案例源码仅供学习参考&#xff01; 项目功能简介&#xff1a; 1.可视化式配置&#xff1b; 2.任意关键词&#xff1b; 3.自动翻页&#xff1b; 4.支持指定最大翻页页码&…

IP地址网络号:解读其构成与重要性

在数字化时代&#xff0c;IP地址已成为我们网络生活不可或缺的一部分。每个设备在网络中都有一个独特的IP地址&#xff0c;这个地址由网络号和主机号组成&#xff0c;它们共同构成了我们的网络身份。其中&#xff0c;网络号的作用尤为重要&#xff0c;它决定了设备所连接的网络…

【算法专题--栈】用栈实现队列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双栈 模拟 队列 &#x1f95d;栈 和 队列 的特性 &#x1f34d;具体思路 &#x1f34d;案例图解 四、总结与提炼 五、共勉 一、前言 用栈实现队列 这道题&#xff0c;可以说是--栈专题--&#xff0c;最经典的一道题&…

管理上的一些思考

1 前言 管理可分为自我管理、平级管理、向下管理和向上管理。 顾名思义&#xff0c;自我管理就是对自己工作、生活等各方面的规划和执行&#xff0c;不涉及与其他人互动、配合等。我们设定人生目标、年度计划、月计划等&#xff0c;都可以认为是自我管理。《增广贤文》有段很…

静态时序分析:ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则(二)

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 生成时钟 上一节中&#xff0c;我们讨论了理想时钟和传播时钟的创建和使用&#xff0c;本节将讨论生成时钟及其与理想时钟和传播时钟的关系。 图1所示的是一个简…

Mysql基本知识点

1.数据库的基本操作 显示当前的数据库 show databases;创建一个数据库 直接创建数据库 create database 数据库名字;如果系统没有 test2 的数据库&#xff0c;则创建一个名叫 test2 的数据库&#xff0c;如果有则不创建 create database if not exists test2;如果系统没有 db…

【网络】计算机网络-基本知识

目录 概念计算机网络功能计算机网络的组成计算机网络的分类 网络地址网络地址的分类 计算机网络相关性能指标速率带宽吞吐量时延时延的种类&#xff1a; 时延带宽积往返时延RTT利用率 概念 计算机网络是指将多台计算机通过通信设备连接起来&#xff0c;实现数据和资源的共享。…