Skip to content

Voice dictation cannot use Token Plan ASR: resolveVoiceTransport rejects qwen-audio-3.0-asr-flash as unsupported #10932

Description

@adityaa91990

Summary

Model Studio's Token Plan serves speech recognition under the new model family ID qwen-audio-3.0-asr-flash, but Qwen Code's voice pipeline hardcodes the old IDs, so voice transcription cannot use any Token Plan ASR model. Mic capture itself works; the gate is purely the model-ID allowlist.

Environment

  • Qwen Code 0.22.3 (global npm install), Linux
  • Provider: OpenAI-compatible, baseUrl https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1 (Model Studio Token Plan, Global/Intl)
  • Settings: general.voice.enabled: true, voiceModel: "qwen-audio-3.0-asr-flash", model registered in modelProviders.openai with the Token Plan baseUrl

Repro

  1. Configure the voice model as above.
  2. Press Space to start dictation.
  3. Error: Voice model 'qwen-audio-3.0-asr-flash' cannot be used for transcription. Configure an OpenAI-compatible model with baseUrl in settings.modelProviders.

Evidence

  • Token Plan docs list qwen-audio-3.0-asr-flash as the supported speech-recognition model (plus qwen-audio-3.0-realtime-plus, qwen-audio-3.0-tts-plus): https://www.alibabacloud.com/help/en/model-studio/token-plan-personal-overview

  • Live endpoint probes against the Token Plan baseUrl (POST /chat/completions with an input_audio message, same shape as transcribeViaQwenAsr):

    • qwen3-asr-flash404 model_not_found (old ID no longer exists on this endpoint)
    • qwen-audio-3.0-asr-flash400 with empty body (model exists; the batch request shape is apparently not accepted for this ID)
  • resolveVoiceTransport in packages/cli/src/services/voice-model.ts (0.22.3, and unchanged on upstream main as of 2026-09-03) only matches:

    • ^qwen3-asr-flash-realtime(?:-|$)qwen-asr-realtime
    • ^qwen3-asr-flash(?:-\d{4}-\d{2}-\d{2})?$qwen-asr-chat
    • ^(fun-asr|paraformer).*realtime(?:-|$)dashscope-task-realtime
    • anything else → unsupported

    So qwen-audio-3.0-asr-flash is rejected before any request is made.

Expected behavior

Qwen Code recognizes the current qwen-audio-3.0-* ASR family (at minimum qwen-audio-3.0-asr-flash) and routes it to the correct transport, so Token Plan subscribers can use voice dictation.

Suggested fix

Extend the resolveVoiceTransport allowlist to accept the qwen-audio-3.0-asr* family. Note the transport choice needs verification: my batch chat/completions probe of qwen-audio-3.0-asr-flash returned 400 {}, so this ID may speak one of the WebSocket protocols instead (/api-ws/v1/realtime or /api-ws/v1/inference) — i.e. it may need mapping to qwen-asr-realtime/dashscope-task-realtime rather than qwen-asr-chat.

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

    category/cliCommand line interface and interactionpriority/P2Medium - Moderately impactful, noticeable problemscope/interactiveInteractive CLI featuresscope/model-switchingModel selection and switchingstatus/ready-for-humanSpecified but requires human judgment to implement; not suitable for an autonomous agenttype/bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions