Speech-AI-Forge
Speech-AI-Forge copied to clipboard
[ISSUE] 如何消除开头的空白音频
确认清单
- [x] 我已经阅读过 README.md 和 dependencies.md 文件
- [x] 我已经确认之前没有 issue 或 discussion 涉及此 BUG
- [x] 我已经确认问题发生在最新代码或稳定版本中
- [x] 我已经确认问题与 API 无关
- [x] 我已经确认问题与 WebUI 无关
- [x] 我已经确认问题与 Finetune 无关
你的issues
生成的音频开头总是有一段空白时间,字数越少越严重,如“你好”,有很长空白时间,结尾去掉[uv_break]可以消除尾部的空白,开头的如何消除
我估计使用chattts产生空白音频这个应该就是模型所致,我们应该没有什么特别好的办法解决
主要原因是long context导致,context指的就是 音色 ,使用chattts音色克隆是模型 zero shot 调用,所以等于是模型接在输入的音色音频之后继续生成,这个 继续生成 的过程就容易生成空白这种 副语言 现象
(就是模型觉得前后两句话之间应该留点空白,可能是输入音频domain和合成音频domain太远导致)
有几个办法避免:
- 使用 seed speaker (基于种子的音色) 会比 zero shot 音色更稳定,因为上下文很短只占用一个 embedding 位置
- 减少 speaker voice 长度,在10秒以下,且干净无噪声
- 抽卡,尝试不同的 infer seed ,可能能找到一个稳定的 infer seed
- 尝试其他模型,chattts现在缺乏维护和后续改善,其他新模型的zeroshot能力克隆能力会更稳定
也有可能是bug,不过你提供的信息不多我也评估不出来,你如果觉得还是bug导致,应该提供更多信息帮助我能复现具体问题
https://github.com/lenML/Speech-AI-Forge/commit/4d8ed07fde7f696de65b6a460f28e4b1f7dab3de
添加了一个功能移除音频两端的空白部分,但是只支持非流式合成的时候
使用方式:
- webui: 开启 enable_remove_silence 选项即可
- api:
v2/ttsapi 中的设置adjust.remove_silence=true即可