Heuo
Heuo
使用 fast_inference 分支,尝试调试了一下多线程并发。 问题1:在多线程下固定种子,无法复现结果 原因:设置种子的时候,很多种子是全局使用的。于是多线程会共享同一个随机数生成器,导致多线程结果无法复现。以下代码为原始代码,标识为 _全局_ 的即是多线程共享的。 ``` def set_seed(seed:int): seed = int(seed) seed = seed if seed != -1 else random.randrange(1
*前置说明:**如果大概率出现重复引导音频,就不是本问题的描述范围,可能是引导音频的原因。** **使用的是 fast_inference 分支** 问题描述: 并发批量测试的时候,固定随机种子与文本,有概率出现 1-2 个任务结果与其他任务结果不同,有 **吞句,重复,首句重复引导音频** 的问题。 主要表现为重复一句话,吞了下一句话。 可能原因: 通过打 log 定位,应该是出现在 _seg_text_ 方法中。而 _seg_text_ 方法使用 _LangSegment_ 进行分词,_LangSegment_ 有 _text_lasts 缓存机制。通过添加 `LangSegment.LangSegment._text_lasts = None` ,暂时没有出现了。 出现这类问题可以试试,有新的发现再补充。 --------补充--------...
比如 “粉红墙上画凤凰,凤凰画在粉红墙。 红凤凰,粉凤凰, 红粉凤凰,花凤凰。 红凤凰,黄凤凰,红粉凤凰,粉红凤凰,花粉花凤凰。” 底模和自己训练的模型都测试过,均有不同程度的问题。
测试步骤: 训练 40 轮 vits 模型 和 20 轮 gpt 模型。 测试语句 “皇后问魔镜:魔镜魔镜,世界上谁最美。” 重复惩罚值(repetition_penalty)为 1.35. 用 20 轮的 vits 模型 和 20 轮的 gpt 模型测试出 seed 为 949520197 的时候,语音为 “皇后问魔镜:世界上谁最美。”...