Audio / Spraaknotities — 2026-01-17
Wat werkt
- Mediaherkenning (audio): Als audioherkenning is ingeschakeld (of automatisch wordt gedetecteerd), doet OpenClaw het volgende:
- Vindt de eerste audio-bijlage (lokaal pad of URL) en downloadt deze indien nodig.
- Past
maxBytestoe voordat naar elke modelvermelding wordt verzonden. - Voert de eerste geschikte modelvermelding in volgorde uit (provider of CLI).
- Als dit faalt of wordt overgeslagen (grootte/time-out), wordt de volgende vermelding geprobeerd.
- Bij succes vervangt het
Bodydoor een[Audio]-blok en stelt{{Transcript}}in.
- Command parsing: Wanneer transcriptie slaagt, worden
CommandBody/RawBodyingesteld op het transcript zodat slash-opdrachten blijven werken. - Uitgebreide logging: In
--verboseloggen we wanneer transcriptie draait en wanneer deze de body vervangt.
Automatische detectie (standaard)
Als je geen modellen configureert entools.media.audio.enabled niet is ingesteld op false,
detecteert OpenClaw automatisch in deze volgorde en stopt bij de eerste werkende optie:
- Lokale CLI’s (indien geïnstalleerd)
sherpa-onnx-offline(vereistSHERPA_ONNX_MODEL_DIRmet encoder/decoder/joiner/tokens)whisper-cli(vanwhisper-cpp; gebruiktWHISPER_CPP_MODELof het meegeleverde tiny-model)whisper(Python-CLI; downloadt modellen automatisch)
- Gemini CLI (
gemini) metread_many_files - Provider-sleutels (OpenAI → Groq → Deepgram → Google)
tools.media.audio.enabled: false in.
Om te personaliseren, stel tools.media.audio.models in.
Let op: Detectie van binaries is best-effort op macOS/Linux/Windows; zorg dat de CLI op PATH staat (we breiden ~ uit), of stel een expliciet CLI-model in met een volledig opdrachtpad.
Configuratievoorbeelden
Provider + CLI-fallback (OpenAI + Whisper CLI)
Alleen provider met scope-gating
Alleen provider (Deepgram)
Notities & limieten
- Provider-authenticatie volgt de standaard model-auth-volgorde (auth-profielen, omgevingsvariabelen,
models.providers.*.apiKey). - Deepgram pikt
DEEPGRAM_API_KEYop wanneerprovider: "deepgram"wordt gebruikt. - Details voor Deepgram-installatie: Deepgram (audiotranscriptie).
- Audioproviders kunnen
baseUrl,headersenproviderOptionsoverschrijven viatools.media.audio. - De standaard maximale grootte is 20MB (
tools.media.audio.maxBytes). Te grote audio wordt voor dat model overgeslagen en de volgende vermelding wordt geprobeerd. - Standaard
maxCharsvoor audio is niet ingesteld (volledig transcript). Steltools.media.audio.maxCharsin of per vermeldingmaxCharsom de uitvoer in te korten. - De OpenAI-standaard is
gpt-4o-mini-transcribe; stelmodel: "gpt-4o-transcribe"in voor hogere nauwkeurigheid. - Gebruik
tools.media.audio.attachmentsom meerdere spraaknotities te verwerken (mode: "all"+maxAttachments). - Het transcript is beschikbaar voor templates als
{{Transcript}}. - CLI-stdout is begrensd (5MB); houd CLI-uitvoer beknopt.
Mention-detectie in groepen
WanneerrequireMention: true is ingesteld voor een groepschat, transcribeert OpenClaw nu audio voordat op mentions wordt gecontroleerd. Hierdoor kunnen spraakberichten worden verwerkt, zelfs wanneer ze mentions bevatten.
Hoe het werkt:
- Als een spraakbericht geen tekstinhoud heeft en de groep mentions vereist, voert OpenClaw een “preflight”-transcriptie uit.
- Het transcript wordt gecontroleerd op mention-patronen (bijv.
@BotName, emoji-triggers). - Als een mention wordt gevonden, gaat het bericht door de volledige antwoordpipeline.
- Het transcript wordt gebruikt voor mention-detectie zodat spraakberichten door de mention-gate kunnen gaan.
- Als transcriptie tijdens de preflight mislukt (timeout, API-fout, enz.), wordt het bericht verwerkt op basis van alleen tekstuele mention-detectie.
- Dit zorgt ervoor dat gemengde berichten (tekst + audio) nooit onterecht worden genegeerd.
requireMention: true. Het spraakbericht wordt getranscribeerd, de mention wordt gedetecteerd en de agent antwoordt.
Gotcha’s
- Scoperegels gebruiken first-match-wins.
chatTypewordt genormaliseerd naardirect,groupofroom. - Zorg dat je CLI met exitcode 0 afsluit en platte tekst print; JSON moet worden aangepast via
jq -r .text. - Houd time-outs redelijk (
timeoutSeconds, standaard 60s) om blokkeren van de antwoordwachtrij te voorkomen. - Preflight-transcriptie verwerkt alleen de eerste audio-bijlage voor mention-detectie. Aanvullende audio wordt verwerkt tijdens de hoofdmedia-analysefase.