hermes - 💡(How to fix) Fix Support ElevenLabs TTS speed configuration [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
NousResearch/hermes-agent#17789Fetched 2026-05-01 05:55:48
View on GitHub
Comments
1
Participants
2
Timeline
4
Reactions
0
Timeline (top)
labeled ×3commented ×1

Fix Action

Fix / Workaround

Motivation

Hermes already supports speed configuration for several TTS providers, for example global tts.speed and provider-specific speed values for Edge/OpenAI/MiniMax. ElevenLabs now supports this directly through voice_settings.speed, but Hermes currently does not pass that setting through, so ElevenLabs users need to patch tools/tts_tool.py locally to get faster/slower spoken responses.

Why this should be configurable by design

Discord/voice-mode users often need slightly faster replies, e.g. 1.15x to 1.25x, without switching away from ElevenLabs or maintaining a local patch.

Code Example

tts:
  speed: 1.2
  elevenlabs:
    speed: 1.2
RAW_BUFFERClick to expand / collapse

Feature description

Add first-class support for configuring ElevenLabs TTS speed in Hermes.

Motivation

Hermes already supports speed configuration for several TTS providers, for example global tts.speed and provider-specific speed values for Edge/OpenAI/MiniMax. ElevenLabs now supports this directly through voice_settings.speed, but Hermes currently does not pass that setting through, so ElevenLabs users need to patch tools/tts_tool.py locally to get faster/slower spoken responses.

Proposed solution

Allow either global fallback or provider-specific config:

tts:
  speed: 1.2
  elevenlabs:
    speed: 1.2

Implementation shape:

  • In _generate_elevenlabs(), resolve tts.elevenlabs.speed with fallback to global tts.speed.
  • If speed is not 1.0, pass VoiceSettings(speed=speed) via the voice_settings kwarg to client.text_to_speech.convert(...).
  • Provider-specific value should override the global value, matching the existing pattern for other TTS providers.

Why this should be configurable by design

Discord/voice-mode users often need slightly faster replies, e.g. 1.15x to 1.25x, without switching away from ElevenLabs or maintaining a local patch.

extent analysis

TL;DR

Implement a fallback mechanism in _generate_elevenlabs() to use the global tts.speed if tts.elevenlabs.speed is not specified, and pass the resolved speed to client.text_to_speech.convert() via voice_settings.

Guidance

  • Resolve tts.elevenlabs.speed with a fallback to global tts.speed in _generate_elevenlabs().
  • Pass the resolved speed to client.text_to_speech.convert() using VoiceSettings(speed=speed) if the speed is not 1.0.
  • Ensure provider-specific values override global values, following the existing pattern for other TTS providers.
  • Test the implementation with different configurations, such as tts.speed and tts.elevenlabs.speed, to verify the fallback mechanism works as expected.

Example

def _generate_elevenlabs():
    # Resolve tts.elevenlabs.speed with fallback to global tts.speed
    speed = config.get('tts.elevenlabs.speed', config.get('tts.speed', 1.0))
    # Pass the resolved speed to client.text_to_speech.convert() if not 1.0
    if speed != 1.0:
        voice_settings = VoiceSettings(speed=speed)
        client.text_to_speech.convert(..., voice_settings=voice_settings)

Notes

This implementation assumes that the config object has a get() method to retrieve values, and that VoiceSettings is a valid class with a speed parameter.

Recommendation

Apply the proposed workaround by implementing the fallback mechanism and passing the resolved speed to client.text_to_speech.convert(), as this allows for more flexible configuration of TTS speed for ElevenLabs users.

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

hermes - 💡(How to fix) Fix Support ElevenLabs TTS speed configuration [1 comments, 2 participants]