手把手教你声音克隆(so-vits-svc)

这篇具有很好参考价值的文章主要介绍了手把手教你声音克隆(so-vits-svc)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

随着ChatGPT的爆火,AIGC(人工智能生成内容)再一次走到人们眼前。尤其是在文本、图像生成领域,通过GPT-4、Midjourney等应用生成各种令人惊叹定的文本和图片。

手把手教你声音克隆(so-vits-svc)

但 AI 在生成方面的能力,可远非如此如此。

我用长约一个小时的音频数据,训练了一个 AI 音色转换模型,生成了这首歌曲,效果如下所示,大家可以在评论区留言猜猜是谁?

小半-AI合成

视频里所使用的技术是 so-vits-svc,是音频转音频,属于音色转换算法,支持正常的说话,也支持歌声的音色转换。下面具体介绍如何使用so-vits-svc

 一、准备工作

训练数据很关键,越多高质量的音频数据,效果越好,建议至少准备一个小时以上的音频。

显卡建议使用 N 卡,且显存 8G 以上。

我将项目所需要的代码、工具整理了出来,如有需要可以在评论区留言或者通过下方链接联系我。

当然,也可以直接用开源代码直接部署,地址如下:

GitHub - svc-develop-team/so-vits-svc: SoftVC VITS Singing Voice Conversion

二、环境安装

1.安装pytorch深度学习框架

需要安装pytorchtorchaudiotorchvision三个库

参考我之前写的https://yunlord.blog.csdn.net/article/details/129812705?spm=1001.2014.3001.5502

2.安装相关依赖

可以看到下载的项目中包含两个requirements.txt,以windows为例:

进入到项目中,通过prompt输入以下指令:

pip install -r requirements_win.txt

三、数据处理

训练音频、还有需要预测(或者说转换)的音频,都必须是人物的干声。换句话说,音频中不能包含背景音、伴奏、合声等,所以无论是训练和预测,都需要对数据进行处理。

1.提取人声

我们可以通过UVR5 这个软件实现伴奏与人声分离。

在 Windows 下可以直接使用,打开软件,按照如下配置:

手把手教你声音克隆(so-vits-svc)

运行即可分离人声和伴奏。

然后再按照如下配置,去除合声:

手把手教你声音克隆(so-vits-svc)

 经过提取出的干净人声音频就可以用来训练。

2.切割音频

不过因为音频太长,不要超过三十秒,很容易爆显存,需要对音频文件进行切片。

我们通过 Audio Slicer这个工具实现音频切分 。

直接运行 slicer-gui.exe。

填写输入路径,填写输出路径,其它参数都默认即可,这样就会得到切分好的音频段。

手把手教你声音克隆(so-vits-svc)

建议切完之后逐段听下,将效果不好的删除,高质量的音频比数量多的效果更好。并且如果还有时长超过30s的可以通过写的python音频切割代码,进行截切。

手把手教你声音克隆(so-vits-svc)

在项目的 so-vits-svc-4.0/dataset_raw 目录下创建一个文件夹,比如我的是 wang_processed,将处理好的数据放到里面。

四、训练模型

在训练模型前,我们需要下好原始模型,并将其放到对应位置

  • checkpoint_best_legacy_500.pt放入hubert文件夹下
  • 将D_0.pth和G_0.pth放入logs/44k目录下

1.数据预处理

接下来可以直接运行项目里面的1.数据预处理.bat

这个脚本就是按照步骤,运行各个 py 脚本:

(1) 重采样至44100Hz单声道

python resample.py

(2)自动划分训练集、验证集,以及自动生成配置文件

python preprocess_flist_config.py

(3)生成hubert与f0

python preprocess_hubert_f0.py

处理完毕后,会在 datset/44k 下生成一个文件夹,里面的数据如下图所示:

手把手教你声音克隆(so-vits-svc)

可以删除 dataset_raw 文件夹了。

2.模型训练

直接运行项目中的2.训练.bat 即可开启训练。

python train.py -c configs/config.json -m 44k

如果显卡够好,可以增加 batch_size 提高训练速度,对应的配置文件在 configs/config.json 文件里。

这个训练时间很长,个人觉得如果数据较好的话,训练到30000轮以上就有一个不错的效果。

3.聚类模型训练

直接运行项目中的3.训练聚类模型.bat 即可开启训练,这个比较快,几分钟即可跑完。

这个主要是可以减小音色泄漏,使得模型训练出来更像目标的音色(但其实不是特别明显),但是单纯的聚类方案会降低模型的咬字(会口齿不清)(这个很明显),本模型采用了融合的方式,可以线性控制聚类方案与非聚类方案的占比,也就是可以手动在"像目标音色" 和 "咬字清晰" 之间调整比例,找到合适的折中点。

使用聚类前面的已有步骤不用进行任何的变动,只需要额外训练一个聚类模型,虽然效果比较有限,但训练成本也比较低。

  • 训练过程:
    • 执行python cluster/train_cluster.py ,模型的输出会在logs/44k/kmeans_10000.pt
  • 推理过程:
    • inference_main.py中指定cluster_model_path
    • inference_main.py中指定cluster_infer_ratio0为完全不使用聚类,1为只使用聚类,通常设置0.5即可

4.推理预测

(1)准备干声

准备一首歌的干声,干声可以按上述音频素材准备那样处理,通过UVR5提取一段不超过90s的干声素材。

(2)修改模型名

修改 app.py 里的这一行:

手把手教你声音克隆(so-vits-svc)

训练好的模型存放在了 logs/44k 目录下,这里改为训练好的模型地址,以及对应的配置文件,最后是第三步生成的 pt 文件路径。

(3)运行web

直接运行项目中的4.推理预测.bat。

程序会直接开启一个 webui,将开启的 url,直接复制到浏览器地址栏中打开即可。

就是一个简单的 Web 页面,里面的参数,可以直接使用默认的,放入一个音频,即可转换音色。

手把手教你声音克隆(so-vits-svc)

 

总结

勿用技术做恶,这个必须强调来说。本教程仅供交流学习使用。

随着AI技术的不断发展,各种难以想象的事情AI都能够做到,我们能做到的就是规范技术发展,用AI做一些对社会有益的事情。

欢迎大家在评论区留言猜猜是谁?

参考:

1.AI声音克隆教程 - 哔哩哔哩

2.so-vits-svc3.0 中文详细安装、训练、推理使用教程_Sucial的博客-CSDN博客

3.so-vits-svc/README_zh_CN.md at 4.0 · svc-develop-team/so-vits-svc · GitHub文章来源地址https://www.toymoban.com/news/detail-434852.html

到了这里,关于手把手教你声音克隆(so-vits-svc)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 手把手教你暴力破解

    手把手教你暴力破解

    暴力破解是一种攻击手段,使用大量的认证信息在认证接口尝试登录,直到得到正确的结果。 2.1标题基于表单的暴力破解 2.1.1 第一步:打开burpsuite拦截 2.1.2 第二步:将拦截到的包右击发送到intruder模块 (其中简单介绍一下intruder模块) Target主要是设置暴力破解访问的host地址

    2024年02月07日
    浏览(40)
  • 手把手教你实战TDD

    手把手教你实战TDD

    领域驱动设计,测试驱动开发。 我们在《手把手教你落地DDD》一文中介绍了领域驱动设计(DDD)的落地实战,本文将对测试驱动开发(TDD)进行探讨,主要内容有:TDD基本理解、TDD常见误区、TDD技术选型,以及案例实战。希望通过本文,读者能够理解掌握TDD并将其应用于实际

    2024年02月08日
    浏览(41)
  • 手把手教你做主成分分析

    手把手教你做主成分分析

    主成分分析是一种降维处理的统计方法,实践中有三个应用场景: 信息浓缩:将多个分析项浓缩成几个关键概括性指标; 权重计算:利用方差解释率值计算各概括性指标的权重; 综合评价:基于主成分得分构造综合得分数据,用于综合评价。 接下来,以一个具体案例来学习

    2024年02月01日
    浏览(45)
  • 手把手教你落地DDD

    手把手教你落地DDD

    一、前言 常见的DDD实现架构有很多种,如经典四层架构、六边形(适配器端口)架构、整洁架构(Clean Architecture)、CQRS架构等。架构无优劣高下之分,只要熟练掌握就都是合适的架构。本文不会逐个去讲解这些架构,感兴趣的读者可以自行去了解。 本文将带领大家从日常的

    2024年02月16日
    浏览(12)
  • 手把手教你如何使用SimiliarWeb

    手把手教你如何使用SimiliarWeb

    在之前的“手把手教你如何使用Google Trends”文章中我们讲到从事跨境电商的卖家第一步遇到的问题是“客户在哪里?”该如何推广我的产品?因此若想自己的店铺做大做好,则需要工具来帮助分析市场行情,根据市场行情调整自己的业务状况。小编在上篇中已经讲解了三个特

    2024年02月09日
    浏览(42)
  • 手把手教你写go单元测试

    ​ 在 Go 语言中,单元测试是一种测试方法,用于验证代码的某个独立单元是否按预期功能,它的目的是确保代码的每个组成部分都在独立测试的情况下运行正常。 ​ 在我们对项目新增一个新功能时,最好就要养成写单元测试的好习惯,这样可以有助于提高我们代码的质量、

    2024年04月14日
    浏览(13)
  • 手把手教你彻底卸载MySQL

    手把手教你彻底卸载MySQL

    ❤写在前面 ❤博客主页: 努力的小鳴人 ❤系列专栏: MySQL8.0基础学习 ❤欢迎小伙伴们, 点赞👍关注🔎收藏🍔 一起学习! ❤如有错误的地方,还请小伙伴们指正!🌹 ​ 目录 步骤1:停止MySQL服务 步骤2:软件的卸载 步骤3:残余文件的清理 步骤4:清理注册表 步骤5:删除

    2024年02月05日
    浏览(9)
  • 手把手教你kali渗透Metasploitable

    手把手教你kali渗透Metasploitable

    2.ifconfig查看Metasploitable的IP: 端口爆破:FTP、SSH等 工具:Hydra 备用字典:user.txt: pass,txt: 一、 爆破FTP //注意路径是桌面还是Desktop 二、 爆破SSH 利用爆破得到的用户名和密码,进行远程连接测试: 成功连接: 三、端口渗透: 利用metasploit 然后在kali linux中进行渗透: 启动msf msf

    2024年02月06日
    浏览(13)
  • 手把手教你Linux的网络配置

    手把手教你Linux的网络配置

    目录 网络连接测试 测试Linux虚拟机是否与主机连接 测试主机是否与虚拟机连接 网络连接模式 桥接模式 NAT模式 仅主机模式 修改静态IP 修改 IP 地址后可能会遇到的问题 配置主机名 测试Linux虚拟机是否与主机连接 首先可以在windows界面,windows + R键输出cmd打开命令行,输入  

    2024年02月03日
    浏览(25)
  • 手把手教你绘制小程序海报

    手把手教你绘制小程序海报

    海报分享功能在许多应用中应该是很常见的,因为它作为一种常用的应用推广和拉新的方式。 接下来看个实际的案例,如下: 把任务拆解下: 如何绘制海报 如何把绘制后的海报保存到相册 用 canvas 来绘制海报。 这里需要了解基本的 canvas api ,不熟悉可以先去了解下相关

    2024年02月04日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包