Tools
Speaches Stt
OpenClaw plugin: realtime transcription provider bridging Talk audio to a self-hosted Speaches (faster-whisper) server
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