openclaw - ✅(Solved) Fix MiniMax TTS provider: voiceCompatible should be true for Telegram voice messages [1 pull requests, 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#63540Fetched 2026-04-10 03:42:51
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
0
Timeline (top)
commented ×1cross-referenced ×1

Root Cause

In dist/speech-provider-BZ3CwsN9.js, the MiniMax speech provider returns:

return {
    audioBuffer: await minimaxTTS({ ... }),
    outputFormat: "mp3",
    fileExtension: ".mp3",
    voiceCompatible: false  // ← should be true
};

The voiceCompatible: false flag prevents resolveTelegramVoiceSend() from using sendVoice, even though MP3 is explicitly listed in TELEGRAM_VOICE_MIME_TYPES and TELEGRAM_VOICE_AUDIO_EXTENSIONS.

Fix Action

Fixed

PR fix notes

PR #63582: minimax: gate voiceCompatible on req.target for TTS speech provider

Description (problem / solution / changelog)

Summary

buildMinimaxSpeechProvider() hardcoded voiceCompatible: false, preventing Telegram from treating MiniMax TTS output as a voice message.

Fixed by gating voiceCompatible on req.target === "voice-note", matching the pattern used by ElevenLabs and OpenAI. This ensures MiniMax TTS only signals voice compatibility when the TTS pipeline has already determined the channel supports voice messages (Telegram, WhatsApp, Matrix, Feishu), and returns false for audio-file targets such as Discord where MP3 is not accepted for voice delivery.

Updated speech-provider.test.ts to assert false for the audio-file target and add a voice-note case asserting true.

Testing

  • pnpm test extensions/minimax/speech-provider.test.ts -- 28 tests pass

Closes #63540


Made with Copilot | fully reviewed by human

Changed files

  • extensions/minimax/speech-provider.test.ts (modified, +21/-0)
  • extensions/minimax/speech-provider.ts (modified, +1/-1)

Code Example

return {
    audioBuffer: await minimaxTTS({ ... }),
    outputFormat: "mp3",
    fileExtension: ".mp3",
    voiceCompatible: false  // ← should be true
};
RAW_BUFFERClick to expand / collapse

Bug Description

MiniMax TTS speech provider hardcodes voiceCompatible: false in its synthesis result, causing Telegram to send TTS audio as an .mp3 file attachment (via sendAudio) instead of a voice message (via sendVoice).

Root Cause

In dist/speech-provider-BZ3CwsN9.js, the MiniMax speech provider returns:

return {
    audioBuffer: await minimaxTTS({ ... }),
    outputFormat: "mp3",
    fileExtension: ".mp3",
    voiceCompatible: false  // ← should be true
};

The voiceCompatible: false flag prevents resolveTelegramVoiceSend() from using sendVoice, even though MP3 is explicitly listed in TELEGRAM_VOICE_MIME_TYPES and TELEGRAM_VOICE_AUDIO_EXTENSIONS.

Expected Behavior

MiniMax TTS output (MP3) should be sent as a Telegram voice message, just like ElevenLabs TTS output.

Steps to Reproduce

  1. Configure MiniMax as the primary TTS provider (messages.tts.provider: "minimax")
  2. Set messages.tts.auto: "tagged"
  3. Have the agent reply with [[tts:...]][[tts:text]]...[[/tts:text]] tags
  4. Observe: Telegram receives an .mp3 file attachment instead of a voice message

Environment

  • OpenClaw version: 2026.4.8
  • Channel: Telegram
  • OS: macOS 15.7.3 (arm64)

Additional Context

The TELEGRAM_VOICE_AUDIO_EXTENSIONS set already includes .mp3, and TELEGRAM_VOICE_MIME_TYPES includes audio/mpeg and audio/mp3. The only thing blocking voice message delivery is the hardcoded voiceCompatible: false in the MiniMax provider.

A simple fix would be changing voiceCompatible: false to voiceCompatible: true in buildMinimaxSpeechProvider.

extent analysis

TL;DR

Change the voiceCompatible flag to true in the MiniMax speech provider to enable sending TTS output as a Telegram voice message.

Guidance

  • Identify the buildMinimaxSpeechProvider function and update the voiceCompatible flag to true.
  • Verify that the TELEGRAM_VOICE_AUDIO_EXTENSIONS and TELEGRAM_VOICE_MIME_TYPES sets include the necessary values for MP3 files (.mp3, audio/mpeg, and audio/mp3).
  • Test the updated provider by reproducing the steps to reproduce and checking if the TTS output is sent as a voice message.
  • Ensure that the OpenClaw version and environment configuration are compatible with the updated provider.

Example

return {
    audioBuffer: await minimaxTTS({ ... }),
    outputFormat: "mp3",
    fileExtension: ".mp3",
    voiceCompatible: true  // Updated flag
};

Notes

This fix assumes that the MiniMax speech provider is correctly configured and that the TELEGRAM_VOICE_AUDIO_EXTENSIONS and TELEGRAM_VOICE_MIME_TYPES sets are properly defined. If issues persist, further investigation into the provider's implementation and environment configuration may be necessary.

Recommendation

Apply the workaround by updating the voiceCompatible flag to true in the MiniMax speech provider, as this is a simple and targeted fix that addresses the root cause of the issue.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING