Fish Audio Docs
Integration GuidesThird-Party Integrations

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/completions endpoint 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_KEY

Do 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.0

The 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_KEY is available to the process that starts Hermes, then restart it.
  • Requests still reach OpenAI: confirm tts.provider is openai and tts.openai.base_url is exactly https://fishaudio.org/v1.
  • Invalid voice or model: use Fish Audio IDs, not OpenAI voice names such as alloy or model names such as tts-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.