Skip to content

TTS OpenAI provider: MP3 responseFormat not voice-compatible for Telegram, unlike Edge TTS #80317

Description

@vokasug

Problem

The OpenAI-compatible TTS provider (used for local TTS servers like Piper/Kokoro) treats responseFormat: "mp3" as not voice-compatible for Telegram voice notes. However, Edge TTS (Microsoft provider) outputs MP3 by default and works fine as Telegram voice messages.

Current behavior

OpenAI provider (speech-provider-CzRYCn2R.js):

voiceCompatible: req.target === "voice-note" && responseFormat === "opus"

When configured with responseFormat: "mp3" for Telegram:

  • voiceCompatible = false
  • OpenClaw falls back to sendAudio instead of sendVoice
  • Telegram displays it as a file attachment with filename, no voice waveform UI

Edge TTS provider (speech-provider-cIDKP9Bn.js):

  • Outputs audio-24khz-48kbitrate-mono-mp3
  • isVoiceCompatibleAudio() checks file extension (.mp3 is in whitelist)
  • Telegram sendVoice accepts MP3 and converts server-side
  • Voice note UI (circle + waveform) works correctly

Expected behavior

MP3 from OpenAI-compatible local TTS should behave identically to Edge TTS:

  • Pass voiceCompatible check
  • Route through sendVoice
  • Show native Telegram voice message UI

Workaround

Manually patching the source:

// speech-provider-CzRYCn2R.js line ~189
voiceCompatible: req.target === "voice-note" && (responseFormat === "opus" || responseFormat === "mp3")

Related

Environment

  • OpenClaw version: 2026.5.6
  • Channel: Telegram
  • Local TTS: Piper TTS (OpenAI-compatible API)
  • Server response formats tested: mp3, opus, ogg

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions