PluginBench
Skill
Pass
Audit score 90

sherpa-onnx-tts

steipete/clawdis

Offline text-to-speech using sherpa-onnx—no cloud, runs locally on macOS, Linux, and Windows.

What is sherpa-onnx-tts?

Local TTS via sherpa-onnx CLI that converts text to audio files without internet or external services. Use this when you need private, fast speech synthesis with no API dependencies.

  • Generate WAV audio files from text using offline models
  • Support multiple voice models (Piper en_US lessac included by default)
  • Run on macOS, Linux, and Windows with platform-specific runtimes
  • Configure custom model files and token/data directories
  • Integrate into shell scripts or agent workflows via CLI wrapper

How to install sherpa-onnx-tts

npx skills add https://github.com/steipete/clawdis --skill sherpa-onnx-tts
Prerequisites
  • Download and extract the sherpa-onnx runtime for your OS (macOS, Linux, or Windows x64)
  • Download at least one voice model (Piper en_US lessac provided; others available from sherpa-onnx releases)
  • Set environment variables SHERPA_ONNX_RUNTIME_DIR and SHERPA_ONNX_MODEL_DIR in OpenClaw config
  • Node.js environment (for wrapper execution)
Claude Code
Cursor
Windsurf
Cline

How to use sherpa-onnx-tts

  1. 1.Resolve your OpenClaw state directory (default ~/.openclaw)
  2. 2.Download the runtime for your OS and extract to tools/sherpa-onnx-tts/runtime
  3. 3.Download a voice model and extract to tools/sherpa-onnx-tts/models
  4. 4.Update ~/.openclaw/openclaw.json with SHERPA_ONNX_RUNTIME_DIR and SHERPA_ONNX_MODEL_DIR paths
  5. 5.Run the CLI: {baseDir}/bin/sherpa-onnx-tts -o output.wav "Your text here"

Use cases

Good for
  • Generate spoken audio for accessibility or narration in local projects
  • Create voice output for offline applications without cloud TTS costs
  • Batch convert text documents to speech files locally
  • Integrate speech synthesis into CI/CD or automation pipelines
  • Use alternative voice models for different languages or speaker profiles
Who it's for
  • Developers building offline-first applications
  • Teams with privacy or data residency requirements
  • Users seeking cost-effective TTS without API subscriptions
  • Automation engineers integrating speech into local workflows

sherpa-onnx-tts FAQ

How do I use a different voice model?

Download a different model from the sherpa-onnx tts-models release, extract it to the models directory, and update SHERPA_ONNX_MODEL_DIR in your config or pass --model-file to the CLI.

Does this require internet after setup?

No. Once the runtime and models are downloaded, everything runs offline locally.

What if my model directory has multiple .onnx files?

Set the SHERPA_ONNX_MODEL_FILE environment variable or pass --model-file to specify which one to use.

How do I add the wrapper to my PATH?

Run export PATH="{baseDir}/bin:$PATH" in your shell, or add that line to your shell profile.

What's the Windows command syntax?

Use node {baseDir}\bin\sherpa-onnx-tts -o tts.wav "Your text" on Windows.

Full instructions (SKILL.md)

Source of truth, from steipete/clawdis.


name: sherpa-onnx-tts description: "Local text-to-speech via sherpa-onnx (offline, no cloud)" metadata: { "openclaw": { "emoji": "🔉", "os": ["darwin", "linux", "win32"], "requires": { "env": ["SHERPA_ONNX_RUNTIME_DIR", "SHERPA_ONNX_MODEL_DIR"] }, "install": [ { "id": "download-runtime-macos", "kind": "download", "os": ["darwin"], "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.13.2/sherpa-onnx-v1.13.2-osx-universal2-shared.tar.bz2", "archive": "tar.bz2", "extract": true, "stripComponents": 1, "targetDir": "runtime", "label": "Download sherpa-onnx runtime (macOS)", }, { "id": "download-runtime-linux-x64", "kind": "download", "os": ["linux"], "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.13.2/sherpa-onnx-v1.13.2-linux-x64-shared.tar.bz2", "archive": "tar.bz2", "extract": true, "stripComponents": 1, "targetDir": "runtime", "label": "Download sherpa-onnx runtime (Linux x64)", }, { "id": "download-runtime-win-x64", "kind": "download", "os": ["win32"], "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.13.2/sherpa-onnx-v1.13.2-win-x64-shared-MD-Release.tar.bz2", "archive": "tar.bz2", "extract": true, "stripComponents": 1, "targetDir": "runtime", "label": "Download sherpa-onnx runtime (Windows x64)", }, { "id": "download-model-lessac", "kind": "download", "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-lessac-high.tar.bz2", "archive": "tar.bz2", "extract": true, "targetDir": "models", "label": "Download Piper en_US lessac (high)", }, ], }, }

sherpa-onnx-tts

Local TTS using the sherpa-onnx offline CLI.

Install

  1. Download the runtime for your OS (extracts into $OPENCLAW_STATE_DIR/tools/sherpa-onnx-tts/runtime, default ~/.openclaw/tools/sherpa-onnx-tts/runtime)
  2. Download a voice model (extracts into $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"

Usage

{baseDir}/bin/sherpa-onnx-tts -o ./tts.wav "Hello from local TTS."

Notes:

  • Pick a different model from the sherpa-onnx tts-models release if you want another voice.
  • If the model dir has multiple .onnx files, set SHERPA_ONNX_MODEL_FILE or pass --model-file.
  • You can also pass --tokens-file or --data-dir to override the defaults.
  • Windows: run node {baseDir}\\bin\\sherpa-onnx-tts -o tts.wav "Hello from local TTS."