Skip to content

[android][omni] 多模态听写 audio=true 时 DashScope 返回 400:provided URL is not valid #1118

Description

@HKLHaoBin

现象

Android 开启多模态识别管线(DashScope Omni / qwen3.8-omni-flash)后:

  • 设置里渠道「连接测试」成功(文本 audio=false → HTTP 200,pong!)
  • 真实短录音听写失败:[omni] … audio=true stream=true → HTTP 400
  • 错误:InternalError.Algo.InvalidParameter: The provided URL does not appear to be valid. Ensure it is correctly formatted.
  • UI / 原生侧:stop_dictation failed: Omni provider failed: invalid response: status 400…
  • 麦克风采集正常(mono 44100、RMS 非静音);同会话可复现两次

影响

多模态管线在手机端无法完成真实听写;文本验证通过会误导用户以为 Omni 已可用。

环境

  • 平台:Android(OpenLess mobile)
  • Provider:dashscope-omni,endpoint https://dashscope.aliyuncs.com/compatible-mode/v1
  • Model:qwen3.8-omni-flash
  • 日志:openless-2026-09-27T14-45-04.log.txt(维护者本地,约 14:42–14:44 UTC)
  • 调研:仓库内 docs/omni-pipeline-mobile-and-voice-edit-research.md §3

根因分析(调研结论)

  1. 失败点在 input_audio.data 被 DashScope 当 URL 解析失败,不是 Key / 端点 / 空音频。
  2. validate_shared_omni_provider 故意只发文本(audio=false),无法发现音频路径故障(Beta 3 说明已写明「文本验证 ≠ 音频可用」)。
  3. 6ebf1f1a 已把百炼主机改为 data:audio/wav;base64,…;但阿里云官方「输入 Base64 本地文件 · 音频」示例要求的是:
    • data:;base64,{payload}(无 audio/wav MIME)
    • 独立 "format": "mp3"|"wav"
    • 示例通常带 modalities: ["text"]、stream=True
  4. 同仓 ASR 百炼多模态(dashscope_multimodal)协议不同,载荷不可原样套用到 Omni chat completions。

接受标准

  • Android 上配置 Omni 后短录音听写成功:无 URL 400,有流式 delta / 终稿
  • DashScope 系 input_audio.data 对齐官方 data:;base64,…(并评估补 modalities: ["text"])
  • 渠道验证至少可选真实 WAV(或明确 UI:文本验证不代表音频可用)
  • 复测日志不再出现 The provided URL does not appear to be valid

相关

  • Omni 通道:openless-all/app/crates/openless-core/src/omni.rs
  • 引擎 / 文本探测:cloud_providers.rs(SharedOmniDictationEngine、validate_shared_omni_provider)
  • 官方文档:https://www.alibabacloud.com/help/zh/model-studio/qwen-omni
  • 姊妹问题:电脑端选区语音编辑在多模态下仍强制传统 ASR(另开 issue)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High prioritybugSomething isn't workingexperimentalExperimental feature or change

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions