Hermes Agent Setup
Configure Hermes Agent to generate speech files through the Fish Audio OpenAI-compatible TTS endpoint.
Connect Fish Audio TTS to Hermes Agent
Hermes Agent can use a custom Base URL for its built-in OpenAI TTS provider. This connects the text_to_speech tool to Fish Audio without changing the language model that powers Hermes.
Do not add this endpoint under Hermes model providers. Fish Audio exposes speech generation at
/v1/audio/speech, not the/v1/chat/completionsendpoint required by a chat model.
Before you start
You need:
- A Fish Audio API key with API credits
- A Fish Audio Voice ID
- A recent Hermes Agent installation
Create a dedicated API key for Hermes so you can monitor or revoke it independently.
Add the API key
Add the key to ~/.hermes/.env:
VOICE_TOOLS_OPENAI_KEY=YOUR_FISH_AUDIO_API_KEYDo not put the key in config.yaml, shell history, screenshots, or a repository.
Configure Fish Audio TTS
Add or update the tts section in ~/.hermes/config.yaml:
tts:
provider: openai
speed: 1.0
openai:
base_url: 'https://fishaudio.org/v1'
model: fishaudio-s21pro-flash
voice: 00a1b221-6137-4b73-ad62-b0cbce134167
speed: 1.0The example Voice ID is a public system voice for connection testing. Replace it with your preferred Fish Audio Voice ID after the first successful request.
Enable and test the tool
Run hermes tools and make sure Voice & TTS is enabled. Start Hermes and ask:
Use the text_to_speech tool to create an MP3 file that says:
"Hello, this is a Fish Audio test."Hermes should save an MP3 file in its audio output directory and return a media path.
Messaging-channel limitation
This setup is verified for MP3 file generation. Hermes may request native Opus output when delivering Telegram or Discord voice bubbles. The Fish Audio OpenAI-compatible endpoint currently supports mp3, wav, and pcm, so native Opus voice-bubble delivery is not supported by this configuration. Use an MP3 attachment or a conversion layer for those channels.
Troubleshooting
- Hermes says no OpenAI audio key is configured: confirm
VOICE_TOOLS_OPENAI_KEYis available to the process that starts Hermes, then restart it. - Requests still reach OpenAI: confirm
tts.providerisopenaiandtts.openai.base_urlis exactlyhttps://fishaudio.org/v1. - Invalid voice or model: use Fish Audio IDs, not OpenAI voice names such as
alloyor model names such astts-1. - 401: replace the missing, invalid, or revoked API key.
- 402: add API credits before retrying.
- Opus request fails: request an MP3 file instead of a native messaging voice bubble.