All plugins

voicestudio-tts

VoiceStudio TTS provider for Hermes: registers a TTS provider so replies can be read aloud, or auto-spoken, in the user's own voices from the local VoiceStudio app, per profile. Settings are read through ctx.get_config, voices through GET /profiles, audio through POST /generate. /voicestudio refresh stores the voice list in the plugin's own state; it copies the list into the plugin's plugin.yaml only when the user turns on sync_dropdown, which is off by default and is what turns the voice setting into a dropdown. Disclosure - sends the reply text, the voice id and the engine name when one is configured to the local server (default http://127.0.0.1:3900, plain HTTP); no credentials, no telemetry, no other network calls, no declared dependency (the YAML write uses the module Hermes ships), no self-update of code.

EternalShade3DVoicev1.2.0Updated 1 hour ago

About

VoiceStudio TTS provider for Hermes: registers a TTS provider so replies can be read aloud, or auto-spoken, in the user's own voices from the local VoiceStudio app, per profile. Settings are read through ctx.get_config, voices through GET /profiles, audio through POST /generate. /voicestudio refresh stores the voice list in the plugin's own state; it copies the list into the plugin's plugin.yaml only when the user turns on sync_dropdown, which is off by default and is what turns the voice setting into a dropdown. Disclosure - sends the reply text, the voice id and the engine name when one is configured to the local server (default http://127.0.0.1:3900, plain HTTP); no credentials, no telemetry, no other network calls, no declared dependency (the YAML write uses the module Hermes ships), no self-update of code.

VoiceStudio Hermes plugin




VoiceStudio Hermes plugin banner

VoiceStudio is a local text-to-speech app. This plugin lets Hermes Agent speak its replies using your own voices from VoiceStudio.

Connect VoiceStudio to your Hermes Agent to enable realistic, custom local text-to-speech for your bot responses without scripts or manual voice IDs.

Why voicestudio-tts? The plain voicestudio plugin id belongs to a different project, a tool client for the same VoiceStudio app. This one registers a Hermes TTS provider, so it ships under its own id and the two can live side by side.

  • Voice by name: Pick a voice you saved in VoiceStudio by name. Run /voicestudio to list them and /voicestudio <name> to set one. /voicestudio refresh saves names in plugin state by default and leaves the installed folder untouched. Set sync_dropdown: true and refresh to also add a clickable Settings list.
  • Per-Profile Setup: Give different Hermes profiles distinct voices.
  • Zero Scripting Required: Fully integrated UI configuration and commands.

How to install the plugin in Hermes Desktop

How to install the VoiceStudio plugin in Hermes Desktop

Click above to watch the setup video.

UI Overview

VoiceStudio plugin settings panel in Hermes Desktop


Prerequisites

Ensure the following before installation:

  • [x] VoiceStudio is running locally on your machine.
  • [x] You have at least one custom voice saved in VoiceStudio.
  • [x] Hermes Agent v0.21 or newer.

Note: The plugin queries VoiceStudio live over HTTP (127.0.0.1:3900). If VoiceStudio isn't running, available voices cannot be fetched.


Installation

Choose your preferred installation method:

Option A: Hermes Desktop (Recommended)

  1. Open Hermes Desktop.
  2. Navigate to Capabilities → Plugins → Install from Git.
  3. Paste repo URL: https://github.com/EternalShade3D/voicestudio-hermes-plugin.git
  4. Select your target profile and confirm installation.
  5. Make it the active provider: Settings → Voice → Text to speech → Text-To-Speech Provider → VoiceStudio.
  6. Start VoiceStudio, then in any chat run /voicestudio refresh to save your voices to plugin state.
  7. Pick one with /voicestudio <name>. For a GUI dropdown, turn on sync_dropdown in plugin settings and run /voicestudio refresh again.

Plugin settings hold the advanced options (server URL, engine, timeout, cache retention). The provider picker lives in the Voice settings, not in the plugin panel.


Option B: Command Line (CLI)

1. Clone into Plugins Folder

Default profile path is ~/.hermes/plugins/. For a custom profile, target ~/.hermes/profiles/<profile_name>/plugins/.

  • Linux / macOS:

    git clone https://github.com/EternalShade3D/voicestudio-hermes-plugin.git ~/.hermes/plugins/voicestudio-tts
    
  • Windows (PowerShell):

    git clone https://github.com/EternalShade3D/voicestudio-hermes-plugin.git "$env:USERPROFILE\.hermes\plugins\voicestudio-tts"
    
  • Manual (No Git): Download the .zip archive, extract contents to a folder named voicestudio-tts, and place it inside your plugins/ directory.

2. Enable & Select Provider

hermes plugins enable voicestudio-tts
hermes config set tts.provider voicestudio-tts

Configuration & Usage

  1. Ensure VoiceStudio is open.
  2. In Hermes, fetch your local voice library:
    /voicestudio refresh
    
  3. Select your voice:
    • Via GUI: The voice field is plain text by default. To populate a dropdown, set sync_dropdown: true in plugin settings and run /voicestudio refresh.
    • Via Command: run /voicestudio <voice_name> in chat.

That's it. Your bot now speaks with the voice you picked.

Speech Options

  • On-Demand: Click Read aloud under any specific bot response.
  • Continuous: Enable Read replies aloud in the desktop app settings to auto-speak every response.

Spoken audio is saved in the cache of the profile running the bot, ~/.hermes/profiles/<profile>/cache/audio, or $HERMES_HOME/cache/audio when HERMES_HOME is set. Each bot keeps its own cache, so two bots do not share audio.

Retention defaults to 100 MB per profile: when the cache grows past that, the oldest clips are deleted first. Change it with tts.keep_generated_audio_max_mb, or turn saving off entirely with tts.keep_generated_audio: false (audio is then deleted right after it plays).


Commands Reference

| Command | Description |
| :--- | :--- |
| /voicestudio | Displays current voice settings and available local voices. |
| /voicestudio <name> | Quickly switches the active voice profile by name. |
| /voicestudio refresh | Re-scans VoiceStudio and saves the names. With sync_dropdown: true it also writes them into plugin.yaml so the Settings voice list updates. Run it when you add a voice in the app. |


Settings Reference

| Key | Default Value | Description |
| :--- | :--- | :--- |
| base_url | http://127.0.0.1:3900 | Local API server endpoint for VoiceStudio. |
| voice | (User choice) | Voice name or ID. Plain text by default. With sync_dropdown: true, /voicestudio refresh mirrors names into plugin.yaml and the field becomes a dropdown. |
| engine | (Empty) | Specific TTS engine override if required by your setup. |
| timeout_s | 180 | Audio generation request timeout in seconds. |
| warm_path / release_path | (Empty) | Optional hooks triggered before/after read-aloud requests. |
| sync_dropdown | false | On: after /voicestudio refresh, voices appear in the Settings list. The plugin writes choices into its own plugin.yaml, so the installed folder shows as changed. Off (default): refresh stores names in plugin state only; use /voicestudio <name>. |
| debug | false | Enables verbose debug logging for voice resolution. |

Audio cache (Hermes tts. settings)

| Key | Default | Description |
| :--- | :--- | :--- |
| keep_generated_audio | true | Keep read-aloud audio in the profile cache instead of deleting it right after playback. |
| keep_generated_audio_max_mb | 100 | Total cache size per profile. Oldest clips are pruned first. |


[!WARNING]
If you previously configured an older command-bridge setup, remove the legacy override from your config.yaml:

hermes config unset tts.providers.voicestudio

License

This project is licensed under the MIT License.

README from the reviewed commit 40ee466; it updates when the author re-pins.

Developer Mode

Explore built-in Hermes toolsets and actions.

HermesAgent

Developer?

Create a Hermes extension for Desktop or agent workflows.

Developer Section