You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(docker): bundle whisper.cpp + tiny model for out-of-the-box transcription (#9)
* feat(docker): bundle whisper.cpp + tiny model for out-of-the-box transcription
Ship the whisper.cpp CLI, the ggml `tiny` model, and ffmpeg in the image so
the `transcribe` tool and Telegram voice auto-transcription work with zero
setup — no host install, no first-run model download.
Dockerfile:
- New `whisper` build stage compiles whisper-cli (OpenMP off, so the only
runtime shared lib is libstdc++) and fetches ggml-tiny.bin. The model is
overridable via `--build-arg WHISPER_MODEL=base|small|medium`.
- Runtime stage installs ffmpeg + libstdc++ and copies whisper-cli onto PATH
and the model to /usr/local/share/whisper/models/.
The model is baked OUTSIDE ~/.odek on purpose: the Telegram compose profiles
bind-mount ./.odek over /home/odek/.odek, which would shadow a model placed
under the default ~/.odek/whisper/models. A fixed image path keeps it visible
across all four profiles.
Config:
- config.restricted.json and config.godmode.json now set a transcription block
(model: tiny, auto_transcribe: true, models_dir pointing at the baked path).
Docs: document bundled transcription in docker/README.md and docs/TELEGRAM.md.
Verified by building the image and running OGG->WAV->whisper inference with the
bundled model as the non-root odek user.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* build(docker): pin whisper.cpp to v1.8.6 for reproducible builds
Clone a tagged release via a WHISPER_VERSION build arg instead of tracking
master, so the bundled whisper-cli is reproducible and can't drift/break in
CI on an upstream change. Verified with a no-cache build (git describe →
v1.8.6, whisper-cli + ggml-tiny.bin produced).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/TELEGRAM.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -312,6 +312,8 @@ Voice message received → DownloadVoice (OGG Opus to disk)
312
312
313
313
**Fallback:** If auto-transcribe fails (ffmpeg unavailable, corrupt audio, whisper error), the agent receives the file path with a suggestion to use the `transcribe()` tool manually.
314
314
315
+
**Docker:** the official image bundles the whisper.cpp CLI, the `tiny` model, and ffmpeg, with `auto_transcribe` enabled in the shipped configs — so voice transcription works out of the box with no host install. See [../docker/README.md](../docker/README.md#voice-transcription-out-of-the-box).
316
+
315
317
### Tool Progress (Narrator)
316
318
317
319
Tool progress shows what the agent is doing in real time. Controlled by the `tool_progress` config field (independent from `interaction_mode`):
0 commit comments