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

吞句,重复,重复引导音频的一个可能原因

Open Joy-word opened this issue 10 months ago • 4 comments

*前置说明:如果大概率出现重复引导音频,就不是本问题的描述范围,可能是引导音频的原因。 使用的是 fast_inference 分支

问题描述: 并发批量测试的时候,固定随机种子与文本,有概率出现 1-2 个任务结果与其他任务结果不同,有 吞句,重复,首句重复引导音频 的问题。 主要表现为重复一句话,吞了下一句话。

可能原因: 通过打 log 定位,应该是出现在 seg_text 方法中。而 seg_text 方法使用 LangSegment 进行分词,LangSegment 有 _text_lasts 缓存机制。通过添加 LangSegment.LangSegment._text_lasts = None ,暂时没有出现了。

出现这类问题可以试试,有新的发现再补充。

--------补充-------- segment_and_extract_feature_for_text_befseg_text 之前,segment_and_extract_feature_for_text_segseg_text 之后。 日志如下: segment_and_extract_feature_for_text_bef 可惜,王后在白雪公主出生后不久就去世了。 segment_and_extract_feature_for_text_seg ['可惜,王后在白雪公主出生后不久就去世了。'] extract_bert_feature 可惜,王后在白雪公主出生后不久就去世了. segment_and_extract_feature_for_text_aft 可惜,王后在白雪公主出生后不久就去世了. segment_and_extract_feature_for_text_bef 国王再娶了一位王后,她拥有一面魔镜,每天都会问:“魔镜魔镜,世界上谁最美?”魔镜总会回答:“王后,您是世界上最美的人。”直到有一天,魔镜改口说:“王后,您很美丽,但白雪公主更胜一筹。 segment_and_extract_feature_for_text_seg ['可惜,王后在白雪公主出生后不久就去世了。'] extract_bert_feature 可惜,王后在白雪公主出生后不久就去世了. segment_and_extract_feature_for_text_aft 可惜,王后在白雪公主出生后不久就去世了.

Joy-word avatar Mar 29 '24 11:03 Joy-word

LangSegment引发的话,控制台输出的 文本前端处理 信息,应该是错的

KamioRinn avatar Mar 29 '24 11:03 KamioRinn

是的,我这边将日志写在文本中翻看的,在前端处理信息这一步之前就已经有重复和吞句的问题了。但概率不是很大,我这边启动了三条线程,每条线程处理10条的过程中看到的,可能 1/60 到 2/60 的样子。目前不是十分肯定,只是后面修改后再测几次就没出现了,之后再留意一下。 大佬是 LangSegment 作者吗 😲,还想请教一下 ,LangSegment 设计的是支持并发处理语句的吗?

与此无关,控制台有输出 LangSegment 文本前端处理信息。至于gpt重复和吞句的问题,发生在自回归推理阶段。建议调一调top_k,top_p等参数。

Joy-word avatar Mar 29 '24 14:03 Joy-word

猜测使用多线程想提升速度吧?但速度的瓶颈不在cpu部分,而是在进入cuda之后,除非GPU很空闲,否则cpu的多线程(对于gpt推理)无实际提升意义。仅供参考~ #779

一方面是想提升速度,另一方面是作为 api 使用的话,不可避免会需要并发。用阿里云 v100 16g 显卡测试,单个任务显卡占用只有 2-3g (batch_size 已设置为5),显卡占用率也没拉满,感觉有空间,但没找到瓶颈在哪。

Joy-word avatar Mar 30 '24 01:03 Joy-word

是的显存占用不大,我也在想提升速度

wubangjunjava avatar May 15 '24 02:05 wubangjunjava