← Back to Plugins
Tools

Speaches Stt

SimoneB79 By SimoneB79 ⭐ 1 stars 👁 12 views ▲ 0 votes

OpenClaw plugin: realtime transcription provider bridging Talk audio to a self-hosted Speaches (faster-whisper) server

GitHub

Install

openclaw plugins install openclaw-plugin-speaches-stt

Configuration Example

{
  "plugins": {
    "entries": {
      "voice-call": {
        "config": {
          "streaming": {
            "provider": "speaches",
            "providers": {
              "speaches": {
                "baseUrl": "http://speaches:8000",
                "model": "Systran/faster-whisper-base",
                "language": "it"
              }
            }
          }
        }
      }
    }
  }
}

README

# speaches-stt — OpenClaw Plugin

Realtime transcription provider for [OpenClaw](https://github.com/openclaw/openclaw) that bridges
Talk/WebChat audio to a **self-hosted [Speaches](https://github.com/speaches-ai/speaches)**
(faster-whisper) server. Fully local STT: no cloud, no API key.

Follows the same provider pattern as the built-in Deepgram plugin
(`realtimeTranscriptionProviders` contract).

## How it works

1. OpenClaw voice sessions deliver audio frames (default **PCMU 8 kHz**, PCM16 optional);
2. the provider re-frames them, applies a simple energy VAD (trailing silence ends an utterance),
   and wraps the utterance in a WAV container;
3. the WAV is POSTed to `<baseUrl>/v1/audio/transcriptions` (OpenAI-compatible endpoint);
4. the transcript text is emitted as the session result.

## Requirements

- A reachable Speaches server (tested with faster-whisper `Systran/faster-whisper-base`)
- OpenClaw **2026.10.x** with the official `voice-call` plugin installed and allowed
- Node 24.22.1+ / 26.12.1+

## Install

### npm

```bash
openclaw plugins install openclaw-plugin-speaches-stt
```

### ClawHub

```bash
openclaw plugins install clawhub:SimoneB79/speaches-stt
```

### From source (link)

```bash
openclaw plugins install --link --force /path/to/speaches-stt
```

## Configuration

Wire the voice-call streaming seam in `openclaw.json`:

```json
{
  "plugins": {
    "entries": {
      "voice-call": {
        "config": {
          "streaming": {
            "provider": "speaches",
            "providers": {
              "speaches": {
                "baseUrl": "http://speaches:8000",
                "model": "Systran/faster-whisper-base",
                "language": "it"
              }
            }
          }
        }
      }
    }
  }
}
```

| Key | Default | Description |
|---|---|---|
| `baseUrl` | `http://speaches:8000` | Speaches base URL |
| `model` | `Systran/faster-whisper-base` | Whisper model id served by Speaches |
| `language` | — | BCP-47 language hint, e.g. `it` |
| `encoding` | `pcmu` | Incoming audio encoding: `pcmu` or `pcm16` |
| `sampleRate` | `8000` | Incoming sample rate (Hz) |
| `silenceMs` | `900` | Trailing silence that ends an utterance |
| `maxUtteranceMs` | `12000` | Force flush after this much speech |
| `minUtteranceMs` | `300` | Ignore clicks shorter than this |
| `requestTimeoutMs` | `30000` | HTTP timeout for transcription |

## Verify

```bash
openclaw plugins list | grep speaches
openclaw status --deep   # Health: no speaches-stt warning
```

Then test a real voice note in Talk/WebChat while watching `openclaw logs`.

## License

[MIT](./LICENSE) — © 2026 Simone Bonizzardi
tools

Comments

Sign in to leave a comment

Loading comments...