TTS audio format and voice bubble delivery issues

NousResearch/hermes-agent · cluster 4248 · agent

Data as of

4 open items. Fix merged in #28504. Check it covers your case.

The short answer

2open issues
2open PRs
39items grouped
Known?
Yes. 39 related items grouped here, 12 issues already closed.
Fix event
A fix was merged to main in PR #28504. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this partially resolved, deciding PR #73508. That is separate from the fix event.
Still open
2 issues and 2 PRs.

These issues and fixes concern TTS output being delivered in wrong audio formats (MP3 instead of OGG/Opus) across Telegram, Matrix, Feishu, and DingTalk, causing broken voice bubbles or silent fallbacks. Related work involves transcoding pipelines, flood-control gaps, and notification delivery for voice replies.

Open issues2

  • Issue#62079[Bug]: Telegram MEDIA document upload failures fall through to generic attachment warning without retry/recovery
  • Issue#64137[Bug]: send_document (Telegram) has no flood-control retry, silently degrades to text apology

Open PRs2

  • PR#57184fix(tts): transcode openai voice output to opus
  • PR#64145fix(telegram): retry native media sends on flood control instead of giving up

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #28504 fix(gateway): mark final voice reply as notify-worthy so Telegram delivers it audibly

    merged to main

    files: gateway/run.py, tests/gateway/test_send_voice_reply_notify.py, tests/gateway/test_voice_command.py

  • #73072 fix(tts): class-level .ogg container repair + multi-platform Opus voice detection

    merged to main

    files: tests/tools/test_tts_container_repair.py, tools/tts_tool.py

  • #73508 fix(gateway): platform-aware auto-TTS voice delivery (opus platforms, streamed/global gap, captions)

    merged to main

    files: contributors/emails/[redacted:email], contributors/emails/[redacted:email], contributors/emails/[redacted:email], gateway/platforms/base.py, gateway/run.py, plugins/platforms/feishu/adapter.py, plugins/platforms/matrix/adapter.py, plugins/platforms/telegram/adapter.py, tests/gateway/test_auto_voice_reply_format.py, tests/gateway/test_base_auto_tts_output_format.py, tests/gateway/test_matrix_voice.py, tests/gateway/test_telegram_voice_caption_markdown.py, tests/gateway/test_voice_command.py, tests/tools/test_tts_opus_routing.py, tools/tts_tool.py

20 PRs closed without merging

From the close comments: duplicate 6 · done elsewhere 5 · merged via another change 3 · closed without comment 1 · stale or abandoned 1 · superseded by another PR 1 · won't fix / by design 1 · other 2

  • #14900 fix: send voice replies as Opus/OGG on Matrix · done elsewhere
  • #20182 fix(gateway): use OGG for Telegram auto TTS · merged via another change → #41644
  • #28107 fix(gateway): mark final voice reply as notify-worthy so Telegram delivers it audibly · merged via another change → #28504
  • #36686 fix(tts): preserve Telegram Opus output for native providers · done elsewhere → f440a44, #73508, #62040
  • #45555 fix(tts): include feishu in want_opus platforms · closed without comment
Show 15 more
  • #45637 fix(tts): include feishu in want_opus guard for native voice delivery · duplicate → #45555
  • #45712 fix(tts): extend opus conversion to Feishu for voice bubbles (#45557) · duplicate → #45555, #45557, #45637
  • #45761 fix(tts): include feishu in want_opus platforms · done elsewhere → f440a44, #73508, #62040
  • #54597 fix(tools): transcode to OGG/Opus for OpenAI-compatible TTS backends without opus (#54589) · duplicate → #54589, #37337, #54488
  • #55278 fix(tts): synthesize mp3 then transcode to opus for .ogg targets · won't fix / by design → #54597
  • #56777 fix(tts): transcode OpenAI-compatible speech to Opus for .ogg targets (#54589) · other → #54589, #54597, #55278
  • #56873 fix(tts): transcode OpenAI-compatible TTS to OGG/Opus when backend lacks opus · superseded by another PR → #73072
  • #57071 fix(gateway): pass explicit .ogg output_path for Telegram auto-TTS · done elsewhere → f440a44, #73508, #62040
  • #57084 fix(gateway): request OGG for Telegram auto TTS · stale or abandoned
  • #57222 fix(tts): transcode xAI ogg requests to Opus · other → #73072
  • #57250 fix(tts): transcode xai ogg output paths · duplicate → #57222
  • #57518 fix(tts): transcode xAI TTS output to Opus when .ogg requested (#57213) · duplicate → #57222, #57250
  • #58716 fix(gateway): use OGG/Opus for Matrix voice replies · duplicate → #14900
  • #60580 fix(gateway/streaming): deliver [[audio_as_voice]] via send_voice during streaming · done elsewhere → f589028
  • #68063 fix: Matrix voice as Ogg/Opus — direct TTS path + non-blocking metadata (completes #54488) · merged via another change → f440a44, #73508
Closed issues · 12
  • Closed#4248[Bug]: Telegram send_voice falls back to text "🔊 Audio: /path" instead of sending voice bubble
  • Closed#7564[Bug][DingTalk] Media upload failure silently degrades to placeholder text
  • Closed#14841Matrix voice replies sent as mp3 instead of ogg/opus — render as broken attachments
  • Closed#26355Telegram: TTS voice bubbles not delivered despite valid OGG Opus +
  • Closed#27970[Bug]: Telegram auto voice replies can fall back to MP3 attachments and silent final notifications
  • Closed#36685Telegram gateway auto-replies force MP3 for Opus-capable TTS providers
  • Closed#45557minimax TTS on Feishu sends mp3 as file attachment instead of voice bubble
  • Closed#54589[Bug]: OpenAI-compatible TTS backends without opus support fail on voice bubbles (_generate_openai_tts hardcodes response_format="opus" for .ogg)
  • Closed#57049Base platform adapter's auto-TTS voice reply defaults to .mp3 on Telegram (no native voice bubble) — session-platform detection unavailable in that code path
  • Closed#57213[Bug]: xAI TTS also writes MP3 bytes into .ogg voice files — Telegram voice bubbles broken (same class as #57048/#54589, xai provider not covered by existing fixes)
  • Closed#58715[Bug]: Matrix TTS voice replies sent as non-Opus audio — Element X voice bubble renders but won't play
  • Closed#60556[Bug]: Telegram streaming + [[audio_as_voice]] causes TTS to render as plain audio attachment, not voice bubble
How this cluster was grouped
  • Link evidence (partly structural links): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
  • Members outside that structural core may belong to a different underlying problem.
  • Pairwise link density 0.05: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
agent
Merged PRs
#28504, #73072, #73508
Closed issues
12
Attempts
20 PRs closed without merging
Fix link checked
28 Jul 2026

For your agent

The same facts, typed.