lenML / Speech-AI-Forge

🍦 Speech-AI-Forge is a project developed around TTS generation model, implementing an API Server and a Gradio-based WebUI.
https://huggingface.co/spaces/lenML/ChatTTS-Forge
GNU Affero General Public License v3.0
710 stars 87 forks source link

tts_stream的返回结果实现流式返回[ISSUE] #109

Closed panpan123456 closed 2 months ago

panpan123456 commented 2 months ago

阅读 README.md 和 dependencies.md

检索 issue 和 discussion

检查 Forge 版本

请确认是否与 API 无关?

请确认是否与 WebUI 无关?

请确认是否与 Fintune 无关?

你的issues

API接口中的tts_stream的返回结果是全部文字都infer好后返回的,能否提供一个一边出结果一边infer的流式返回的效果提升调用时效性

zhzLuke96 commented 2 months ago

是短文本合成感觉没流式吧?

试试用长文本合成?100字以上 由于 vocos 模型有缺陷现在每96个token (或者每个句子chunk) 才会编码一次,所以短文本可能看上去和非流式一样

vocos 的问题目前无解,缩小编码间隔会明显降低质量

panpan123456 commented 2 months ago

是短文本合成感觉没流式吧?

试试用长文本合成?100字以上 由于 vocos 模型有缺陷现在每96个token (或者每个句子chunk) 才会编码一次,所以短文本可能看上去和非流式一样

vocos 的问题目前无解,缩小编码间隔会明显降低质量

我尝试了700字的文本,用 x = requests.get(f'http://ip:port/v1/xtts_v2/tts_stream?text={text}&speaker_wav=86facdf85d5447daacb30335fa817840&language=ch') 这个结果x还是要等待所用code执行结束才会返回,是我使用的方式有问题吗?

zhzLuke96 commented 2 months ago

是短文本合成感觉没流式吧? 试试用长文本合成?100字以上 由于 vocos 模型有缺陷现在每96个token (或者每个句子chunk) 才会编码一次,所以短文本可能看上去和非流式一样 vocos 的问题目前无解,缩小编码间隔会明显降低质量

我尝试了700字的文本,用 x = requests.get(f'http://ip:port/v1/xtts_v2/tts_stream?text={text}&speaker_wav=86facdf85d5447daacb30335fa817840&language=ch') 这个结果x还是要等待所用code执行结束才会返回,是我使用的方式有问题吗?

https://stackoverflow.com/a/16696317/22459715