Skip to content

iOS Talk: Gateway Default ignores Microsoft Sonia TTS and uses Realtime Voice #98154

Description

@JRaxworthy

Summary

iOS Talk set to Gateway Default appears to ignore the Gateway speech/TTS configuration for Microsoft Sonia and instead resolves to Realtime Voice / Native WebRTC, producing the non-Sonia realtime voice.

Environment

openclaw --version

OpenClaw 2026.6.8 (844f405)

openclaw config get talk

{
  "speechLocale": "en-GB",
  "interruptOnSpeech": true,
  "providers": {
    "microsoft": {
      "lang": "en-GB",
      "speakerVoice": "en-GB-SoniaNeural"
    }
  },
  "provider": "microsoft"
}

openclaw config get messages.tts

{
  "auto": "inbound",
  "mode": "all",
  "provider": "microsoft",
  "persona": "sonia",
  "personas": {
    "sonia": {
      "label": "Sonia",
      "description": "RB spoken identity; Microsoft Sonia Neural only.",
      "provider": "microsoft",
      "fallbackPolicy": "fail",
      "providers": {
        "microsoft": {
          "lang": "en-GB",
          "speakerVoice": "en-GB-SoniaNeural",
          "voice": "en-GB-SoniaNeural",
          "voiceName": "en-GB-SoniaNeural"
        }
      }
    }
  },
  "providers": {
    "microsoft": {
      "lang": "en-GB",
      "speakerVoice": "en-GB-SoniaNeural",
      "voice": "en-GB-SoniaNeural"
    }
  },
  "maxTextLength": 8000,
  "timeoutMs": 120000
}

iOS Talk Status

The iOS app status screen shows:

Provider: Gateway Default
Voice Mode: Realtime Voice
Transport: Native WebRTC

Expected Behavior

iOS Talk using Gateway Default should honor the Gateway talk.provider: "microsoft" and speak with en-GB-SoniaNeural.

Actual Behavior

iOS Talk still resolves to Realtime Voice / Native WebRTC and uses the same non-Sonia voice.

Question

Is this a bug, a missing feature in iOS Talk's Gateway Default handling, or the current intended limitation of the app?

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority user-facing bug, regression, or broken workflow.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions