Skip to content

目前gpt sovits的推理速度,有更新使用TorchScript推理速度优化吗? #152

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Lemondogdog opened this issue Mar 10, 2024 · 9 comments

Comments

@Lemondogdog
Copy link

目前的gpt sovits的推理速度有办法在更快些吗?有更新使用TorchScript推理速度优化吗?

@Lemondogdog
Copy link
Author

目前的gpt sovits的推理速度有办法在更快些吗?有更新使用TorchScript推理速度优化吗?

看这个文章的更新好像可以 RVC-Boss/GPT-SoVITS#672

@Artrajz
Copy link
Owner

Artrajz commented Mar 10, 2024

已更新7da8f45

在1060上测试从30多it/s提升到60it/s左右 👍

@Lemondogdog
Copy link
Author

已更新7da8f45

在1060上测试从30多it/s提升到60it/s左右 👍

太好了确实有提升一半的速度上来了。不够我复制源码粘贴到我的旧的GPU版本项目上更新后。发现底下的API参考文本不会随着上面的页面参数设置变化而变化。就只有gptsovits的模块这样其它模块正常会随之而变。
屏幕截图 2024-03-10 220803

@Artrajz
Copy link
Owner

Artrajz commented Mar 10, 2024

感谢反馈!已修复

@Lemondogdog
Copy link
Author

已更新7da8f45

在1060上测试从30多it/s提升到60it/s左右 👍

目前这种方式有快些但是也有个小问题,就是短时间内连续发送了多条文本进行合成时,它总是先处理文本少的部分。没用按发送过去的顺序进行优先处理,文本较多的句子它最后才处理。这样也不太好如果能并发批量处理就好了。貌似有重新优化了下可以并发处理了,你看下这个 RVC-Boss/GPT-SoVITS#721

@Lemondogdog
Copy link
Author

已更新7da8f45

在1060上测试从30多it/s提升到60it/s左右 👍

大概是这样比如我自己本地发送这么一句话按句号分割后依次发送请求合成:发送内容如下:
屏幕截图 2024-03-12 205938
然后合成后处理合成步骤顺序反过来了。它返回的响应是反过来的也就是没用按我们发送的顺序来
屏幕截图 2024-03-12 210018

@Artrajz
Copy link
Owner

Artrajz commented Mar 12, 2024

短时间内连续发送的文本,短文本先被发送这是预期的效果,因为同时开始合成,短文本能更快合成完毕的嘛。你可以试一下调换这几条文本的发送顺序,结果应该也是短文本先被发送。

按pr的作者意思应该是优化的单次推理的生成速度。

本地提前分割文本再请求,即使发送顺序不一样,本地接收应该有办法按正常顺序播放。如果实在需要按顺序返回,可以修改app.py中的代码,改成单线程推理

if __name__ == '__main__':
    app.run(host=config.http_service.host, port=config.http_service.port, debug=config.http_service.debug,
            threading=False)

@Lemondogdog
Copy link
Author

短时间内连续发送的文本,短文本先被发送这是预期的效果,因为同时开始合成,短文本能更快合成完毕的嘛。你可以试一下调换这几条文本的发送顺序,结果应该也是短文本先被发送。

按pr的作者意思应该是优化的单次推理的生成速度。

本地提前分割文本再请求,即使发送顺序不一样,本地接收应该有办法按正常顺序播放。如果实在需要按顺序返回,可以修改app.py中的代码,改成单线程推理

if __name__ == '__main__':
    app.run(host=config.http_service.host, port=config.http_service.port, debug=config.http_service.debug,
            threading=False)

明白了,谢谢。目前作者好像又优化了有个 tts infer重构优化和批量推理支持 RVC-Boss/GPT-SoVITS#721

@Artrajz
Copy link
Owner

Artrajz commented Mar 15, 2024

批量推理已更新 c746227

@Artrajz Artrajz closed this as completed Apr 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants