local-stt

Verified·Scanned 2/17/2026

Provides a local speech-to-text CLI using Parakeet/Whisper via ~/.openclaw/skills/local-stt/scripts/local-stt.py. It loads ~/.openclaw/.env and ~/.env into the environment (e.g., MATRIX_ACCESS_TOKEN, MATRIX_HOMESERVER), runs ffmpeg, and issues requests.put to the Matrix URL f"{homeserver.rstrip('/')}/_matrix/client/v3/rooms/{target_room}/send/m.room.message/{txn_id}".

from clawhub.ai·v355d1a1·8.2 KB·0 installs
Scanned from 1.0.0 at 355d1a1 · Transparency log ↗
$ vett add clawhub.ai/araa47/local-stt

Local STT (Parakeet / Whisper)

Unified local speech-to-text using ONNX Runtime with int8 quantization. Choose your backend:

  • Parakeet (default): Best accuracy for English, correctly captures names and filler words
  • Whisper: Fastest inference, supports 99 languages

Usage

# Default: Parakeet v2 (best English accuracy)
~/.openclaw/skills/local-stt/scripts/local-stt.py audio.ogg

# Explicit backend selection
~/.openclaw/skills/local-stt/scripts/local-stt.py audio.ogg -b whisper
~/.openclaw/skills/local-stt/scripts/local-stt.py audio.ogg -b parakeet -m v3

# Quiet mode (suppress progress)
~/.openclaw/skills/local-stt/scripts/local-stt.py audio.ogg --quiet

Options

  • -b/--backend: parakeet (default), whisper
  • -m/--model: Model variant (see below)
  • --no-int8: Disable int8 quantization
  • -q/--quiet: Suppress progress
  • --room-id: Matrix room ID for direct message

Models

Parakeet (default backend)

ModelDescription
v2 (default)English only, best accuracy
v3Multilingual

Whisper

ModelDescription
tinyFastest, lower accuracy
base (default)Good balance
smallBetter accuracy
large-v3-turboBest quality, slower

Benchmark (24s audio)

Backend/ModelTimeRTFNotes
Whisper Base int80.43s0.018xFastest
Parakeet v2 int80.60s0.025xBest accuracy
Parakeet v3 int80.63s0.026xMultilingual

openclaw.json

{
  "tools": {
    "media": {
      "audio": {
        "enabled": true,
        "models": [
          {
            "type": "cli",
            "command": "~/.openclaw/skills/local-stt/scripts/local-stt.py",
            "args": ["--quiet", "{{MediaPath}}"],
            "timeoutSeconds": 30
          }
        ]
      }
    }
  }
}