Skip to content

macOS Apple Speech provider falls through to Volcengine credential path during dictation #731

@xiaotiepen

Description

@xiaotiepen

Environment

  • OpenLess version: v1.3.11-tauri
  • Platform: macOS, Apple Silicon / aarch64
  • Installed from: OpenLess_1.3.11_aarch64.dmg
  • ASR provider selected: apple-speech
  • LLM provider: codex_oauth

Problem

After selecting apple-speech, the Overview page shows the ASR provider as configured and active:

  • ASR configured
  • Provider: apple-speech

However, starting normal dictation still fails through the Volcengine credential / WebSocket path.

Logs

With apple-speech active, normal dictation can reach this state:

[coord] recorder started (asr=apple-speech, phase=Starting)
[ERROR] [coord] open ASR session failed: 凭据被拒(401)

Before adding any placeholder credentials, the same setup also failed earlier with:

[coord] ASR credential gate failed: 请先在设置中填写火山引擎 ASR App Key 和 Access Key

Expected behavior

apple-speech should not require Volcengine credentials and should not enter the Volcengine open_session / WebSocket path during normal dictation.

Suspected cause

The UI/config appears to recognize apple-speech, but the normal dictation startup path seems to be missing Apple Speech handling before falling through to Volcengine.

Places that looked relevant while debugging:

  • src-tauri/src/coordinator/asr_wiring.rs
  • src-tauri/src/coordinator/dictation.rs

In particular, ensure_asr_credentials() appears to have keyless handling for local Qwen / Foundry / Sherpa, but not for apple-speech. Also, the normal dictation startup path appears to have a macOS local-qwen3 branch, but I could not find a matching apple-speech branch before the Volcengine fallback.

Notes

This was reproduced on a clean-ish installed release app after:

  • removing quarantine attributes
  • confirming microphone and accessibility permissions were granted
  • confirming preferences persisted as activeAsrProvider: apple-speech
  • confirming the UI Overview page displayed apple-speech as configured

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions