Install
openclaw skills install local-openedai-ttsConfigure an OpenClaw instance to use a local OpenAI-compatible TTS backend (for example openedai-speech) with cloned voices. Use when users ask to wire loca...
openclaw skills install local-openedai-ttsConfigure OpenClaw to send TTS requests to a local OpenAI-compatible endpoint, then verify end-to-end delivery.
openclaw config get.Use CLI config commands only.
openclaw config set env.vars.OPENAI_BASE_URL http://127.0.0.1:19000/v1
openclaw config set messages.tts.provider openai
openclaw config set messages.tts.openai.model tts-1-hd
openclaw config set messages.tts.openai.voice me
Verify:
openclaw config get env.vars.OPENAI_BASE_URL
openclaw config get messages.tts
If using openedai-speech + XTTS voice mapping, cloned voices are commonly available only on tts-1-hd.
Check voice map inside container:
sudo docker exec openedai-speech sh -lc 'sed -n "1,220p" /app/config/voice_to_speaker.yaml'
If voice: me fails with KeyError, check whether:
tts-1 instead of tts-1-hd), orvoice_to_speaker.yaml.Use direct POST to validate backend behavior independent of chat surface rendering.
curl -sS -X POST http://127.0.0.1:8880/v1/audio/speech \
-H 'Content-Type: application/json' \
-d '{
"model":"tts-1-hd",
"voice":"me",
"input":"Quick cloned voice check.",
"speed":1.25,
"response_format":"mp3"
}' \
--output /tmp/clone-test.mp3
file /tmp/clone-test.mp3
Expected: MP3 audio file (not JSON error text).
messages.tts.openai.speed may be rejected by current OpenClaw schema. If so:
Do not claim speed is globally pinned unless schema accepts it.
Distinguish between:
gateway.bind, gateway.tailscale.*), and19000 or 8880).If user asks to expose local TTS only, do not change gateway bind/mode unless explicitly requested.
For TTS backend reachability:
ss -ltnp | grep ':19000\|:8880'
127.0.0.1, rebind service/container to 0.0.0.0 or tailnet interface.If webchat does not play voice attachments:
If file missing, regenerate clip and resend.
openclaw config set/get (never edit openclaw.json directly).