我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

请注意,这篇“短文”可能略微有点长,并且涉及到一些计算机相关的知识,其中的一部分可能会有一些晦涩,但是他们并不影响后续的操作。

如果你想手操进行模型的训练请至少保证你有一张显存大于6G的Nvidia显卡,当然就算你没有你也可以看着玩一玩XD

你将会在文中看到:笔者超高浓度私货音声合成技术史,写的一团乱麻但是实际上手却异常简单的训练过程,以及超级飞天咕咕鸽

前言

AI,AI,AI

2023年还没过半,但是估计各位都已经早早的感受到了时代又在变换。

从22年年中开始,各类AI有如疾风骤雨突然出现打破了本来颇有点平静的网络。

你就当他大概算是……平静吧。

就算你没有听说过标题里的so-vits-svc,你大概也肯定听说过什么AI冬雪莲,AI孙笑川。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

UTAU则是后来由日本的饴屋氏制作的歌声合成软件,可以通过用户自己录制采样来制作声库,也是一类基于拼接的SVS技术

而在2018年年中,SynthesizerV横空出世,正式带领SVS技术进入了通过神经网络模型(LLSM)和拼接采样混合来合成歌声的时代。

值得一提的是,其实最先出现的llsm+拼接采样混合的合成引擎是CeVIO,有关注这块的可能听说过其早期的神音源 佐藤莎莎拉。但是CeVIO早期实在是缺乏人气,更多被作为一个语音合成软件来使用,加上没有和现有的VOCALOID、UTAU创作生态融合,直接导致了很长一段时间的查无此人。

不过在后来CeVIO也推出了完全基于llsm的CeVIO AI,加上红极一时的音源可不,成功和SynthesizerV AI一起笑到最后成为了本世代的赢家,并且把VOCALOID5和6彻底挤到了角落去自娱自乐。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

SynthV并没有官方表示过他们具体使用的模型种类,所以就笼统的以llsm带过了,不过值得一提的是,sv的主要开发者 华侃如 正是当年阿b上Rocaloid(让初音未来唱出中文)项目以及UTAU上极出名的Moresamplers重采样器的作者,真正的技术大神。

相对于sv本体的混合式合成引擎,后来发布的Synthesizer V AI则是完全转向了llsm技术的怀抱,而这也就来到了我们今天的主题。

什么是So-VITS-svc?

可能极度晦涩注意

Synthesizer V AI和CeVIO AI的火热也让llsm技术走进了社区的视野,在全新的技术下,合成的人声拥有了前所未有的流畅感,无限接近真人的歌声,但是这对于社区来讲却是一个头疼的问题。为什么?

因为以上的所有都是商业产品,你只能购买其他公司制作好的音源,更不能用自己的声音来制作一个独特的声库,而此时社区的声库自制却还停留在以UTAU和VocalSharp为代表的拼接类采样引擎以及DeepVocal这样的弱神经网络+采样拼接合成引擎,它们已经逐渐无力满足大家被AI养刁了的耳朵。

于是,随着扩散模型、对抗网络模型和声码器相关的技术的成熟,社区中逐渐也开始诞生了全新的svs项目,这其中便包括了sovits。

So-VITS-svc是一种svc模型,即singing voice convertion,歌声转换。

svc是svs中的一个分支,主要通过输入音频中的音高和音素来自动实现音色和唱法的转换,而不是像传统的svs一样手动输入音高和音素,但是这也表示svc模型需要一个原始音频作为转换的来源,并且这个音频应该是足够干净的干声。

So-VITS-svc的全称是SoftVC VITS Singing Voice Conversion,这个长长的全名也表示了这个模型的技术的来源。

简单的解释一下这个名字,就是基于Soft编码的VITS声音转换模型

很显然,这个解释并不好,一次又抛出了两个新的概念,什么都没解释出来。

再精细一点的解释就是,通过Hubert的Soft编码输入来替换VITS中的ppg从而实现的声学转换模型,而VITS是一种基于对抗网络训练的声音合成模型。

现在这个解释变得更加难懂了,写了又好像什么都没写,这是因为笔者也不是人工智能专业的,再继续往深去就已经超越孩子的知识储备了(

但是如果要省流一下,就是效果比传统的VITS模型更好的声音转换模型

(笑哭

算了,比起解释他的原理,显然还是直接上手操作更有效果(

君のSovits本当上手

这篇教程基于BV1H24y187Ko 作者 羽毛布団 的整合包制作,什么,你问我为什么不从原仓库下载和webUI搭建开始?

显然,这里不是酷安,而是小黑盒(

其实是因为整合包内置了大部分所需的环境,操作起来更加简单,也可以规避很多复杂的问题(尤其是大多数人基本都会翻车十几次的环境配置部分)。

这篇教程仅仅包含单说话人模型的训练!

当然,按照惯例,以下是So-VITS-svc项目的地址:

仓库地址

在你对这个项目有了足够的了解之后,也可以试着去按照原本的项目来对你的训练参数进行更改来获得更好的效果。

整合包文档地址

以及在此之前,你应当注意:

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

来自整合包的作者,请务必遵守相关的开源许可

同时,你不应使用未得到授权的声音素材进行训练后公开发布模型,不应在得到具有法律效力的许可之前将声音素材和训练后的模型进行任何商业使用

事先准备

  • 一个时长至少高于十分钟的素材集,在有可能的情况下总量最好超过1h。(如果素材集小于十分钟甚至只有十几秒也可以进行训练,但是会明显影响最后的成品质量)
  • 你的电脑应拥有16G及以上的内存,如果仅有8G那么请确保你的素材存放在足够快的固态硬盘中,否则会极大影响训练的速度并导致很多不该出现的error発生,如果连8G都没有就还是先洗洗睡吧x。
  • 你需要一张拥有6G以上显存并且支持CUDA的Nvidia显卡,合理的选择如3060Ti,不过理论上1060 6G一样可以跑。对于这类对抗网络的训练,显卡的显存需求大于算力的需求,更高的算力确实可以一定程度上提升训练的速度,但是一个足够大的显存更为关键,在可行的情况下,一张3080 12G及以上的显卡会很好的提升你在训练过程中的体验。
  • 除非你对你的内存性能及储量有绝对自信,否则你还是应该准备一块存的下你的所有数据的固态硬盘,当然如果内存够大可以直接写入内存那么机械硬盘也是可以的。

下载训练工具

整合包下载链接(百度网盘)

解压至任意文件夹,请注意文件路径内不要出现汉字或全角符号等。

数据集

显然,在你训练出对应的声音之前,你应该准备一些采样来准备制作数据集。

采样应该是:

  • 完全纯净的干声,你可以通过uvr来获得干声,但是这会很大程度的影响成品的效果,除非你对你提取之后干声的纯净度有足够的自信
  • 采样应该来自同一个人并且音色保持相似
  • 采样的命名中请不要包含日语,汉字等非unicode字符

这些采样应该被放在同一个文件夹下,就像这样:

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

原本这些采样其实是最好应该被切成10s以内的短采样的,不过现在这个功能Web面板自带了,直接把完整采样放进来也是没问题的。

然后将准备好的数据集文件夹放进sovits整合包中的dataset_raw中。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

文件夹里面就是训练用的素材

这样就完成了数据集的准备,可以开始训练了!

启动面板/处理数据

回到整合包文件夹里,双击启动WebUI.bat

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

然后应该会蹦出来一个命令行:

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

等一段时间之后这里的文字会发生变化,然后会自动为你打开浏览器,如果浏览器没有自动打开的话,也可以直接访问http://127.0.0.1:7860。

然后,进入浏览器,就可以看到这个非常简明的WebUI了!

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

我们现在还没有模型可以用来推理,所以推理这部分我们晚一点再介绍。

直接选择选项卡里的训练就可以了……等等!

很显然,在这之前我们应该先处理一下音频,所以让我们首先点进小工具/实验室特性,然后选择智能音频切片

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

现在要将音频目录输入在原始音频文件夹的输入框中,一般是./dataset_raw/xxxxxx(你的数据集文件夹的名字),然后点击加载原始音频

这里是使用了相对目录,你也可以使用绝对目录,例如E:\sovits\dataset_raw\xxxxxx

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

能看到下面输出了你的音源文件就说明加载完成了

将网页拖到下面,设置输出的目录,比如./dataset_raw/xxxxxx_sliced,音频处理方式建议选择丢弃。

如果你和我一样输出的文件也在dataset_raw中,请记得把原来没处理过的数据集删除掉!不然会炸显存!

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

具体怎么命名就看各位怎么想了x

然后点击开始切片,就可以开始处理了!

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

切片处理需要一段时间的,如果你放进去的数据比较多,那么可能要处理几分钟,所以稍安勿躁啦

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

提示成功即可

训练前的配置

现在我们可以换到训练选项卡了。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

首先点击识别数据集,它会自动识别你之前放进去处理好的数据集。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

然后是编码器的选择。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

个人推荐vec768l12,比较均衡,不过各位既然使用的都是单说话人模型,那么咬字清晰的whisper-ppg也是不错的。

扩散模型的训练就不细讲了,建议如果第一次上手不要考虑浅扩散(diff)模型,等到你操作稍微熟练之后这些东西是啥你自然会明白。

当然如果你很好奇这里的扩散模型是什么,可以百度diff-svc

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

F0预测器的选择上,看各位显卡性能定,比如你有一张3080 10G及以上的显卡,那么crepe就是比较合适的选择,如果显卡性能不佳尤其是显存偏少(6G左右)比较建议选择Harvest

So,你可能会想问什么是f0预测,简单来讲f0预测是对输入的声音进行处理来分析其中的音素及持续时间并生成一个元数据,在训练过程和推理过程中都会用到这个功能

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

两项都不要开启,除非你已经知道它们是用来干什么的。

完成以上的设置之后,就可以开始数据预处理了!

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

就这个好大好大的按钮

预处理过程会消耗一点时间(不止一点),可以去找包零食刷刷视频。

等下面的输出信息里的进度条到100%并且没报错就说明处理完了(或者什么时候你滑滚轮能直接滑下去了)

什么,你说你报错了?那肯定是你前面的哪里做错了,快回去再看一遍处理过程!

想成为看炉童子,你必须学会的技能就是……摸鱼。

因为这些数据处理和训练真的非常消耗时间。

当然也真的很需要耐心,因为如果你运气不好的话,你照着这个文档做可能要来来回回翻上翻下几十次,不要觉得奇怪,炼丹就是这样的,每天都在排错。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

这个100%出来之后就堂堂结束咯!

然后是要填写训练设置超参数

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

下面的扩散模型部分我们暂时不需要管

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

首先是显卡信息,这个各位如果用笔记本的话要注意一下,别把核显和独显搞混了,一般来讲这里都会自动识别一张能CUDA的n卡,以及如果你要多卡训练要记得sli,否则只能单卡。

下面的生成评估日志是指后台输出一次模型的相关数据的频率,两百步就是每迭代两百次就输出一次相关数据,这个对性能影响不大,你喜欢看炉子的话可以设置的小一点,比如200,个人一般设置到800。

每隔多少步验证并保存一次模型是一个关键设置,默认设置了800即每迭代800次会保存一个模型在本地,在条件允许的情况下建议这个值可以适当设小(太小会影响训练速度,500到800左右就挺合适的)。

保存的频繁可以保证模型的安全,比如我在训练到第96500步的时候模型发生了过拟合导致音色丢失,那么设置了800步的情况下你就可以保存到96000步的模型,而设置了400步的时候就能保存到96400步的模型,而如果设置了1800步就只能保存到95400步的模型,但是这也意味着你需要付出更多的时间来看炉子,或者保存大量的模型并且浪费巨量存储空间。

右边则是保留模型数量的设置,比如你设置了10就会保留最新训练的10个模型。

假设我保存步数设置为800,保存模型数设置为5,那么训练到16000步时就会保存步数为16000、15200、14400、13600、12800的这五个模型。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

然后就是下面这组

批量大小也就是Batch Size,可以说是决定训练速度的选项,batch size越大每轮训练就越快,不过这个选项要看你的显存来定,一般6G设置到4,10G设置到6,16G设置到10.

学习率不用动,bs大于10可以设置到0.0002,严重玄学炸炉参数(孩子第一次炸炉就是bs设置6学习率设置了0.0002,第二天过来看炉子完全没法听(悲

半精度(fp16)训练,这个用不用看你显存,如果低于8g那还是用吧,但是对音质有没有影响实在是有点玄学

加载所有数据到内存,这个选项建议你内存大于等于32G的时候可以用,尤其是你的硬盘速度并不理想(比如笔者用的东芝的企业级机械)的时候可以有效提升炼丹体验。

我的炼丹炉怎么在唱歌?SoVITS 使用教程(上) | 黑盒学Tech#2

设置完这些之后,就是要写入配置文件,然后点击下面的从头开始训练啦

炼他奶奶的

炼丹的过程会非常枯燥,你需要盯着后台看他不停的迭代(当然你也可以关了电脑屏幕然后回去睡一觉,但是会不会这会炸炉我不保证)

作为示例的话,笔者的Urushi AI炼了6个多小时才100000步(96000之后就过拟合了,结果最后最好用的还是89600步的)

作为合格的看炉童子,摸鱼是很好的习惯,然而你的显卡在高负荷工作你的电脑这会大概率看个视频都卡。

你知道吗,整合包文件夹里还有一个 启动Tensorboard.bat

这个面板可以方便你监视模型训练过程中的参数,尤其是Loss的拟合程度,有的时候可能你没盯着面板一小会loss曲线就过了,加油啊炼丹的大哥哥

尾声

什么你问怎么这就结尾了?

你不会觉得你开始炼丹之后还能这么等着看下一部分吧

所以关于推理和多说话人的部分……当然还是下一期了!

希望各位都能炼出自己满意的声音噢~

往期 黑盒学Tech :

Markdown:如何成为Web时代最热门的文档标记语言|黑盒学Tech#1

往期 开源项目推荐:

优雅的Markdown写作工具Marktext | Bot空的开源项目推荐#5

QtScrcpy:高质量投屏何须花钱 | Bot空的开源项目推荐#4

#实用软件推荐##开源软件##ai教程##ai人工智能#

#免责声明#

①本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。

②若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

③如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!

④本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。

⑤本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!

给TA打赏
共{{data.count}}人
人已打赏
数码硬件

618游戏手柄推荐

2023-6-6 0:00:00

数码硬件

7900XT降至4999元,SN850P就是SN850X,ChatGPT可制作恶意软件

2023-6-8 0:00:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索