LibreChat Setup Guide
Configure Kitta AI as an OpenAI-compatible server-side TTS provider in librechat.yaml and play replies with a cloned voice.
Connect Kitta AI TTS to LibreChat
LibreChat can configure server-side TTS independently in librechat.yaml. Its speech provider is separate from its chat-model providers, so Kitta AI should not be added as a chat endpoint.
Before you start
- Create a key dedicated to this instance in API management.
- Open your cloned voice and copy its Voice ID.
- Confirm that your API credit balance is sufficient.
For a quick test, use:
00a1b221-6137-4b73-ad62-b0cbce134167Configure the environment variable
Add this variable to LibreChat's .env file:
FISH_AUDIO_API_KEY=YOUR_FISH_AUDIO_API_KEYDo not commit the real key directly in librechat.yaml or your Git repository.
Configure librechat.yaml
Merge this configuration into the existing speech object and replace the test voice with your own Voice ID:
speech:
tts:
openai:
url: 'https://kittaai.com/v1/audio/speech'
apiKey: '${FISH_AUDIO_API_KEY}'
model: 'fishaudio-s21pro-flash'
voices:
- '00a1b221-6137-4b73-ad62-b0cbce134167'
speechTab:
textToSpeech:
engineTTS: 'external'
voice: '00a1b221-6137-4b73-ad62-b0cbce134167'
automaticPlayback: falseurl is the complete request URL
LibreChat requests speech.tts.openai.url directly, so it must include /audio/speech. This
differs from apps that ask for only a Base URL.
To offer multiple voices, add every Voice ID to the voices array. LibreChat users can select among the voices allowed by the administrator.
Restart LibreChat after saving the configuration:
docker compose restartOpen LibreChat's speech settings, select External TTS and the configured Voice ID, and play a short response as a test.
Troubleshooting
- External TTS is missing: set
speechTab.textToSpeech.engineTTStoexternaland restart LibreChat. - The voice is missing: the Voice ID must also appear in the
voicesarray. Reload the configuration after editing it. - 404:
urlmust be the completehttps://kittaai.com/v1/audio/speechURL. - 401: verify that the container receives
FISH_AUDIO_API_KEYand that the key is valid. - 402: add API credits before trying again.
- 400: do not use
tts-1. Set the model tofishaudio-s21pro-flashand use a valid Voice ID. - Chat requests fail: do not put the Kitta AI URL in a LibreChat chat Custom Endpoint. It is a TTS-only endpoint in this setup.