hermes atlas
240·repos hermes·v0.20.5 ★ star this repo

allmodels-io/hermes-speech

Hermes Agent TTS and STT plugin for AllModels speech models and voices.

★ 0 langPython licenseMIT updated2026-08-25

Hermes Speech is a plugin for Hermes Agent 0.20+ that integrates text-to-speech and speech-to-text capabilities via the AllModels API. It enables conversational setup, voice search, and streaming audio using Hermes' standard provider interfaces and bundled libraries.

  • Requires Hermes Agent 0.20.0 or later
  • Uses bundled openai and httpx libraries with no extra dependencies
  • Supports conversational setup and voice management via agent commands
full readme from github

Hermes Speech — TTS and STT plugin for Hermes Agent

Hermes Speech — TTS & STT Plugin for Hermes Agent

Latest release MIT license Hermes Agent 0.20 or later No additional pip dependencies

Give Hermes Agent native text-to-speech (TTS), speech-to-text (STT), streaming audio, searchable voice previews, and conversational speech setup through AllModels. One AllModels API key connects Hermes to every supported speech provider, model, and voice in the live catalogue.

hermes-speech registers allmodels as a normal Hermes TTS and transcription provider. Hermes' existing /voice mode, sentence pipeline, messaging gateways, CLI, TUI, and desktop app continue to work normally. See the AllModels Hermes Agent guide for the user-facing walkthrough.

What it does

  • Native Hermes Agent TTS and STT — spoken replies and voice-message transcription use Hermes' standard provider interfaces.
  • Conversational setup — tell your agent to set up speech; it handles AllModels signup, verification, and compatible starting defaults.
  • Voice search and previews — find voices by name, description, language, gender, provider, or qualities and hear samples before selecting one.
  • Streaming-aware speech — supported models use streaming TTS; other models automatically retain Hermes' synchronous sentence pipeline.
  • Speech management — change models and voices, tune speed and transcription, check balance, create top-up links, test audio, and update the plugin.
  • No additional pip install — it uses the OpenAI and HTTP clients already bundled with Hermes.

Requirements

  • Hermes Agent 0.20.0 or later
  • No additional Python packages; the plugin uses Hermes' bundled openai and httpx libraries

Install

The easiest installation is conversational. Send this message to your Hermes agent:

install this plugin and set it up:
https://github.com/allmodels-io/hermes-speech

Or install and enable it from the terminal:

hermes plugins install allmodels-io/hermes-speech --enable

Hermes Desktop users can also use the one-click installation link. Hermes will show its normal review and confirmation screen before installing.

Restart a running Hermes CLI, desktop backend, or gateway after installation.

Quick start

Ask Hermes to configure AllModels speech:

Set up AllModels speech for me.

Then enable Hermes' normal voice pipeline:

/voice on
/voice tts

Try managing speech in normal conversation:

Find elon's voice and use it.

Conversational speech setup and management

With the plugin enabled, unqualified setup requests such as Set up speech, Configure TTS and STT, or Get voice working match the bundled skill by its normal Hermes skill description. Hermes then loads that skill with skill_view and follows the AllModels workflow. There is no per-message intent hook or fixed sentence list. Explicit requests for local, offline, Edge, Whisper, or another named provider remain with Hermes' built-in setup.

Hermes checks the current setup, asks for an email and the single-use code only when needed, and installs balanced TTS/STT defaults. By default it selects fish/s2-1-pro with Fish voice Elon Musk(Noise reduction) and soniox/stt-async-v5, with catalog-ordered fallbacks if a preferred entry is unavailable.

The setup tool never requires an API key as an argument and never returns one.

After setup, management is conversational too. Requests such as Find a warmer voice, Switch my STT model, Check my AllModels balance, or Create a $25 top-up link discover manage-allmodels-speech. Its agent-facing tool uses the same client, catalog, provider, and settings implementation as the /speech interface; it does not perform signup.

Voice search uses the AllModels voice catalogue API directly. Natural-language queries such as British female narrator are ranked server-side across voice names, descriptions, languages, categories, and labels, and can span all synchronous TTS models. The plugin does not download or cache the full catalogue; it retains only a bounded cache of compact metadata for voices returned by queries. A conversational preview_voice action validates and synthesizes an exact model/voice pair as a temporary MP3 without changing the configured TTS model, voice, speed, or format, then returns audio through Hermes' normal MEDIA: delivery.

Run /speech. If ALLMODELS_API_KEY is not configured, Hermes immediately starts AllModels email signup:

/speech signup you@example.com
/speech verify 123456

After verification, setup continues with the TTS author picker. Model setup is guided as author → model → voice for TTS and author → model for STT.

Useful direct commands:

/speech tts model
/speech tts voice search <name, language, gender, or provider>
/speech stt model
/speech balance
/speech topup 25
/speech test Hello from Hermes
/speech advanced speed 1.1
/speech advanced language ja
/speech advanced prompt Product names: Hermes, AllModels
/speech update check
/speech update

/voice remains the Hermes command for enabling or disabling voice mode. /speech configures which AllModels models and voice Hermes uses.

For conversational speech, enable Hermes' normal pipeline with /voice on followed by /voice tts. Hermes splits streamed replies into sentences, synthesizes each sentence through the registered AllModels provider, and plays them in order. When the selected catalog binding supports streaming, the plugin uses Hermes' bundled OpenAI client to yield raw PCM chunks through Hermes' streaming-TTS pipeline. Other models automatically retain the synchronous, sentence-pipelined path. Local CLI/TUI/desktop file output keeps Hermes' requested MP3; messaging gateways that require native voice bubbles use Ogg/Opus.

TTS, STT, and voice providers

Hermes Speech reads the live AllModels model and voice catalogues instead of shipping a fixed provider list. One integration can expose text-to-speech, speech-to-text, voice search, and streaming audio from supported providers such as ElevenLabs, Cartesia, Fish Audio, Soniox, and OpenAI-compatible speech APIs. Models and availability change over time; the AllModels model catalogue and voice catalogue are the source of truth.

Configuration

The plugin adds its bundled skills/ directory to the active profile's skills.external_dirs, which makes the workflow part of Hermes' normal skill index. The skills discover the plugin's setup and management tools directly or through Hermes' deferred tool search. Speech setup writes only its relevant keys in config.yaml. The API key is stored in the profile's protected .env as ALLMODELS_API_KEY; it is never displayed after signup.

The model catalogue refreshes automatically in the background. Voice discovery uses live text search with compact stale-cache fallback. There is no manual refresh command.

Hermes Speech checks the repository's latest stable GitHub Release in the background when /speech or an agent-facing plugin tool is used. The result is cached for 24 hours and an available release is mentioned at most weekly until installed. The checker sends no account, speech, model, voice, or installation identifier data. Disable automatic checks with:

plugins:
  hermes-speech:
    update_check: false

Automatic checks only notify. /speech update or an explicit conversational request such as Update Hermes Speech performs the update and then asks for a Hermes restart. Linked development installs, non-Git copies, unexpected Git remotes, and checkouts with local changes are never modified automatically.

Support

Development

Run the focused suite from the repository root with Hermes' Python environment:

python -m pytest -q tests
python -m ruff check .