Introduction
Choosing a TTS voice is not a cosmetic afterthought. Your agent already has a personality defined in SOUL.md: a way of writing, a tone, a set of values. The spoken voice is the sound of that personality. When the two disagree, the result is unsettling. When they align, the agent feels coherent.
Key Concepts
- SOUL.md personality: The agent's written identity (tone, values, style), the subject of the Hermes personality course.
- Voice persona: The combination of which TTS engine speaks and which named voice it uses.
- Congruence: The match between how an agent writes and how it sounds.
- Named voice: A specific voice within a provider, such as
en-US-AriaNeuralin Edge TTS.
Real World Context
A team configures their Hermes agent with a SOUL.md that is terse, dry, and precise. Then they pick a bubbly, theatrical TTS voice. Every interaction now feels slightly wrong: the words are clipped and exact, the delivery is bouncy. The mismatch is small per sentence but exhausting over a session. Swapping to a calm, even voice makes the agent feel like one consistent entity again. Nothing about the text changed; only the sound did.
Deep Dive
Text personality and voice are two layers of the same identity, and they should be designed together.
SOUL.md sets the content and tone of what the agent says: whether it is formal or casual, terse or expansive, warm or neutral. The TTS voice sets the delivery: pitch, pacing, energy, accent, warmth of timbre. A listener experiences both at once and forms a single impression. If the layers conflict, the impression is incoherent.
So the practical move is to choose the voice from the personality, not independently:
- A terse, no-nonsense SOUL.md pairs with a steady, measured voice. A dramatic voice fights the text.
- A warm, encouraging SOUL.md pairs with a softer, friendlier voice. A flat monotone undercuts the words.
- A playful persona can carry a more characterful voice, because here the energy of the delivery matches the energy of the text.
Most providers offer many named voices (Edge TTS alone has a large catalog), and the engine matters too: a premium provider like ElevenLabs gives more expressive range, which is worth more for a personality that leans on warmth or character, and worth less for a flat, factual persona where any clear voice will do.
There is also a per-context dimension. Hermes lets you switch personalities at runtime through /personality presets, and you can likewise change the TTS voice by editing the tts block in config.yaml. A focused work session and a casual brainstorming session might reasonably sound different. The principle holds either way: whatever the agent sounds like should match what it is saying.
The lasting idea: voice is the audio half of personality. Design it deliberately, in congruence with SOUL.md, and the agent feels like a single coherent thing rather than a text personality awkwardly dubbed by an unrelated voice.
Common Pitfalls
- Choosing a voice for novelty: A striking voice that clashes with the SOUL.md tone is fatiguing over a long session. Pick for congruence, not for first impression.
- Treating voice and SOUL.md as separate concerns: They are two layers of one identity. A change to the personality's tone should prompt a second look at the voice.
Best Practices
- Derive the voice from the personality: Read your SOUL.md tone first, then choose a voice whose pacing and energy match it.
- Match engine expressiveness to need: Use a premium expressive engine when the persona depends on warmth or character; a free voice is fine for a neutral, factual agent.
Summary
- A TTS voice is the audible delivery of the personality SOUL.md defines in text.
- Congruence between written tone and spoken delivery makes an agent feel coherent.
- Choose the voice from the personality: terse text wants a steady voice, warm text wants a softer one.
- Premium engines add expressive range, which matters more for character-driven personas.
Code Examples
# Pairing voice to a terse, precise SOUL.md personality:
tts:
provider: "edge"
edge:
voice: "en-US-AriaNeural" # a steady, even voice that matches dry text
# A bubbly, theatrical voice here would fight the personality:
# the words are clipped and exact, the delivery would feel bouncy.