RVC-Boss / GPT-SoVITS

1 min voice data can also be used to train a good TTS model! (few shot voice cloning)
MIT License
32.68k stars 3.77k forks source link

关于一些技术和原理的问题 #1002

Closed IndowK closed 4 months ago

IndowK commented 4 months ago

作者您好,我已经按照教程自己跑了一遍,并合成了我想要的语音。我想问一些有关技术细节的问题,希望能得到您的解答! 1、哔站教程中13:27提到的“使用hubert和RVQ将音频转化为包含音色的语意token”这句话中的语义,指的是目标音色说话人所提供的参考语音的语义,还是想要合成的目标语音内容的语义? image

2、教程上写的训练是微调训练,那么微调训练提供的数据集,与我想要合成的目标说话人的音色是否有直接关系,因为我使用与微调数据集不同的说话人语音去作为目标说话人音色去引导生成语音的时候,生成的语音效果依旧与目标说话人音色很相似。 3、预训练模型的作用是什么呢?预训练模型与微调训练的模型的区别是什么,我不太懂预训练模型在整个训练中起到的作用是什么。 4、我想从0开始训练一个GPT-Sovits模型,应该怎么做呢?其实是我想更深刻地理解整个GPT-Sovits的训练流程和技术细节,但又不知道从何下手,而且也不知道怎么去对比GPT-Sovits和so-vits之间的区别,只是大概理解了教程哔站教程上面的原理图。 5、以后是否会有论文发布的计划呢?

XXXXRT666 commented 4 months ago

1.用参考推理目标 2.是 3.无预训练模型需要较大数据集 4.训练底膜好像就是找数据集打标,控制比例,到最后把模型一部分删掉,无底膜训练说话人模型就是多找点素材

SapphireLab commented 4 months ago
  1. 没看懂你的意思, Pass.
  2. 在没有新任务训练样本的情况下直接进行推理就是零样本学习 (Zero-Shot), 全靠模型的泛化能力, 而具有少量新任务训练样本对模型进行简单训练后再进行推理即少样本学习 (Few-Shot). GSV 的微调就是后者, 就目前而言 GSV 是具有一定的 zero-shot 能力的也就是不使用对应说话人的参考语音进行推理, 但效果不一定很好, 只能看有没有达到你的期望.
  3. 预训练模型通常是用某些任务的大量数据提前训练好的模型, 然后作为后续任务的模型起点, 然后用特定任务的相应训练样本进行微调训练, 具体方式也有很多种. GSV的微调可以认为是为了适配特定说话人的音色而进行的全参数微调.
  4. 不加载底模, 准备足够多的高质量数据用于训练应该就行. 相比so-vits这类VITS类型的端到端TTS (如果你问的是so-vits-svc的话请忽略), GSV走的是相对新的基于语言模型的TTS路线, 相关工作可以看 VALL-E, SoundStorm 等等. 以上为个人理解,欢迎指正.
IndowK commented 4 months ago

1.用参考推理目标 2.是 3.无预训练模型需要较大数据集 4.训练底膜好像就是找数据集打标,控制比例,到最后把模型一部分删掉,无底膜训练说话人模型就是多找点素材

感谢您的解答!

IndowK commented 4 months ago
  1. 没看懂你的意思, Pass.
  2. 在没有新任务训练样本的情况下直接进行推理就是零样本学习 (Zero-Shot), 全靠模型的泛化能力, 而具有少量新任务训练样本对模型进行简单训练后再进行推理即少样本学习 (Few-Shot). GSV 的微调就是后者, 就目前而言 GSV 是具有一定的 zero-shot 能力的也就是不使用对应说话人的参考语音进行推理, 但效果不一定很好, 只能看有没有达到你的期望.
  3. 预训练模型通常是用某些任务的大量数据提前训练好的模型, 然后作为后续任务的模型起点, 然后用特定任务的相应训练样本进行微调训练, 具体方式也有很多种. GSV的微调可以认为是为了适配特定说话人的音色而进行的全参数微调.
  4. 不加载底模, 准备足够多的高质量数据用于训练应该就行. 相比so-vits这类VITS类型的端到端TTS (如果你问的是so-vits-svc的话请忽略), GSV走的是相对新的基于语言模型的TTS路线, 相关工作可以看 VALL-E, SoundStorm 等等. 以上为个人理解,欢迎指正.

感谢您的解答!

RVC-Boss commented 4 months ago

1、hubert音色和语义都有的,语义多一些 2、微调用同一个人,微调完推理也是这个人;用多人,通过参考音频来控制音色等 3、楼上说过了 4、按照现有代码扩到2k小时,sovits文本编码器学习率改回1 数据要求: 录音质量:录音设备不要太糊,录下来听着高频清晰,混响不要太大;不要口吃、复读;文本和音频能严格对上,标点要正确 另外底模训练流程多一个s2的阶段,参考: https://github.com/RVC-Boss/GPT-SoVITS/issues/67 5、再议,可能有可能没有

ZhangJianBeiJing commented 4 months ago

mark

0x1001u commented 4 months ago

非常感谢各位的解答。

IndowK commented 4 months ago

1、hubert音色和语义都有的,语义多一些 2、微调用同一个人,微调完推理也是这个人;用多人,通过参考音频来控制音色等 3、楼上说过了 4、按照现有代码扩到2k小时,sovits文本编码器学习率改回1 数据要求: 录音质量:录音设备不要太糊,录下来听着高频清晰,混响不要太大;不要口吃、复读;文本和音频能严格对上,标点要正确 另外底模训练流程多一个s2的阶段,参考: #67 5、再议,可能有可能没有

感谢您的解答!

45xjh commented 2 months ago
  1. 没看懂你的意思, Pass.

    1. 在没有新任务训练样本的情况下直接进行推理就是零样本学习 (Zero-Shot), 全靠模型的泛化能力, 而具有少量新任务训练样本对模型进行简单训练后再进行推理即少样本学习 (Few-Shot). GSV 的微调就是后者, 就目前而言 GSV 是具有一定的 zero-shot 能力的也就是不使用对应说话人的参考语音进行推理, 但效果不一定很好, 只能看有没有达到你的期望.

    2. 预训练模型通常是用某些任务的大量数据提前训练好的模型, 然后作为后续任务的模型起点, 然后用特定任务的相应训练样本进行微调训练, 具体方式也有很多种. GSV的微调可以认为是为了适配特定说话人的音色而进行的全参数微调.

    3. 不加载底模, 准备足够多的高质量数据用于训练应该就行. 相比so-vits这类VITS类型的端到端TTS (如果你问的是so-vits-svc的话请忽略), GSV走的是相对新的基于语言模型的TTS路线, 相关工作可以看 VALL-E, SoundStorm 等等. 以上为个人理解,欢迎指正. 请问sovits 和so-vits-vcv不是一个吗 那sovits的github有吗

SapphireLab commented 2 months ago

请问sovits 和so-vits-vcv不是一个吗 那sovits的github有吗

那就看对这个简称的定义范围是啥了。 通常的 SoVITS 确实是个特指, 即 Rcell 佬以 SoftVC+VITS 为基础构成的 Soft-VITS-VC 用于声音转换以及 So-VITS-SVC 用于歌声转换。 而本仓库也有 SoVITS 部分但例如文本编码器部分就和它们大不相同,还有 MRTE 模块,且用于语音合成(也许只是因为后续要做 VC)。

我觉得是个命名问题,所以我前面回答的 so-vits 算是一个泛指 VITS 在语音合成领域(也许结合了 SoftVC 或者其他可能存在的 So?)的改进型,并无具体指向。 当然这主要是因为我不确定原楼主问的 so-vits 具体指代所以我还加了括号内容,又比如你写的 so-vits-vcv 我也不知道是啥; 我的建议是不写错别字,含义明确,最好再带链接.jpg

Oyiyi commented 2 months ago

请问这个是哪个视频,我看到这些list: https://www.bilibili.com/video/BV1GJ4m1e7x2/?spm_id_from=333.788

LLLYF commented 1 month ago

mark