忍法:声音克隆之术

前言:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

信息学奥赛初赛天天练-40-CSP-J2021基础题-组合数学-缩倍法、平均分组、2进制转10进制、面向过程/面向对象语言应用

PDF文档公众号回复关键字:20240630 2021 CSP-J 选择题 单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共计30分&#xff1a;每题有且仅有一个正确选项&#xff09; 1.以下不属于面向对象程序设计语言是( ) A. C B. Python C. Java D. C 2.以下奖项与计…

R包的4种安装方式及常见问题解决方法

R包的4种安装方式及常见问题解决方法 R包的四种安装方式1. install.packages()2. 从Bioconductor安装3. 从本地源码安装4. 从github安装 常见问题的解决1. 版本问题2. 网络/镜像问题3.缺少Rtools R包的四种安装方式 1. install.packages() 对于R自带的包的安装一般都可以通过…

HarmonyOS--路由管理--组件导航 (Navigation)

文档中心 什么是组件导航 (Navigation) &#xff1f; 1、Navigation是路由容器组件&#xff0c;一般作为首页的根容器&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式 2、Navigation组件适用于模块内和跨模块的路由切换&#xff0c;一次开发&#xff0…

实现点击按钮导出页面pdf

在Vue 3 Vite项目中&#xff0c;你可以使用html2canvas和jspdf库来实现将页面某部分导出为PDF文档的功能。以下是一个简单的实现方式&#xff1a; 1.安装html2canvas和jspdf&#xff1a; pnpm install html2canvas jspdf 2.在Vue组件中使用这些库来实现导出功能&#xff1a;…

网线直连电脑可以上网,网线连tplink路由器上不了网

家里wifi网络连不上好几天了&#xff0c;用网线直连电脑可以上网&#xff0c;但网线连tplink路由器wan口上不了网&#xff0c;无Internet连接&#xff0c;网线连lan口可以电脑上网&#xff0c;手机上不了。 后来发现网线的主路由用的192.168.0.1&#xff0c;我的路由器wan口自…

在node环境使用MySQL

什么是Sequelize? Sequelize是一个基于Promise的NodeJS ORM模块 什么是ORM? ORM(Object-Relational-Mapping)是对象关系映射 对象关系映射可以把JS中的类和对象&#xff0c;和数据库中的表和数据进行关系映射。映射之后我们就可以直接通过类和对象来操作数据表和数据了, 就…

【大数据导论】大数据序言

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 目录 数据概念及类型及可用及组织形式数据概念数据…

golang项目基于gorm框架从postgre数据库迁移到达梦数据库的实践

一、安装达梦数据库 1、登录达梦数据库官网&#xff0c;下载对应系统版本的安装包。 2、下载地址为&#xff1a;https://www.dameng.com/list_103.html 3、达梦数据库对大小写敏感&#xff0c;在安装初始化数据库实例时建议忽略大小写&#xff1b;具体安装教程可参考以下博客: …

python办公自动化之pandas

用到的库&#xff1a;pandas 实现效果&#xff1a;创建一张空白的表同时往里面插入准备好的数据 代码&#xff1a; import pandas # 准备好要写入的数据&#xff0c;字典格式 data{日期:[7.2,7.3],产品型号:[ca,ce],成交量:[500,600]} dfpandas.DataFrame(data) # 把数据写入…

Java代码基础算法练习-计算被 3 或 5 整除数之和-2024.06.29

任务描述&#xff1a; 计算 1 到 n 之间能够被 3 或者 5 整除的数之和。 解决思路&#xff1a; 输入的数字为 for 循环总次数&#xff0c;每次循环就以当前的 i 进行 3、5 的取余操作&#xff0c;都成立计入总数sum中&#xff0c;循环结束&#xff0c;输出 sum 的值 代码示例&…

QT加载安装外围依赖库的翻译文件后翻译失败的现象分析:依赖库以饿汉式的形式暴露单例接口导致该现象的产生

1、前提说明 QtClassLibaryDll是动态库,QtWidgetsApplication4是应用程序。 首先明确:动态库以饿汉式的形式进行单例接口暴露; 然后,应用程序加载动态库的翻译文件并进行全局安装; // ...QTranslator* trans = new QTranslator();//qDebug() << trans->load(&quo…

大模型系列:提示词管理

既然大模型应用的编程范式是面向提示词的编程&#xff0c;需要建立一个全面且结构化的提示词库&#xff0c; 对提示词进行持续优化也是必不可少的&#xff0c;那么如何在大模型应用中更好的管理提示词呢&#xff1f; 1. 提示词回顾 提示词在本质上是向大型语言模型&#xff08…

​Chrome插件:React Developer Tools为React开发调试而生

React Developer Tools 是什么? 它是允许在Chrome和Firefox开发者工具中检查React组件层次结构的扩展插件。 插件源码下载 源码下载地址:GitHub - facebook/react-devtools at v3 下载完成以后执行红框中的代码,下载react-devtools 源码,源码如下图所示: 插件打包 当前n…

【C++】 ——【模板初阶】——基础详解

目录 1. 泛型编程 1.1 泛型编程的概念 1.2 泛型编程的历史与发展 1.3 泛型编程的优势 1.4 泛型编程的挑战 2. 函数模板 2.1 函数模板概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 2.6 函数模板的特化 2.7 函数模板的使…

Linux CentOS 宝塔中禁用php8.2的eval函数详细图文教程

PHP_diseval_extension 这个方法是支持PHP8的, Suhosin禁用eval函数&#xff0c;不支持PHP8 一、安装 cd / git clone https://github.com/mk-j/PHP_diseval_extension.gitcd /PHP_diseval_extension/source/www/server/php/82/bin/phpize ./configure --with-php-config/ww…

美团校招机试 - 小美的平衡矩阵(20240309-T1)

题目来源 美团校招笔试真题_小美的平衡矩阵 题目描述 小美拿到了一个 n * n 的矩阵&#xff0c;其中每个元素是 0 或者 1。 小美认为一个矩形区域是完美的&#xff0c;当且仅当该区域内 0 的数量恰好等于 1 的数量。 现在&#xff0c;小美希望你回答有多少个 i * i 的完美…

C++操作系列(二):VSCode安装和配置C++开发环境

1. VSCode下载 进入VSCode的官网网页&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 下载相应的版本&#xff1a; 2. 安装VSCode 安装到指定位置&#xff1a; 一路下一步&#xff0c;直至安装完成&#xff1a; 3. 安装C插件 3.1. 安装C/C 点击扩展图标&…

linux上git的使用

目录 1.测试是否安装有git 2.下载项目到本地 3.三板斧 1.将代码放在创建的目录中 2.提交改动到本地 3.提交代码到远端 4.注意点 以及补充内容 1.测试是否安装有git 如果输入git --help 会显示下面一大串那么就是已经安装&#xff0c;否则需要自行手动安装 yum install g…

Elasticsearch开启认证|为ES设置账号密码|ES账号密码设置|ES单机开启认证|ES集群开启认证

文章目录 前言单节点模式开启认证生成节点证书修改ES配置文件为内置账号添加密码Kibana修改配置验证 ES集群开启认证验证 前言 ES安装完成并运行&#xff0c;默认情况下是允许任何用户访问的&#xff0c;这样并不安全&#xff0c;可以为ES开启认证&#xff0c;设置账号密码。 …

【Python从入门到进阶】59、Pandas库中Series对象的操作(二)

接上篇《58、Pandas库中Series对象的操作(一)》 上一篇我们讲解了Pandas库中Series对象的基本概念、对象创建和操作&#xff0c;本篇我们来继续学习Series对象的运算、函数应用、时间序列操作&#xff0c;以及Series的案例实践。 一、Series对象的运算 1. 数值型数据的算术运…