批量合成语音时开始返回 403,单独执行同一条命令偶尔又能成功。

一开始怀疑是「代理或网络环境被判定异常」,查了一圈,方向不对。

真正麻烦的地方在于,几个原因的现象几乎一样。请求过于频繁触发风控。也可能是客户端版本过旧,握手参数变化。

还有一种情况,并发过高,连接被限流。

降低并发串行执行

for t in texts; do edge-tts --text "$t" --voice zh-CN-XiaoxiaoNeural --write-media out.mp3; sleep 1; done

升级客户端到最新版本

pip install -U edge-tts

接着加重试与退避逻辑

python -c "import time;time.sleep(3)"

失败样本单独记录稍后重跑

python -c "print(len(failed))")

报错是间歇性的,我蹲守了半小时才抓到一次完整现场。

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

改完先别撤,确认这几项。批量合成全部完成,403 只偶尔出现且能被重试覆盖,音频文件完整,时长与文本匹配。

提醒一点。这类接口没有正式配额承诺,适合做非关键场景,线上产品建议准备一个可切换的备选合成方案。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189