Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,18 @@ COPY . .
RUN CGO_ENABLED=0 go build -ldflags "-s -w" -o /out/odek ./cmd/odek

# ---- whisper stage ----
# Build whisper.cpp's CLI and fetch the `tiny` model so the `transcribe` tool
# Build whisper.cpp's CLI and fetch the `small` model so the `transcribe` tool
# (and Telegram voice auto-transcription) work out of the box — no host
# install, no first-run model download. Same Debian base as the runtime stage
# install, no first-run model download. `small` (not `small.en`) is the
# multilingual variant: usable German/English/Spanish quality, unlike `tiny`
# which is effectively English-grade. Same Debian base as the runtime stage
# so the glibc ABI matches; OpenMP is disabled to keep the runtime dependency
# surface down to just libstdc++6. To ship a different model, override the build
# arg: `--build-arg WHISPER_MODEL=base` (tiny | base | small | medium) — size
# and RAM grow accordingly. WHISPER_VERSION pins the whisper.cpp release so the
# build is reproducible — bump it deliberately rather than tracking master.
FROM debian:bookworm-slim AS whisper
ARG WHISPER_MODEL=tiny
ARG WHISPER_MODEL=small
ARG WHISPER_VERSION=v1.8.6
RUN apt-get update && apt-get install -y --no-install-recommends \
git cmake make g++ curl ca-certificates \
Expand Down
12 changes: 7 additions & 5 deletions docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,19 +155,21 @@ just defers silently.

## Voice transcription (out of the box)

The image **bundles whisper.cpp's CLI and the `tiny` ggml model**, plus `ffmpeg`
The image **bundles whisper.cpp's CLI and the `small` ggml model**, plus `ffmpeg`
for OGG/Opus → WAV conversion — so the `transcribe` tool and Telegram voice
auto-transcription work with zero setup. No host install, no first-run download.
`small` is the multilingual variant: usable German/English/Spanish quality out
of the box (`tiny`, the previous default, was effectively English-grade).

- The model ships at `/usr/local/share/whisper/models/ggml-tiny.bin`, and both
- The model ships at `/usr/local/share/whisper/models/ggml-small.bin`, and both
`config.restricted.json` and `config.godmode.json` point
`transcription.models_dir` there. (It lives outside `~/.odek` on purpose — the
Telegram profiles bind-mount `./.odek`, which would otherwise shadow it.)
- Send the bot a voice note → it's transcribed locally and handed to the agent
as text. `auto_transcribe` is on by default in the bundled configs.
- Want a more accurate (larger) model? Rebuild with
`--build-arg WHISPER_MODEL=base` (or `small` / `medium`) and bump the
`model` field in the config to match.
- Want a different model? Rebuild with
`--build-arg WHISPER_MODEL=tiny` (fastest, weaker multilingual) or `medium`
(best accuracy, much larger) and bump the `model` field in the config to match.

## Image & video understanding (out of the box)

Expand Down
4 changes: 2 additions & 2 deletions docker/config.godmode.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"verbose": false
},
"transcription": {
"model": "tiny",
"model": "small",
"auto_transcribe": true,
"models_dir": "/usr/local/share/whisper/models"
},
Expand Down Expand Up @@ -76,4 +76,4 @@
"action": "allow"
}
}
}
}
4 changes: 2 additions & 2 deletions docker/config.restricted.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"verbose": false
},
"transcription": {
"model": "tiny",
"model": "small",
"auto_transcribe": true,
"models_dir": "/usr/local/share/whisper/models"
},
Expand Down Expand Up @@ -92,4 +92,4 @@
}
}
}
}
}
2 changes: 1 addition & 1 deletion docs/TELEGRAM.md
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ Voice message received → DownloadVoice (OGG Opus to disk)

**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.

**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).
**Docker:** the official image bundles the whisper.cpp CLI, the `small` (multilingual) model, and ffmpeg, with `auto_transcribe` enabled in the shipped configs — so voice transcription works out of the box with no host install, at usable German/English/Spanish quality. See [../docker/README.md](../docker/README.md#voice-transcription-out-of-the-box).

### Tool Progress (Narrator)

Expand Down
Loading