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?
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 --versionopenclaw 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:
Expected Behavior
iOS Talk using Gateway Default should honor the Gateway
talk.provider: "microsoft"and speak withen-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?