# Voice and TTS: spoken replies and voice-note transcription

> Choose a text-to-speech and speech-to-text provider so Hermes can talk back and understand voice messages.

Canonical: https://hermeswatcher.com/tools/voice-tts  
Kind: Capability · Skills, plugins & MCP  
Last reviewed: Oct 29, 2026  
Basis: Explained from the official Hermes Agent docs and repository (Nous Research). Steps follow the linked official sources.

## What it 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

## Setting it up

1. Add the chosen provider's API key to your environment, or install a local engine (Piper is available through `hermes tools` under 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 on` or `/voice tts` in the CLI

## How to 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

- 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 tools` yet, 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

[All messaging platforms](https://hermeswatcher.com/messaging)
- [Setup guide](https://hermeswatcher.com/learn/messaging-gateway-explained)

## Sources

- [Hermes Agent docs: Voice & TTS](https://hermes-agent.nousresearch.com/docs/user-guide/features/tts)
- [Hermes Agent docs: Voice Mode](https://hermes-agent.nousresearch.com/docs/user-guide/features/voice-mode)

---

HermesWatcher is an independent guide. It is not affiliated with or endorsed by Nous Research. The [official Hermes Agent documentation](https://hermes-agent.nousresearch.com/docs) and [repository](https://github.com/NousResearch/hermes-agent) from Nous Research are the authority; each page here lists the official sources it was written from. If this site and the official docs disagree, trust the official docs. Index for agents: https://hermeswatcher.com/llms.txt
