先看现象。上传五秒的录音做声音克隆,报参考音频时长不足,换一段更长的录音才成功。

排查方向其实有限,先把可能性排一排。参考音频低于模型要求的最短时长。少数情况下是音频里静音占比太高,有效语音不足。

还有一种情况,采样率不匹配,重采样后时长变化。

另外,多人对话混在一起,音色不纯。

先确认有效语音时长

ffmpeg -i ref.wav -af silencedetect=n=-40dB:d=0.5 -f null - 2>&1 | Select-String silence

裁剪出干净的单人片段

ffmpeg -i ref.wav -ss 3 -t 12 -ar 22050 ref_clean.wav

去掉首尾静音再送模型

ffmpeg -i ref_clean.wav -af silenceremove=start_periods=1 ref_trim.wav

末了用同一段文本做相似度对比

python -c "print(similarity(a, b))")

白天有业务在跑,能验证的部分都压到了晚上做。

当时还开着另一个排查窗口,两边日志对照着看才定位到。

怎么算真的好了,看的是同一批现象。克隆成功且音色接近原声,合成语音的自然度明显提升。

参考音频质量比长度更重要,嘈杂环境录的三十秒往往不如安静环境录的十秒效果好。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189