lenML / ChatTTS-Forge

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

关于语气控制的问题 #4

Closed JuLian1130 closed 1 month ago

JuLian1130 commented 1 month ago

感谢分享! 但是webui左下角use decoder、prompt1、prompt2、prefix的作用似乎是语气控制,但具体填什么没有说明。还有风格选择似乎也没有效果。

zhzLuke96 commented 1 month ago

你说得很对,目前的风格控制还是比较初级,这只是我初步的实验结果。由于 ChatTTS 的原作者似乎还有调整计划,并且尚未发布关于风格控制的详细指南,所以我觉得没有必要详细说明我这些自己测试的结果。现在提供的30多个内置风格已经足够用了(对于API调用而言)。

如果你想进行细致的微调,可以参考以下思路: 简单来说,这类似于 ChatGPT 的系统提示(system prompt)中的上下文学习能力,我们可以通过插入上下文来控制后续生成的结果。

Prompt1 和 Prompt2

Prompt1 和 Prompt2 都是系统提示(system prompt),区别在于插入点不同。之所以需要两个提示,是因为测试发现当前模型对第一个 [Stts] token 非常敏感。

Prefix

这个主要是用于模型生成的控制能力,类似于官方示例中的 refine prompt。这个 prefix 中只应该包含特殊的非语素 token,如 [laugh_0][oral_0][speed_0][break_0] 等。

因此,styles 中所谓的 _p 就是使用 prompt + prefix,而不带 _p 的则只使用 prefix。

alex9441 commented 1 month ago

有趣的是,在使用_p的styles情况下,很多时候第一次生成的结果差强人意,可以多点两次从新生成的效果会好一些.