2023.05.09-使用AI克隆孙燕姿的声音来进行唱歌

news2025/2/23 6:42:07

文章目录

  • 1. 简介
  • 2. 资源合集
  • 3. 准备数据集
    • 3.1. 人声分离
    • 3.2. 音频进行切片化处理
      • 3.2.1.
    • 3.3. 数据集存放格式要求
  • 4. 训练
    • 4.1. 启动web UI.bat
    • 4.2. 识别数据集
    • 4.3. 数据预处理
    • 4.4. 设置训练超参数
      • 4.4.1. 选择模型分支
    • 4.5. 进行训练
      • 4.5.1. 关于显存的说明
  • 5. 推理
    • 5.1. 加载模型
      • 5.1.1. 加载模型配置
    • 5.2. 上传音频进行推理

1. 简介

  • 如果我们想要克隆孙燕姿的声音,整体的思路很简单,首先找一些孙燕姿唱歌时没有伴奏的人声,然后把这个声音放到模型中进行训练拟合,让AI学习说话的这种声线风格,最后使用这个训练出来的模型进行推理和风格迁移,这样一首孙燕姿唱其他人歌曲的音频就制作出来了。

2. 资源合集

  • 原始项目:GitHub - voicepaw/so-vits-svc-fork: so-vits-svc fork with realtime support, improved interface and more features.
  • 懒人包:pan.baidu.com/s/12u LDyb5KSOfvjJ9LVwCIQ?pwd=g8n4
  • 炼丹百科全书

3. 准备数据集

  • 用于训练的音频数据集应该切分为10秒的音频,太长的话会爆显存
  • 数据集是越多越好,但一般情况下,如果想要得到一个比较好的训练效果的话,有200段10秒的片段应该就差不多了

3.1. 人声分离

  • 一般使用spleeter来完成这个工作
    GitHub boy1dr/SpleeterGui: Windows desktop front end for Spleeter AI source separation

3.2. 音频进行切片化处理

  • 使用[Audio Slicer](…/…/…/…/…/…/…/…/…/音频/音频切片/Audio Slicer.md)来完成这个工作
    github.com/openvpi/audio slicer

3.2.1.

3.3. 数据集存放格式要求

  • 将所有数据集放到dataset_raw文件夹下

4. 训练

4.1. 启动web UI.bat

  • 之后会自动弹出一个训练网页
  • 127.0.0.1:7860/
  • 训练的时候需要有一张支持cuda的N卡,显存要求6gb以上

4.2. 识别数据集

  • 点击训练选项卡中的识别数据集,
  • 就会自动识别到我们刚才放到dataset_raw文件夹下面的音频文件

4.3. 数据预处理

  • 这个数据预处理很简单,只需要点击这个按钮选项即可开始进行处理

    预处理完结束之后,检查一下是否有对应的报错信息。
  • 正常情况下,预处理结束之后,会生成非常长的一段过程信息,简单检查一下即可,如果没有报错的话,就证明这个预处理是成功的
  • 那么我们就可以把这个输出信息给清空,会方便接下来的操作显示

4.4. 设置训练超参数

  • 这里的超参数可以自行设置,也可以直接使用默认的参数

4.4.1. 选择模型分支

一共有两个分支,一个是v1,另一个是vec768-layer12,目前说来,应该是第二个分支效果更好,但是没有经过广泛验证。总体来说比较玄学,选择哪一个都可以

  • 如果GPU显存不是特别大的话,把这个Batch Size设的小一点,6G显存就设置为4即可

  • 同时,为了减少显存占用,可以使用半精度进行训练

  • 检查训练分支以及说话人列表

  • 如果所有的参数都设置正确的话,点击这个写入配置文件,才可以让上面选项生效

4.5. 进行训练

  • 点这个训练按钮就可以开始训练了,训练过程中会弹出来一个黑色的命令行窗口,

  • 上面会有很多信息,其中我们主要关注这个reference_loss这个值是越低越好的,如果它的值可以在20以下的话,那么表示他的模型是相当不错的

  • 需要说明的是,这个训练是不会自动充值的,需要你自己根据损失值来判断是否已经训练合乎要求了

4.5.1. 关于显存的说明

这样的过程中,如果爆显存了,那么就把这个数据集的切片设的更短一点,每段都设成5秒应该就够了

  • 如果这样显存依然不够用的话,那么可以去云端租借一张GPU卡片
    我这边使用的是6G显存Batch Size为1的时候占用了3个G的显存
  • Batch Size为2,占用显存为4590,
  • Batch Size为6,占用显存为5623
  • 训练完成后,模型会保存在logs文件夹下面

5. 推理

5.1. 加载模型

  • 训练完成后,回到推理的选项卡上面

5.1.1. 加载模型配置

如果是刚训练完,那么模型和配置文件的路径都是正确的。如果是从外部转移过来的的话,那么需要放到对应的位置才行

  • 这个配置文件的路径是为 G模型和Kmeans聚类模型:logs\44k;配置文件:configs,
  • 如果路径不是这个的话,是读取不到的
    模型参数选择
  • 这模型选择的是G打头的文件,后面的这个数字就是他的训练步数
  • 点完之后点击加载模型,稍等一会儿,这个模型就可以加载到自己的显卡上面了

5.2. 上传音频进行推理

  • 加载完模型之后,上传一段去除了背景声的音频,之后点击这个音频转换

  • 推理完成后,点击这里进行试听

  • 如果确定是自己想要的效果的话,点击音频右边的三个点进行下载

  • 需要注意的是,这里是纯人声,并没有伴奏,之后可以把它导入到PR或者一些类似的处理软件中进行声音的合成

  • 之后就可以导出来或者发布到其他平台上了

(img-L8NnbjCy-1683636718490)]

  • 需要注意的是,这里是纯人声,并没有伴奏,之后可以把它导入到PR或者一些类似的处理软件中进行声音的合成
    [外链图片转存中…(img-4E0VZD7i-1683636718490)]
  • 之后就可以导出来或者发布到其他平台上了

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

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

相关文章

从bootanimation出发分析OpenHarmony下Gralloc buffer管理机制

从bootanimation出发分析OpenHarmony下Gralloc buffer管理机制 引言 这个文档主要记录从bootanimation角度出发,分析OpenHarmony下对gralloc buffer的管理!由于OpenHarmony图形子系统过于复杂,且个人由于能力有限,这里我仅从grall…

玩机搞机--定制系统 隐藏app桌面图标 反编译app【二】

在定制rom的过程中。客户要求内置某些app。个别需求内置的app不能显示在桌面,那么对应的内置app方法就不做细阐述。可以参考原固件操作 那么今天主要讲下隐藏app的操作解析 💔💔💔💔💔💔&#…

C++知识点 -- C++的类型转换

C知识点 – C的类型转换 文章目录 C知识点 -- C的类型转换一、C语言中的类型转换二、C的强制类型转换1.static_cast2.reinterpret_cast3.const_cast4.dynamic_cast 一、C语言中的类型转换 void test() {int i 0;//隐式类型转换(意义相近的类型)double …

只下载rpm包而不安装(用于内网虚拟机使用)

这里写目录标题 问题:解决:1. 安装yum-utils2. 下载rpm包3. 将rpm包拷贝到离线的虚拟机并安装 问题: 公司虚拟机仅使用内网无法通过yum下载依赖; 解决方法之一就是从一台连了公网的虚拟机(NAT) 下载需要的rpm包,然后…

Xcode安装与配置

安装Xcode Xcode需要macOS系统上安装,截止到2020年1月31日,最新版本为11.3.1。你可以选择在苹果开发者网站下载Xcode安装文件或去苹果应用市场安装,无论哪种方式安装Xcode,都需要有一个自己的Apple ID,具体的申请注册流…

unittest 测试框架的使用

文章目录 1. unittest 框架解析2. 批量执行测试脚本1)构建测试套件addTest() 方法makeSuite() 方法TestLoader() 方法 2)用例的执行顺序3)忽略测试用例的执行 3. unittest 断言4. HTML 报告生成5. 异常捕获与错误截图6. 数据驱动1&#xff09…

【项目测试报告】网页版博客系统 + online 好友聊天室

网页版博客系统 online 好友聊天室(项目介绍) 实现一个网页版的博客系统,提供了一个技术文章论坛,同时也提供了用户之间在线交流的平台。 网页博客系统支持以下核心功能: 用户注册、登录、注销功能(登录…

JAVAWeb11-服务器渲染技术 -JSP-02-EL表达式(会使用)

1. EL 表达式介绍 EL 表达式全称&#xff1a;Expression Language&#xff0c;是表达式语言EL 表达式主要是代替 jsp 页面的表达式脚本<%request.getAttribute("xx")%>EL 表达式输出数据时&#xff0c;比 jsp 的表达式脚本简洁EL 表达式基本语法&#xff1a; …

HAL库版FreeRTOS(下)

目录 FreeRTOS 事件标志组FreeRTOS 事件标志组简介FreeRTOS 事件标志组相关API 函数FreeRTOS 事件标志组实验功能设计软件设计下载验证 FreeRTOS 任务通知FreeRTOS 任务通知简介任务通知的优势任务通知的缺点 FreeRTOS 任务通知相关API 函数 FreeRTOS 事件标志组 事件标志组与…

【Leetcode】241. 为运算表达式设计优先级

241. 为运算表达式设计优先级&#xff08;中等&#xff09; 解法一&#xff1a;分治法 对于这道题&#xff0c;加括号其实就是决定运算次序&#xff0c;所以我们可以把加括号转化为&#xff0c;「对于每个运算符号&#xff0c;先执行处理两侧的数学表达式&#xff0c;再处理此…

提高APP安全性的必备加固手段——深度解析代码混淆技术

APP 加固方式 Android APP 加固是优化 APK 安全性的一种方法&#xff0c;常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 Android APP 加固的具体实现方式。 混淆代码&#xff1a; 使用 ProGuard 工具可以对代码进行混淆&#xff0c;使得反编译出来的代…

makefile语法解析

gcc语法简介 gcc (-c) hello.c world.c -o main-c表示只编译不链接 -o目标文件 此外&#xff0c;还有-I&#xff08;大写的I&#xff09;表示给gcc添加自定义的头文件的路径 -L表示给gcc添加额外的搜索库的路径 -g选项的意义是“生成调试信息&#xff0c;该程序可以被调试器调…

【Java入门合集】第五章抽象类和接口(二)

博主&#xff1a;命运之光 专栏&#xff1a;JAVA入门 学习目标 1.了解什么是抽象类&#xff0c;什么是接口&#xff1b; 2.掌握抽象类和接口的定义方法&#xff1b; 3.理解接口和抽象类的使用场景&#xff1b; 4.掌握多态的含义和用法&#xff1b; 5.掌握内部类的定义方法和使用…

【Hive实战】Hive元数据存储库数据增多的分析

Hive元数据存储库数据增多的分析 2023年5月8日 文章目录 Hive元数据存储库数据增多的分析问题新增Hive相关的DDL操作创建Hive库库授权到用户 创建Hive表 内部表非分区表表授权到用户一级分区表二级分区表分桶表分桶排序表 查询指令核心表分析表关系图表以库表为主以hive表为主以…

人人都可用的ChatGPT,Edge浏览器-免费ChatGPT保姆级教程!非常详细!

人工智能大浪潮已经来临&#xff0c;对于ChatGPT&#xff0c;我觉得任何一个玩互联网的人&#xff0c;都应该重视起来&#xff0c;用起来。但是国内使用需要解决科学上网、注册、收费等繁琐问题。 所以&#xff0c;今天这篇文章就来推荐一个插件&#xff0c;无需任何繁琐操作&…

第一次省赛团队训练 - BAPC 2022 Pre(DAPC 2022)

B (2). Bubble-bubble Sort [ 提交记录 ] [ 问题 3462 ] 时间限制: 2000MS 空间限制: 256MB 结果评判: 文本对比 正确/提交: 7 (5) / 15 官方标签: 用户标记: 题目描述 Bubbles! As a fanatical supporter of the Bubbles Are Perfect Creatures movement, you have ac…

第8章 未执行缓存的强制清理操作导致显示异常解决方案

1 异常产生原因&#xff1a; 由于未为Role实体定义相就的缓存强制销毁器类&#xff1a;Services.Customers.Caching.RoleCacheEventConsumer,从而导致Services.Events.EventPublisher.PublishAsync<TEvent>(TEvent event)中的 consumers实例为0,如下图所示&#xff1a; 2…

深入理解移动端布局:Viewport与设备像素比

在移动端开发中&#xff0c;了解和掌握不同设备的布局特点是非常重要的。本文将介绍两个关键概念&#xff1a;Viewport 和设备像素比&#xff08;DPR&#xff09;&#xff0c;帮助你更好地理解移动端布局。 一、什么是 Viewport&#xff1f; Viewport 是用户在浏览器中可见的网…

JS知识点(包括原型,原型对象,数据类型,数据类型的检测)

目录 1、JavaScript有哪些数据类型&#xff0c;它们的区别&#xff1f; 2、基本数据类型和引用数据类型地区别&#xff1a; 3、数据类型检测的方式有哪些: 4、判断数组的方式有那些&#xff1f; 5、null和undefined区别&#xff1a; 6、为什么typeOf null得到object而不是n…

22个提升生产力的工具推荐,稳了

子曰&#xff1a;工欲善其事&#xff0c;必先利其器。 本文给大家推荐22个提高生产力的工具&#xff0c;总有一款符合你的需求。&#x1f604;&#x1f604;&#x1f604; 提高生产效率工具推荐 滴答清单/Todoist文件检索利器&#xff1a;Everything文件管理软件-Allen Explor…