fix(asr): 修复 ASR 能力探测将空转录误判为格式不兼容的问题#81
Conversation
Treat valid empty transcription responses as supported formats, preserve request failures, tighten format-error detection, and add regression coverage.
fqscfqj
left a comment
There was a problem hiding this comment.
已完成审查并直接修复发现的问题。
修复内容:
- 新增
AsrHttpError,让 raw Whisper/Voxtral HTTP 请求保留结构化的status_code。 _is_format_error()现在能可靠排除 401、429、500 等非参数校验错误,避免再次误报为“无法协商出支持的转录格式”。- 增加 401/429/500 不降级、400 正常识别为格式错误的回归测试。
验证:
python -m unittest tests.test_asr_api_client tests.test_speech_recognition_config -v:17 tests passed。python -m compileall与git diff --check通过。
修复提交:1c18a3d。除该问题外,本 PR 的空转录能力探测、异常 payload 校验及能力缓存原子发布改动均合理。
|
已在 环境:
复现结果:线上旧代码的任务日志可稳定复现 验证方式:未替换或重启线上容器,仅将 PR 最新版 结果: 结论:本 PR 最新提交 |
|
继续真实任务联调时发现并修复了第二个问题:ASR 语言检测返回 新增提交
实际任务 字幕覆盖约 |
|
补充 LocalAI 实际兼容性验证: 测试端点:用户提供的 LocalAI OpenAI-compatible API(凭据不记录在评论中) 验证结果:
字幕覆盖 结论:PR 当前版本已分别通过 Aihubmix |
问题
Docker 运行 whisper-1 时频繁出现:
根因
能力探测阶段把合法的 empty transcription 当成格式不支持;同时错误分类过宽,把鉴权/限流/模型不存在等错误也吞并成通用格式不兼容。
修复
_is_format_error(),只有 400/422 参数拒绝才进入格式降级。{"error": ...}的异常 payload。测试