Artrajz / vits-simple-api

A simple VITS HTTP API, developed by extending Moegoe with additional features.
GNU Affero General Public License v3.0
823 stars 121 forks source link

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

Closed Lemondogdog closed 7 months ago

Lemondogdog commented 8 months ago

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

Lemondogdog commented 8 months ago

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

看这个文章的更新好像可以 https://github.com/RVC-Boss/GPT-SoVITS/pull/672

Artrajz commented 8 months ago

已更新https://github.com/Artrajz/vits-simple-api/commit/7da8f452e707fb0993edd13f24ac0f8791b17c0b

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

Lemondogdog commented 8 months ago

已更新7da8f45

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

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

Artrajz commented 8 months ago

感谢反馈!已修复

Lemondogdog commented 8 months ago

已更新7da8f45

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

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

Lemondogdog commented 8 months ago

已更新7da8f45

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

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

Artrajz commented 8 months ago

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

按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 commented 8 months ago

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

按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重构优化和批量推理支持 https://github.com/RVC-Boss/GPT-SoVITS/pull/721

Artrajz commented 8 months ago

批量推理已更新 https://github.com/Artrajz/vits-simple-api/commit/c746227de6ddd2cb453fa8af6277bacff20a2149