前言
学习RVC变声器的原因,是因为前不久hanser配音的一款国产galgame《饿殍:明末千里行》。看完后劲很大,让人总忍不住回想,意难平。在网上也看到了很多ai训练的游戏主角满穗的声音进行的二创,ai满穗演唱的歌曲等等。于是就萌生了学习ai语言变声器的想法。
这个文章主要记录一下笔者的学习过程,也希望对新接触ai变声器的读者有所帮助。
成果展示
先看看成果吧,可以的话,帮忙点个赞呗。
https://www.bilibili.com/video/BV1ut8ReME5U/?spm_id_from=333.999.0.0
文件下载
RVC下载
变声器本体,无论是ai翻唱,还是ai变声都得用这个
RVC-WEB github地址:github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI
这个其实b站上搜搜都能下,这个是GitHub上的链接,笔者当时是随便找了一个up主分享的网盘链接下的
voicemeeter下载
这是用来创建虚拟声卡的,变声器必备,ai翻唱不需要
https://vb-audio.com/Voicemeeter/index.htm
找到potato版本下载就好
详见视频
https://www.bilibili.com/video/BV1YK411r7YS/?spm_id_from=333.788&vd_source=2459cdf9e0f473ac66223b38d16a54eb
NVIDIA Broadcast下载
这个是用来降噪的,不是必备,但变声器降噪不好,所以更好的效果还是建议下一个
官网下载较慢,可能需要科学上网
英伟达官网→www.nvidia.cn
详见视频
https://www.bilibili.com/video/BV1it421J7VE/?spm_id_from=333.880.my_history.page.click&vd_source=2459cdf9e0f473ac66223b38d16a54eb
AI训练(如果只想用现成的变声器可以跳过)
一、准备干声
下载你想要ai训练角色的视频,最好挑一些正常的视频,尽量不要那些电音多、杂音多、有多个声部或者角色情绪激动、声音颤抖的视频,否则训练效果可能受影响。
RVC变声器需要的是音频,不需要字幕,对音频的长度也没有硬性要求。只要你的音频里,声音都是你想训练的那个角色,并且声音干净就可以。
uvr5下载和使用
这个是ai翻唱准备工作用的,用来在乐曲或有背景音乐的情况下实现人声和背景声的分离,方便制作干声集。
Github链接:https://github.com/Anjok07/ultimatevocalremovergui/
详见视频
利用UVR5提取人声和背景音乐
将你下载好的视频,放到uvr5模型中,进行人声和背景音乐的提取。
详情请见上面uvr5的下载
二、切割(选)
上面已经说过了RVC是不需要将长视频切成短小的视频才可以进行训练的。但是如果对于番剧之类的长视频,其中包含了很多个角色的语音,就需要将它切成好多部分,并选择其中只含有你想训练的角色的声音的部分。
手动将视频切割显然是太过困难,要知道一个视频可能要快一个小时,要切的地方会有很多。这时就可以借助于ai工具
1、利用quickcut进行视频切割
quickcut中的切割功能需要借助于字幕,所以这个切割功能对于那些有字幕文件的番剧或电影会比较友好。
quickcut下载
https://gitee.com/haujet/QuickCut/releases
详见视频
https://www.bilibili.com/video/BV1uT421y7ji/?spm_id_from=333.880.my_history.page.click&vd_source=2459cdf9e0f473ac66223b38d16a54eb
quickcut切割视频
详见视频
https://www.bilibili.com/video/BV18T4y1E7FF?p=3&vd_source=2459cdf9e0f473ac66223b38d16a54eb
2、利用audio slicer进行视频切割
这个软件是根据静音段去自动切片,比起上面的quickcut只能说各有千秋,毕竟赛道不同。quickcut需要字幕并可以切割有背景音乐和杂音的视频,而audio slicer则是不需要字幕并不可以切割有背景音乐或者杂音多的视频。
这个软件笔者还没有用过,详见视频 2:23 的位置。(up主使用的sovits变声器和svc操作方式差不多,在SVC遇到问题的时候,也可以来参照该视频)
https://www.bilibili.com/video/BV1H24y187Ko/?spm_id_from=333.880.my_history.page.click&vd_source=2459cdf9e0f473ac66223b38d16a54eb
三、利用AudioDataset挑选切割后的文件
这一步用audiodataset也是为了节省手动的时间,如果切割后的视频总量比较少的话,也可以手动挑选,只需要最后将选中的音频文件放到一个文件夹中就可以了。
注意:这个软件我用的是visual studio打开,这个相信只要学过c语言或者c++的都下过。据我观察,似乎是一个c#文件,但我还没学过,所以不能下定论,总之visual studio是支持的。
AudioDataset下载与使用
https://github.com/2DIPW/audio_dataset_screener
详见视频
https://www.bilibili.com/video/BV17z4y1i7dq/?spm_id_from=333.880.my_history.page.click&vd_source=2459cdf9e0f473ac66223b38d16a54eb
和视频
https://www.bilibili.com/video/BV1hs4y1N7Cd/?spm_id_from=333.880.my_history.page.click&vd_source=2459cdf9e0f473ac66223b38d16a54eb
这两个视频是前后的关系,都看一遍会对这个文件的操作理解的更深。
四、利用干声集进行训练
详见视频
https://www.bilibili.com/video/BV1pZ421J7ox/?spm_id_from=333.999.0.0&vd_source=2459cdf9e0f473ac66223b38d16a54eb
实时变声器(RVC)
这个详见视频,讲的很详细
https://www.bilibili.com/video/BV1Wp4y1g76w/?spm_id_from=333.999.0.0&vd_source=2459cdf9e0f473ac66223b38d16a54eb
文字变声器(GPT-Sovits)
RVC和GPT-Sovits都是 b站up主 花儿不哭 大佬的开源项目。
这两者的区别主要在于,RVC训练完成后,是将语音转换成语音,GPT-Sovits训练完成后,是将文字转化为语音。
不同的赛带也带来了对训练干声集不同的需求,GPT-Sovits对干声集的长度的需求较低,生成效果较好。
但根据笔者实测,目前这两种不同训练方式的训练模型好像不可以通用。(如果有大佬发现如何进行通用,欢迎指正)
在这里,推荐大家看这个视频
https://www.bilibili.com/video/BV1P541117yn/?spm_id_from=333.880.my_history.page.click&vd_source=2459cdf9e0f473ac66223b38d16a54eb
当然,如果你想了解更多关于该变声器原理方面的知识,请关注up主 花儿不哭 ,并查询官方教程,地址如下
RVC官方教程:https://www.bilibili.com/video/BV1pm4y1z7Gm/?spm_id_from=333.999.0.0&vd_source=2459cdf9e0f473ac66223b38d16a54eb
GPT-Sovits官方教程:https://www.bilibili.com/video/BV12g4y1m7Uw/?spm_id_from=333.999.0.0
常见问题解答
笔者在b站和csdn上找了很久,感觉下面的这个视频讲解的问题很有用,很多时候都会遇到,详见视频
https://www.bilibili.com/video/BV1Dc411q72a/?spm_id_from=333.880.my_history.page.click&vd_source=2459cdf9e0f473ac66223b38d16a54eb
ai变声傻瓜式简化版(只支持实时变声)
这个视频教程包含了一个入梦变声器的虚拟声卡,并蕴含了三个模型,允许你跳过训练和配置环境的过程,直接进行变声。
(笔者学习初期,也享受到了该教程的便利,但并不是极其推荐大家选择傻瓜式ai变声,会少了很多的学习过程,如果只是新手用来尝试一下,也无不可。)
详见视频
https://www.bilibili.com/video/BV1MT421v7QP/?spm_id_from=333.880.my_history.page.click&vd_source=2459cdf9e0f473ac66223b38d16a54eb
结语
其实RVC本身和GPT-Sovits中本身就集合了很多比如UVR5,还有视频切割软件。懒人的方法可以直接利用这些集合的部分进行分离音声、切割视频。笔者本身也是到了最后才发现其实很多软件都可以简便地通过变声器集合的部分代替。
但笔者认为,直接利用变声器自带的部分固然快,但是学习ai变声器的过程中,如果只是跟着教程走一遍,简简单单地实现变声功能,显然是下策。笔者认为,我们应该更专注于学习新知识的过程。总会有意料之外的收获。就比如笔者原来只是打算学习一下ai翻唱。但是学着学着,这个不懂,那个也不懂。然后就看了很多相关的视频。虽然每个视频也学习的不是很深入,但是碎片化的知识,一点一点地构建起了笔者对ai变声器这部分知识的总体认知,反而学习到了更多的东西。其实,寻找资源的过程本身也是一种学习。随着时代的发展,笔者认为如何在海量的数据中,寻找我们需要的知识,会成为我们未来学习的一大重点,所以更需要多加锻炼。
笔者十分享受学习这部分知识的过程,也让人不禁感叹ai发展之快。笔者大胆猜测,到了未来,我们大多数人很难完全了解每个软件的原理,我们更需要做的,是与时俱进,学习开发出来的新软件,新程序的使用方法,拓展新的应用场景。用兴趣,引领我们学习,才能更好地跟住时代,做出更好玩的软件,开发出新的玩法。
仅以此篇文章,记录我学习ai变声器的过程和思考。
备注
在笔者的学习过程中,曾参考并学习过CSDN上的“AI语音变声器学习记录:RVC和SVC”一文,对我帮助很大,特在此列出,表示感谢。(也推荐大家去看这篇文章,地址如下)
https://blog.csdn.net/qq_51502150/article/details/132400699?ops_request_misc=&request_id=&biz_id=102&utm_term=ai%E5%8F%98%E5%A3%B0%E5%99%A8&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-132400699.142v100pc_search_result_base6&spm=1018.2226.3001.4187