Skip to content
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

[BUG:API] api生成语音时不时出现错误,导致内存溢出 #99

Open
3 tasks done
tuxiaoseng opened this issue Jul 11, 2024 · 6 comments
Open
3 tasks done
Labels
bug Something isn't working quick_fix Fixed but needs further follow-up upstream Dependency on upstream fixes

Comments

@tuxiaoseng
Copy link

阅读 README.md 和 dependencies.md

  • 我已经阅读过 README.md 和 dependencies.md 文件

检索 issue 和 discussion

  • 我已经确认之前没有 issue 或 discussion 涉及此 BUG

检查 Forge 版本

  • 我已经确认问题发生在最新代码或稳定版本中

Forge Commit 或者 Tag

1

Python 版本

3.10.8

PyTorch 版本

1

操作系统信息

linux

BUG 描述

并非一直出错,时不时出现

BUG 端点

/v1/tts

复现参数

并非一直出错,时不时批量报错后出现内存溢出

期望结果

解决异常

实际结果

并非一直出错,时不时批量报错后出现内存溢出

错误信息

modules.ChatTTS.ChatTTS.core - WARNING - regenerate in order to ensure non-empty
modules.ChatTTS.ChatTTS.core - WARNING - unexpected end at index [2]
modules.ChatTTS.ChatTTS.core - WARNING - regenerate in order to ensure non-empty
modules.ChatTTS.ChatTTS.core - WARNING - unexpected end at index [2]
modules.ChatTTS.ChatTTS.core - WARNING - regenerate in order to ensure non-empty
modules.ChatTTS.ChatTTS.core - WARNING - unexpected end at index [2]
ERROR - CUDA out of memory. Tried to allocate 2.00 MiB. GP
@tuxiaoseng tuxiaoseng added the bug Something isn't working label Jul 11, 2024
@zhzLuke96
Copy link
Member

具体什么prompt会触发,可以提供下吗

@zhzLuke96
Copy link
Member

refs
2noise/ChatTTS#511
2noise/ChatTTS#543

其实这个逻辑是官方库修复引入的,forge之前都没有这个修复需求...

zhzLuke96 added a commit that referenced this issue Jul 12, 2024
- 不走 ensure_non_empty 逻辑

可能没法完全解决 none 问题

ref 2noise/ChatTTS#543
@zhzLuke96
Copy link
Member

zhzLuke96 commented Jul 12, 2024

fixed 906f2f7

暂时简单修复一下(至少不会无限循环),如果有更多issue详情可以继续提供,继续排查这个问题

@zhzLuke96 zhzLuke96 added quick_fix Fixed but needs further follow-up upstream Dependency on upstream fixes labels Jul 12, 2024
@tuxiaoseng
Copy link
Author

fixed 906f2f7

暂时简单修复一下(至少不会无限循环),如果有更多issue详情可以继续提供,继续排查这个问题

使用了这个解决方案问题依旧存在,
文本已列表形式在循环输出,时不时会出现这个问题。
/v1/tts?text={0}&style=narration-professional&spk=Bob&temperature=0.1&top_p=0.7&top_k=20&seed=42&format=mp3&bs=12&thr=100&eos=%5Blbreak%5D&enhance=false&denoise=true&speed=1&pitch=0&volume_gain=0&stream=false

print("prefix",prefix,"prompt1",prompt1,"prompt2",prompt2)
结果:prefix [oral_3] [speed_5] [break_3] prompt1 prompt2

文本参考
本讲主要讲授的内容是,从1978年党的十一届三中全会以后,到党的[uv_break]十八大召开之前,三十多年[uv_break]我们党领导改革开放和社会主义现代化建设的[uv_break]奋斗历程,

还有个额外的问题,生成wav格式出现空音频返回,音频有实际大小但是没有声音。

zhzLuke96 added a commit that referenced this issue Jul 12, 2024
@zhzLuke96
Copy link
Member

fixed 906f2f7
暂时简单修复一下(至少不会无限循环),如果有更多issue详情可以继续提供,继续排查这个问题

使用了这个解决方案问题依旧存在, 文本已列表形式在循环输出,时不时会出现这个问题。 /v1/tts?text={0}&style=narration-professional&spk=Bob&temperature=0.1&top_p=0.7&top_k=20&seed=42&format=mp3&bs=12&thr=100&eos=%5Blbreak%5D&enhance=false&denoise=true&speed=1&pitch=0&volume_gain=0&stream=false

print("prefix",prefix,"prompt1",prompt1,"prompt2",prompt2) 结果:prefix [oral_3] [speed_5] [break_3] prompt1 prompt2

文本参考 本讲主要讲授的内容是,从1978年党的十一届三中全会以后,到党的[uv_break]十八大召开之前,三十多年[uv_break]我们党领导改革开放和社会主义现代化建设的[uv_break]奋斗历程,

还有个额外的问题,生成wav格式出现空音频返回,音频有实际大小但是没有声音。

fixed bfc3789

应该基本能解决问题

主要问题还是这个模型生成质量差...
(并且如果有prefix或者prompt,可能导致质量进一步下降)

下面有几个建议减少触发错误生成:

  1. 提高 temperature,到 0.3 以上
  2. 增大 top_k 到 20 以上
  3. 上层服务检测到错误自动重试的时候,应该传递新的 seed 值
  4. 如果质量还是不行,建议不要使用 style,尝试自己调整 prefix prompt1 prompt2

@AdamMayor2018
Copy link

我也出现了这个问题,我发现主要是在短句生成并且使用speed>0的时候出现。如果是10个字以内的短句,设置speed_0就不会出现这个问题。同理,十个字以上就正常多了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working quick_fix Fixed but needs further follow-up upstream Dependency on upstream fixes
Projects
None yet
Development

No branches or pull requests

3 participants