GPT-SoVITS icon indicating copy to clipboard operation
GPT-SoVITS copied to clipboard

多次请求,生成结果不一样

Open selfnat opened this issue 1 year ago • 8 comments

为什么参数都一样,多次请求结果不一样,有的是发音不一样,有的是返回错误的结果,是有什么隐藏参数可以控制吗

selfnat avatar Aug 12 '24 08:08 selfnat

在web端看到有“是否直接对上次合成结果调整语速和音色。防止随机性。” 这个描述, api没有看到相关控制,是这个控制的吗

selfnat avatar Aug 12 '24 08:08 selfnat

模型的生成结果受多种因素影响,貌似从理论上很难保证两次生成的结果完全的一样。因为对一段文字的拼音解释的模型,其拼音结果也具有一定的随机性。

AkagawaTsurunaki avatar Aug 12 '24 12:08 AkagawaTsurunaki

我使用的是英文场景,按理说是标准的英语,我说的发音不同指的是错误读音一个单词读另一个单词的发音

selfnat avatar Aug 13 '24 02:08 selfnat

是否可以理解为底层标注的数据有可能出错,或者关联的时候出错了

selfnat avatar Aug 13 '24 02:08 selfnat

VITS架构的生成过程是有几个randn操作的,可以看看models.py文件

Polaris231 avatar Aug 13 '24 03:08 Polaris231

GPT

XXXXRT666 avatar Aug 13 '24 04:08 XXXXRT666

是否可以理解为底层标注的数据有可能出错,或者关联的时候出错了

这两个原因是有可能的。 正如@Polaris231所提到的,VITS模型中使用了随机数,那么更难以确保每次的结果一致。

值得注意的是,即便同一个模型,由于硬件设备的差异(例如使用不同的浮点精度),还是会导致生成结果不同。

针对读音出错的问题,我的解决方案是: 首先,多次生成音频,然后你可以有以下几种选择:

  1. 人工筛选出最好的那个,少量音频的时候还好,量大了就很费时间了;
  2. 使用ASR模型对结果进行转录,用程序选出与你的结果相匹配的那个,但是有可能语气不符合语气;
  3. 再额外训练一个模型,专门鉴别目标音频与目标文本的差异,但再训练出一个模型难度较大。

AkagawaTsurunaki avatar Aug 13 '24 12:08 AkagawaTsurunaki

指望VITS的随机性还不如去看看GPT的采样参数

XXXXRT666 avatar Aug 13 '24 12:08 XXXXRT666