Skip to content

feat(gateway): add configurable STT transcription echo - #22123

Closed
Fr4nzz wants to merge 1 commit into
NousResearch:mainfrom
Fr4nzz:feat/stt-echo-transcription
Closed

feat(gateway): add configurable STT transcription echo#22123
Fr4nzz wants to merge 1 commit into
NousResearch:mainfrom
Fr4nzz:feat/stt-echo-transcription

Conversation

@Fr4nzz

@Fr4nzz Fr4nzz commented May 8, 2026

Copy link
Copy Markdown

What

Adds an echo_transcription option to the STT config. When enabled, successful voice transcriptions are sent back to the user as a reply to the original voice message.

Why

Users often want to see what the AI heard before it responds, especially when verifying transcription accuracy or when the voice message is long. This matches behavior seen in other Telegram bots and improves UX.

Changes

  • gateway/config.py: Added echo_transcription field to GatewayConfig with from_dict loading
  • gateway/run.py:
    • Modified _enrich_message_with_transcription to return (message_text, transcripts) tuple
    • Added echo logic in _prepare_inbound_message that replies to the original voice message with the transcription
  • hermes_cli/config.py: Added echo_transcription: false to default STT config

Format

The echo appears as a reply to the voice message:

🎤 "Hola, probando 1 2 3."

How to test

  1. Set stt.echo_transcription: true in ~/.hermes/config.yaml
  2. Restart gateway
  3. Send a voice message — the transcription should appear as a reply before the AI response

Platforms tested

  • Linux (Ubuntu)
  • Telegram

Adds echo_transcription option to the STT config. When enabled, successful
transcriptions are sent back to the user as a reply to the original voice
message, using the format: 🎤 "transcribed text"

- GatewayConfig: add echo_transcription field with from_dict loading
- gateway/run.py: return transcripts from _enrich_message_with_transcription
  and add echo logic in _prepare_inbound_message
- hermes_cli/config.py: add echo_transcription to default config
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/gateway Gateway runner, session dispatch, delivery tool/tts Text-to-speech and transcription duplicate This issue or pull request already exists labels May 8, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

Duplicate of #13727 which implements the same feature (opt-in STT transcript echo) with stt.send_transcription config key. See also feature request #9656.

@teknium1

Copy link
Copy Markdown
Contributor

This is an automated hermes-sweeper review: the configurable STT transcript echo requested here is already implemented on current main.

  • hermes_cli/config.py:2125-2131 defines the canonical stt.echo_transcripts setting; false keeps STT available to the agent while suppressing the visible echo.
  • gateway/run.py:10435-10456 transcribes inbound voice messages and emits each 🎙️ transcript only when that setting is enabled.
  • gateway/run.py:15203-15224, 19180-19197, and 19602-19618 apply the same gate to queued and active-run voice-message paths.
  • tests/gateway/test_stt_transcript_echo_config.py:16-70 covers disabling the setting and verifies all echo send sites are gated.
  • The implementation shipped in bfc5262725a3a12b0f1c6d4b9e051d27ef4ceede (feat: add STT transcript echo toggle), contained in v2026.7.7.

The duplicate discussion linking #13727 and #9656 was useful context. Thanks for the contribution.

@teknium1 teknium1 closed this Jul 13, 2026
@teknium1 teknium1 added the sweeper:implemented-on-main Sweeper: behavior already present on current main label Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/gateway Gateway runner, session dispatch, delivery duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have sweeper:implemented-on-main Sweeper: behavior already present on current main tool/tts Text-to-speech and transcription type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants