找到最后成功的一步
语音链路包含页面、本站服务端、供应商连接、音频生成和播放器。先确认哪一步完成。任务进入队列不等于音频生成,生成成功也不等于浏览器已经能够播放。
用请求标识关联各阶段,只记录状态与耗时,不记录长期密钥、完整供应商响应或私人文案。
浏览器没有声音
先由用户主动点击播放,排除自动播放限制。检查音频响应类型和长度;把 HTML 错误页保存成 WAV 后缀,并不会变成音频。
再检查链接是否过期、是否属于当前会话。受保护的音频链接在新浏览器中打不开,可能是正确的权限行为。不要为了修复这一点把私有音频改成公开。
鉴权失败
区分本站账号登录与服务端供应商鉴权。用户已经登录,不代表后端凭据有效。浏览器实时会话应使用短期令牌,不是长期 key。
前端提供重新建立会话等明确行动,服务端保留错误分类;不能原样回显可能含敏感信息的上游错误。
一直排队
如实显示等待状态。不断重新提交会增加队列和重复成本。持续查询原任务,直到终态或有界超时。若提供取消功能,应确认服务端接受后再宣称任务停止。
声音不符合预期
缩短为最小失败句子,匹配语言选择,展开缩写,分别测专名和数字。对比前保留原结果与设置。
只有某台设备出错时,先换设备试听,再改模型或供应商。网络、编码、音量和耳机都会影响听感,但不一定改变生成文件本身。