Local text-to-speech via sherpa-onnx (offline, no cloud)
Local TTS using the sherpa-onnx offline CLI.
$OPENCLAW_STATE_DIR/tools/sherpa-onnx-tts/runtime, default ~/.openclaw/tools/sherpa-onnx-tts/runtime)$OPENCLAW_STATE_DIR/tools/sherpa-onnx-tts/models, default ~/.openclaw/tools/sherpa-onnx-tts/models)Resolve the active state directory first:
STATE_DIR="${OPENCLAW_STATE_DIR:-$HOME/.openclaw}"
Then write those resolved paths into the active OpenClaw config file ($OPENCLAW_CONFIG_PATH, default ~/.openclaw/openclaw.json):
{
skills: {
entries: {
"sherpa-onnx-tts": {
env: {
SHERPA_ONNX_RUNTIME_DIR: "/path/to/your/state-dir/tools/sherpa-onnx-tts/runtime",
SHERPA_ONNX_MODEL_DIR: "/path/to/your/state-dir/tools/sherpa-onnx-tts/models/vits-piper-en_US-lessac-high",
},
},
},
},
}
The wrapper lives in this skill folder. Run it directly, or add the wrapper to PATH:
export PATH="{baseDir}/bin:$PATH"
{baseDir}/bin/sherpa-onnx-tts -o ./tts.wav "Hello from local TTS."
Notes:
tts-models release if you want another voice..onnx files, set SHERPA_ONNX_MODEL_FILE or pass --model-file.--tokens-file or --data-dir to override the defaults.node {baseDir}\\bin\\sherpa-onnx-tts -o tts.wav "Hello from local TTS."