Skip to content

Feature Request: Add Xiaomi MiMo-V2-TTS as a native TTS provider #52376

Description

@wang93wei

Summary

Add Xiaomi MiMo-V2-TTS as a first-class TTS provider alongside ElevenLabs, OpenAI, and Edge TTS.

Why

  • High-quality Chinese TTS with rich style/emotion control (dialects, role-playing, singing) — fills a gap in the current provider lineup for CJK users
  • Affordable pricing — currently in first-week free promo; competitive pricing going forward
  • OpenAI-compatible base URL (https://api.xiaomimimo.com/v1) — familiar integration pattern
  • Xiaomi already lists OpenClaw as an integration partner on their platform, so adding native TTS support strengthens the ecosystem connection

API Details

Request format

{
  "model": "mimo-v2-tts",
  "messages": [
    {"role": "user", "content": "Hello, MiMo"},
    {"role": "assistant", "content": "Yes, I had a sandwich."}
  ],
  "audio": {
    "format": "wav",
    "voice": "mimo_default"
  }
}

Response format

Standard OpenAI chat completion JSON with base64-encoded audio in choices[0].message.audio.data.

Preset voices

Voice Name voice param
MiMo Default mimo_default
MiMo Chinese Female default_zh
MiMo English Female default_en

Style control

Wrap text with style tags for expressive output:

  • Emotions: happy, sad, angry (开心/悲伤/生气)
  • Dialects: Northeastern, Sichuan, Cantonese, Taiwanese (东北话/四川话/粤语/台湾腔)
  • Speed: faster, slower (变快/变慢)
  • Roles: Sun Wukong, Lin Daiyu (孙悟空/林黛玉)
  • Singing (唱歌)

Fine-grained audio tags also supported for whispers, laughter, breathing, pauses, etc.

Suggested config

{
  "messages": {
    "tts": {
      "provider": "mimo",
      "mimo": {
        "apiKey": "mimo_api_key",
        "baseUrl": "https://api.xiaomimimo.com/v1",
        "voice": "default_zh",
        "format": "wav"
      }
    }
  }
}

Implementation note

MiMo TTS uses /v1/chat/completions (not /v1/audio/speech), so it cannot simply reuse the existing OpenAI TTS provider with a custom baseUrl. A dedicated provider is needed, or it could be supported once the plugin provider system (#41496) lands.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions