What Voice and TTS is for
Hermes can speak its replies and transcribe incoming voice messages in the CLI and on messaging platforms. Text-to-speech defaults to free Edge TTS, with options including ElevenLabs, OpenAI, MiniMax, Mistral, Google Gemini, xAI and DeepInfra, plus local engines such as Piper and KittenTTS. Speech-to-text defaults to local faster-whisper, with Groq and OpenAI Whisper among the hosted choices. You pick providers in config.yaml and add the matching API key. In chat, /voice commands toggle spoken output. This is the base for hands-free use and for voice notes on Telegram, Signal and WhatsApp.
What you need
- An API key for any hosted provider you choose (for example ELEVENLABS_API_KEY or GROQ_API_KEY); Edge TTS and local engines need none
- ffmpeg if you want Telegram voice bubbles from providers that do not output Opus natively
- faster-whisper installed for the default local transcription
Set it up
- 1
Add the chosen provider's API key to your environment, or install a local engine (Piper is available through
hermes toolsunder Text-to-Speech) - 2
Set tts.provider and/or stt.provider in
~/.hermes/config.yaml - 3
Install ffmpeg if needed, restart Hermes, then use
/voice onor/voice ttsin the CLI
Check it works
- CLI audio output appears in
~/.hermes/audio_cache/ - On Telegram, a round voice bubble means Opus delivery; a rectangular player usually means ffmpeg is missing
- Send a voice note on a messaging platform and confirm Hermes responds to its content
Limits and failure points
- An explicitly set stt.provider errors out rather than falling back to another engine
- Local engines load lazily, so the first spoken reply can be slow
- Plugin STT providers don't get picker rows in
hermes toolsyet, and command-based providers run with your user's permissions - The messaging overview Voice column means transcription and/or spoken replies, not necessarily live conversation. Its WhatsApp, Signal, BlueBubbles and LINE entries differ from their detailed pages; consult each platform note in the messaging directory.
- Local Faster-Whisper is unavailable on native Windows ARM64 and Intel macOS in the documented dependency matrix. Select an available provider explicitly.
Messaging setup
Primary sources
Spotted something wrong or out of date? Tell us on X at @HermesWatcher (opens in a new tab) and we will fix it.