现象
三个缺陷叠加,导致「阿里云百炼实时 ASR」的连接检查完全不可用,且用户无法自助定位:
- 「验证」对有效凭据也必然失败。
validate_bailian_asr_provider 只发送 1 个 100ms 静音块(TARGET_AUDIO_CHUNK_BYTES = 3200B)就 finish-task;DashScope 对 <200ms 的音频固定返回 task-failed: EmptyAudio(2026-07 用独立 WebSocket 脚本实测边界:单帧 100ms 拒收、200ms 起接受)。该错误串无前端映射,显示为笼统的「操作失败」。
- 「拉取模型」永远假成功。
list_provider_models 对 bailian 直接返回硬编码的 ["fun-asr-realtime"],不发任何网络请求;Key/endpoint 全错也显示"已拉取 1 个模型"(其他厂商这颗按钮是真实带 Key GET /models)。
- 接口地址协议头不校验。用户容易把百炼控制台展示的
https:// 兼容模式/业务空间专属域名地址粘进来,WebSocket 握手报 "URL scheme not supported",同样被前端兜底成「操作失败」。
- 触发条件:供应商选 bailian,填任意有效或无效凭据,点「验证」/「拉取模型」。
- 证据:
- 代码位置:
commands/providers.rs(validate 只喂 1 块静音;list_provider_models 硬编码返回);asr/bailian.rs::open_session;ProvidersSection.tsx::providerErrorMessage 兜底分支。
- 线上行为实测(同一有效 Key,独立脚本直连
wss://dashscope.aliyuncs.com/api-ws/v1/inference/):单帧 100ms 静音 → task-failed: EmptyAudio;单帧 200/300/500/1000ms 静音 → task-finished。
影响
- 用户拿着有效的百炼 Key,得到「拉取模型成功 + 验证失败(操作失败)」的矛盾信号,误判为 Key 无效或功能损坏(实际听写通路对真实语音是正常的,因为真实语音远超 200ms)。
- 配合缺陷 3,用户把控制台的 https 地址粘进来后完全无从定位问题。
建议接受标准
现象
三个缺陷叠加,导致「阿里云百炼实时 ASR」的连接检查完全不可用,且用户无法自助定位:
validate_bailian_asr_provider只发送 1 个 100ms 静音块(TARGET_AUDIO_CHUNK_BYTES= 3200B)就 finish-task;DashScope 对 <200ms 的音频固定返回task-failed: EmptyAudio(2026-07 用独立 WebSocket 脚本实测边界:单帧 100ms 拒收、200ms 起接受)。该错误串无前端映射,显示为笼统的「操作失败」。list_provider_models对 bailian 直接返回硬编码的["fun-asr-realtime"],不发任何网络请求;Key/endpoint 全错也显示"已拉取 1 个模型"(其他厂商这颗按钮是真实带 Key GET /models)。https://兼容模式/业务空间专属域名地址粘进来,WebSocket 握手报 "URL scheme not supported",同样被前端兜底成「操作失败」。commands/providers.rs(validate 只喂 1 块静音;list_provider_models 硬编码返回);asr/bailian.rs::open_session;ProvidersSection.tsx::providerErrorMessage兜底分支。wss://dashscope.aliyuncs.com/api-ws/v1/inference/):单帧 100ms 静音 →task-failed: EmptyAudio;单帧 200/300/500/1000ms 静音 →task-finished。影响
建议接受标准
ws:///wss://协议头的接口地址返回专门错误码,前端显示含默认 wss 地址的明确提示,覆盖全部 5 种语言。xiaomi-mimo-asr的「拉取模型」同样是硬编码列表(本 issue 不展开,可另立)。