openclaw - 💡(How to fix) Fix fix(tts/xiaomi): support per-call voice and model overrides [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#77792Fetched 2026-05-06 06:21:23
View on GitHub
Comments
1
Participants
2
Timeline
1
Reactions
2
Timeline (top)
commented ×1

The built-in Xiaomi MiMo TTS provider can generate speech successfully, but it does not currently support per-call voice / model overrides through the standard OpenClaw TTS CLI/Gateway path.

This makes it hard to use MiMo TTS for interactive language-learning / pronunciation practice, where users often need to switch voices such as Dean, Milo, Mia, etc., or test newer MiMo V2.5 TTS model variants.

Error Message

Error: TTS provider "xiaomi" does not support model or voice overrides.

Root Cause

The built-in Xiaomi MiMo TTS provider can generate speech successfully, but it does not currently support per-call voice / model overrides through the standard OpenClaw TTS CLI/Gateway path.

This makes it hard to use MiMo TTS for interactive language-learning / pronunciation practice, where users often need to switch voices such as Dean, Milo, Mia, etc., or test newer MiMo V2.5 TTS model variants.

Code Example

{
  "active": "xiaomi",
  "providers": [
    {
      "id": "xiaomi",
      "name": "Xiaomi MiMo",
      "configured": true,
      "selected": true,
      "models": ["mimo-v2.5-tts", "mimo-v2-tts"],
      "voices": ["mimo_default", "default_zh", "default_en", "Mia", "Chloe", "Milo", "Dean"]
    }
  ]
}

---

openclaw capability tts convert \
  --local \
  --channel telegram \
  --voice Dean \
  --text "This is Dean. American English practice." \
  --output /tmp/mimo-dean.mp3 \
  --json

---

Error: TTS provider "xiaomi" does not support model or voice overrides.
RAW_BUFFERClick to expand / collapse

Summary

The built-in Xiaomi MiMo TTS provider can generate speech successfully, but it does not currently support per-call voice / model overrides through the standard OpenClaw TTS CLI/Gateway path.

This makes it hard to use MiMo TTS for interactive language-learning / pronunciation practice, where users often need to switch voices such as Dean, Milo, Mia, etc., or test newer MiMo V2.5 TTS model variants.

Environment

  • OpenClaw: 2026.5.4 (325df3e)
  • Provider: built-in xiaomi speech provider
  • TTS endpoint: Xiaomi MiMo OpenAI-compatible chat-completions TTS API
  • Active provider: xiaomi

Configured provider list reports Xiaomi correctly:

{
  "active": "xiaomi",
  "providers": [
    {
      "id": "xiaomi",
      "name": "Xiaomi MiMo",
      "configured": true,
      "selected": true,
      "models": ["mimo-v2.5-tts", "mimo-v2-tts"],
      "voices": ["mimo_default", "default_zh", "default_en", "Mia", "Chloe", "Milo", "Dean"]
    }
  ]
}

Reproduction

Run a one-off TTS conversion with a Xiaomi voice override:

openclaw capability tts convert \
  --local \
  --channel telegram \
  --voice Dean \
  --text "This is Dean. American English practice." \
  --output /tmp/mimo-dean.mp3 \
  --json

Actual result:

Error: TTS provider "xiaomi" does not support model or voice overrides.

The same happens with --model xiaomi/mimo-v2.5-tts and with Gateway transport.

Expected behavior

The Xiaomi provider should support standard per-call overrides:

  • --voice Dean
  • --voice Milo
  • --model xiaomi/mimo-v2.5-tts
  • eventually newer model variants such as:
    • MiMo-V2.5-TTS
    • MiMo-V2.5-TTS-VoiceDesign
    • MiMo-V2.5-TTS-VoiceClone

The provider source already appears to parse directive-style override keys internally (voice, voiceId, model, xiaomi_model, etc.), and the Xiaomi API itself accepts the audio.voice field. Direct API calls using audio: { format: "mp3", voice: "Dean" } work.

Use case

Interactive English practice over Telegram:

  1. Assistant reads a sentence using Xiaomi MiMo TTS.
  2. User repeats it by voice message.
  3. Assistant provides pronunciation feedback.
  4. User may want a male/female voice, or specifically standard American English style guidance.

For this workflow, per-call voice switching is important. Editing global config for each voice is too heavy and not suitable for chat-based practice.

Suggested fix

Please add Xiaomi support for explicit TTS overrides in the standard OpenClaw TTS path, for example by implementing / exposing the provider override resolver so CLI/Gateway calls can pass through:

  • voice / voiceId → Xiaomi audio.voice
  • model / modelId → Xiaomi request model
  • optional style → user style message, if supported by the current runtime path

Also consider updating the built-in Xiaomi TTS model catalog and docs to clarify:

  • supported voice ids
  • whether voices imply US/UK accent or require style prompting
  • support status for VoiceDesign and VoiceClone

Related

  • #72927 appears related to MiMo V2.5 TTS VoiceDesign support.
  • This issue is specifically about per-call voice / model overrides for the existing Xiaomi TTS provider.

extent analysis

TL;DR

Implementing support for explicit TTS overrides in the standard OpenClaw TTS path for the Xiaomi provider is likely to fix the issue.

Guidance

  • Review the Xiaomi provider source code to understand how it currently handles voice and model overrides internally.
  • Modify the provider to expose an override resolver that can pass through voice and model parameters from CLI/Gateway calls to the Xiaomi API.
  • Update the built-in Xiaomi TTS model catalog and documentation to clarify supported voice IDs, accent implications, and support status for VoiceDesign and VoiceClone.
  • Test the changes with different voice and model overrides to ensure they work as expected.

Example

No code snippet is provided as the issue does not contain sufficient information about the provider's internal implementation.

Notes

The fix may require updates to the OpenClaw TTS CLI/Gateway to properly handle and pass through the override parameters to the Xiaomi provider.

Recommendation

Apply a workaround by modifying the Xiaomi provider to support explicit TTS overrides, as this is a more targeted solution than upgrading to a potentially non-existent fixed version.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The Xiaomi provider should support standard per-call overrides:

  • --voice Dean
  • --voice Milo
  • --model xiaomi/mimo-v2.5-tts
  • eventually newer model variants such as:
    • MiMo-V2.5-TTS
    • MiMo-V2.5-TTS-VoiceDesign
    • MiMo-V2.5-TTS-VoiceClone

The provider source already appears to parse directive-style override keys internally (voice, voiceId, model, xiaomi_model, etc.), and the Xiaomi API itself accepts the audio.voice field. Direct API calls using audio: { format: "mp3", voice: "Dean" } work.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix fix(tts/xiaomi): support per-call voice and model overrides [1 comments, 2 participants]