Runtime monkey-patch that changes tools.tts_tool.DEFAULT_PROVIDER from 'edge' to 'piper' at plugin load time. Zero fork needed. - plugin.yaml with requires_pip: piper-tts - __init__.py with _apply_piper_patch() + on_session_start hook - README with installation and safety notes
1.6 KiB
1.6 KiB
Hermes Piper Plugin
Makes Piper TTS the default provider instead of Microsoft Edge TTS.
Zero modifications to the Hermes repo. No fork required. The plugin
monkey-patches tools.tts_tool.DEFAULT_PROVIDER at plugin load time.
Why
- Piper is local, free, CPU-only — no API key, no cloud dependency
- Edge TTS requires internet access and ffmpeg for Telegram voice bubbles
- This eliminates the need to maintain a fork just to change the default
How it works
# At plugin load time, this single line runs:
tools.tts_tool.DEFAULT_PROVIDER = "piper"
That's it. DEFAULT_PROVIDER is read at call time, so changing it after
import is safe. The plugin also logs the effective default at session start.
Installation
# 1. Ensure piper-tts is installed
pip install piper-tts
# 2. Install the plugin from Gitea
hermes plugins install ssh://git@code.lazyworkhorse.net:2222/Hermes/hermes-piper-plugin.git
# 3. Restart gateways to load the plugin
Config
The plugin changes the default provider. You can still override per
session by setting tts.provider in ~/.hermes/config.yaml:
tts:
provider: elevenlabs # override per-session
voice: "Adam" # ElevenLabs voice
Requires
piper-ttsPython package (installed via pip)- Piper voice models (downloaded automatically on first use, ~50MB each)
Safety
- If
piper-ttsis not installed, the TTS tool returns an error asking the user to install it — no silent fallback to Edge - Removing the plugin restores the original Hermes default (Edge)
- No data loss risk. No changes to any file in the Hermes repo.