Telegram voice local mode
Telegram voice local mode keeps voice transcription private and local. Bestie downloads the voice file, converts Telegram Ogg/Opus to WAV, runs whisper.cpp, sends only the bounded transcript and metadata to the agent, then deletes raw voice/audio files when configured.
Expected local files
Section titled “Expected local files”.bestie/tools/whisper-bin/whisper-cli.bestie/tools/local-whisper-transcribe.sh.bestie/models/ggml-small.binThe wrapper accepts model path and audio path, converts with ffmpeg, and prints transcript text to stdout.
Automatic setup
Section titled “Automatic setup”If the local files exist, configure local voice mode with:
bestie telegram voice setup-localList models and the current configured model:
bestie telegram voice modelsPreview a model download:
bestie telegram voice download-model smallDownload and switch to the model:
bestie telegram voice download-model small --confirm --useSupported names are tiny, small, medium, and large-v3-turbo. Existing files are not overwritten unless --force is provided.
Config preset
Section titled “Config preset”{ "transcription": { "provider": "local-whisper", "command": ".bestie/tools/local-whisper-transcribe.sh", "args": ["{modelPath}", "{audioPath}", "-l", "vi"], "modelPath": ".bestie/models/ggml-small.bin", "timeoutMs": 120000 }, "channels": { "telegram": { "attachments": { "downloadPolicy": "allow", "transcriptionPolicy": "allow", "transcriptionMaxBytes": 10485760, "deleteAfterProcessingKinds": ["voice", "audio"] } } }}For Vietnamese, ggml-small.bin is the practical local baseline. ggml-tiny.bin is faster but commonly too inaccurate for Vietnamese voice chat.
Verify
Section titled “Verify”Run Doctor:
bestie doctorExpected checks include local transcription command, model, ffmpeg, and model quality warnings.
For a real Telegram smoke transcript:
bestie telegram --once --transcript .bestie/logs/telegram-local-voice-smoke.jsonlThe transcript file must not contain raw message text, transcript text, file ids, file paths, owner ids, chat ids, bot tokens, or provider secrets.
Cleanup
Section titled “Cleanup”Preview retained old voice/audio files:
bestie tools attachments cleanup --older-than 7d --kinds voice,audioDelete matched files:
bestie tools attachments cleanup --older-than 7d --kinds voice,audio --confirm