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
- 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.
Next step: read #28504, then check whether your report is one of the 2 still open.
Read #28504Pick up a Lab taskThese 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
Open PRs2
Fixes on record
-
#28504 fix(gateway): mark final voice reply as notify-worthy so Telegram delivers it audibly
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
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)
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.00means 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