您好,感谢您开发和维护 cosyvoice.cpp。
我目前使用 CosyVoice 官方 Python 仓库进行 CosyVoice3 推理,发现合成音频有较高概率在句首出现短促的杂音、爆音或 click/pop,句尾偶尔也会出现类似问题。
这个现象与官方仓库中的以下 Issue 比较相似:
我注意到您之前在 cosyvoice.cpp 中增加了一个默认启用的 20ms fade-in 后处理:
从提交代码来看,处理方式是对生成音频开头的约 20ms 做线性淡入。我想请教几个问题:
- 您当时添加 fade-in,是否也是因为观察到了 CosyVoice3 在音频开头产生杂音、爆音或 click/pop?
- 您是否定位过这种句首瞬态的具体原因?例如可能来自:
- Causal HiFT vocoder 在第一次推理时缺少历史上下文;
- Flow/CFM 生成的起始 mel 存在边界瞬态;
- iSTFT、波形输出或音频拼接时,首个采样点没有从零开始;
- 或者其他原因。
- 这个 fade-in 主要是用于掩盖模型本身产生的首帧瞬态,还是为了解决播放/PCM 拼接时的波形不连续?
- 在流式推理中,HiFT 是否会保留前一包的上下文或缓存,因此只有第一个音频包存在“冷启动”边界,后续音频包通常不会再出现相同的开头爆音?
- 当前 fade-in 是只对一次完整推理的第一个音频包执行,还是会对每个流式输出包、每个文本分段分别执行?
- 对于偶尔出现的句尾爆音,您是否也观察到过?是否建议增加 fade-out、尾部异常检测或裁剪处理?
我目前的理解是:如果流式推理的后续音频包能够复用 vocoder 上下文,那么 fade-in 应该只需要作用于整段音频的第一个包;如果对每个流式包都执行 fade-in,可能会造成包间音量下陷或新的不连续。不知道这个理解是否正确?
thx for your effort!
您好,感谢您开发和维护 cosyvoice.cpp。
我目前使用 CosyVoice 官方 Python 仓库进行 CosyVoice3 推理,发现合成音频有较高概率在句首出现短促的杂音、爆音或 click/pop,句尾偶尔也会出现类似问题。
这个现象与官方仓库中的以下 Issue 比较相似:
我注意到您之前在 cosyvoice.cpp 中增加了一个默认启用的 20ms fade-in 后处理:
从提交代码来看,处理方式是对生成音频开头的约 20ms 做线性淡入。我想请教几个问题:
我目前的理解是:如果流式推理的后续音频包能够复用 vocoder 上下文,那么 fade-in 应该只需要作用于整段音频的第一个包;如果对每个流式包都执行 fade-in,可能会造成包间音量下陷或新的不连续。不知道这个理解是否正确?
thx for your effort!