Wat werkt
- Mediabegrip (audio): Als audiobegrip is ingeschakeld (of automatisch wordt gedetecteerd), doet OpenClaw het volgende:
- Vindt de eerste audiobijlage (lokaal pad of URL) en downloadt die indien nodig.
- Handhaaft
maxBytesvoordat naar elk model-item wordt verzonden. - Voert het eerste geschikte model-item op volgorde uit (provider of CLI).
- Als dit mislukt of wordt overgeslagen (grootte/time-out), probeert het het volgende item.
- Bij succes vervangt het
Bodydoor een[Audio]-blok en stelt het{{Transcript}}in.
- Commandoparsing: Wanneer transcriptie slaagt, worden
CommandBody/RawBodyingesteld op het transcript, zodat slash-commando’s blijven werken. - Uitgebreide logging: In
--verboseloggen we wanneer transcriptie wordt uitgevoerd en wanneer die 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 het bij de eerste werkende optie:
- Actief antwoordmodel wanneer de provider audiobegrip ondersteunt.
- 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)
- Provider-authenticatie
- Geconfigureerde
models.providers.*-items die audio ondersteunen, worden eerst geprobeerd - Provider-terugvalvolgorde: OpenAI → Groq → xAI → Deepgram → Google → SenseAudio → ElevenLabs → Mistral
- Geconfigureerde
agy) moet verhuizen.
Stel tools.media.audio.enabled: false in om automatische detectie uit te schakelen.
Stel tools.media.audio.models in om dit aan te passen.
Opmerking: 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 commandopad.
Configuratievoorbeelden
Provider + CLI-terugval (OpenAI + Whisper CLI)
Alleen provider met scope-afscherming
Alleen provider (Deepgram)
Alleen provider (Mistral Voxtral)
Alleen provider (SenseAudio)
Transcript naar chat echoën (opt-in)
Opmerkingen en limieten
- Provider-authenticatie volgt de standaard authenticatievolgorde voor modellen (auth-profielen, env-vars,
models.providers.*.apiKey). - Groq-installatiedetails: Groq.
- Deepgram pikt
DEEPGRAM_API_KEYop wanneerprovider: "deepgram"wordt gebruikt. - Deepgram-installatiedetails: Deepgram (audiotranscriptie).
- Mistral-installatiedetails: Mistral.
- SenseAudio pikt
SENSEAUDIO_API_KEYop wanneerprovider: "senseaudio"wordt gebruikt. - SenseAudio-installatiedetails: SenseAudio.
- Audioproviders kunnen
baseUrl,headersenproviderOptionsoverschrijven viatools.media.audio. - De standaard maximale grootte is 20 MB (
tools.media.audio.maxBytes). Te grote audio wordt voor dat model overgeslagen en het volgende item wordt geprobeerd. - Kleine/lege audiobestanden kleiner dan 1024 bytes worden overgeslagen vóór provider-/CLI-transcriptie.
- De standaardwaarde voor
maxCharsvoor audio is niet ingesteld (volledig transcript). Steltools.media.audio.maxCharsofmaxCharsper item in om uitvoer in te korten. - De automatische standaard voor OpenAI 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 sjablonen als
{{Transcript}}. tools.media.audio.echoTranscriptstaat standaard uit; schakel dit in om transcriptbevestiging terug te sturen naar de oorspronkelijke chat voordat agentverwerking begint.tools.media.audio.echoFormatpast de echotekst aan (placeholder:{transcript}).- CLI-stdout is begrensd (5 MB); houd CLI-uitvoer beknopt.
- CLI-
argsmoeten{{MediaPath}}gebruiken voor het lokale audiobestandspad. Voeropenclaw doctor --fixuit om verouderde{input}-placeholders uit oudereaudio.transcription.command-configuraties te migreren.
Ondersteuning voor proxy-omgevingen
Providergebaseerde audiotranscriptie respecteert standaard env-vars voor uitgaande proxy’s:HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
Vermeldingsdetectie in groepen
WanneerrequireMention: true is ingesteld voor een groepschat, transcribeert OpenClaw audio nu voordat op vermeldingen wordt gecontroleerd. Hierdoor kunnen spraaknotities worden verwerkt, zelfs wanneer ze vermeldingen bevatten.
Hoe het werkt:
- Als een spraakbericht geen tekstbody heeft en de groep vermeldingen vereist, voert OpenClaw een “preflight”-transcriptie uit.
- Het transcript wordt gecontroleerd op vermeldingspatronen (bijv.
@BotName, emoji-triggers). - Als een vermelding wordt gevonden, gaat het bericht door de volledige antwoordpipeline.
- Het transcript wordt gebruikt voor vermeldingsdetectie, zodat spraaknotities de vermeldingspoort kunnen passeren.
- Als transcriptie tijdens preflight mislukt (time-out, API-fout, enz.), wordt het bericht verwerkt op basis van vermeldingsdetectie op alleen tekst.
- Dit zorgt ervoor dat gemengde berichten (tekst + audio) nooit ten onrechte worden genegeerd.
- Stel
channels.telegram.groups.<chatId>.disableAudioPreflight: truein om preflight-transcriptvermeldingscontroles voor die groep over te slaan. - Stel
channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflightin om per topic te overschrijven (trueom over te slaan,falseom geforceerd in te schakelen). - De standaardwaarde is
false(preflight ingeschakeld wanneer aan voorwaarden voor vermeldingsafscherming wordt voldaan).
requireMention: true. De spraaknotitie wordt getranscribeerd, de vermelding wordt gedetecteerd en de agent antwoordt.
Valkuilen
- Scoperegels gebruiken first-match wins.
chatTypewordt genormaliseerd naardirect,groupofroom. - Zorg dat je CLI afsluit met 0 en platte tekst print; JSON moet worden bewerkt via
jq -r .text. - Voor
parakeet-mlx: als je--output-dirmeegeeft, leest OpenClaw<output-dir>/<media-basename>.txtwanneer--output-formattxtis (of is weggelaten); niet-txt-uitvoerformaten vallen terug op stdout-parsing. - Houd time-outs redelijk (
timeoutSeconds, standaard 60s) om blokkeren van de antwoordwachtrij te voorkomen. - Preflight-transcriptie verwerkt alleen de eerste audiobijlage voor vermeldingsdetectie. Extra audio wordt verwerkt tijdens de hoofdmediabegripfase.