Ljud / röstmeddelanden — 2026-01-17
Vad som fungerar
- Medieförståelse (ljud): Om ljudförståelse är aktiverad (eller autodetekteras) gör OpenClaw:
- Lokaliserar den första ljudbilagan (lokal sökväg eller URL) och laddar ned den vid behov.
- Tillämpa
maxBytesinnan sändning till varje modellpost. - Kör den första kvalificerade modellposten i ordning (leverantör eller CLI).
- Om den misslyckas eller hoppas över (storlek/timeout) prövas nästa post.
- Vid framgång ersätts
Bodymed ett[Audio]-block och{{Transcript}}sätts.
- Kommandotolkning: När transkriberingen lyckas sätts
CommandBody/RawBodytill transkriptet så att snedstreckskommandon fortfarande fungerar. - Utförlig loggning: I
--verboseloggar vi när transkriberingen körs och när den ersätter brödtexten.
Autodetektering (standard)
Om du inte konfigurerar modeller ochtools.media.audio.enabled inte är satt till false,
autodetekterar OpenClaw i denna ordning och stannar vid första fungerande alternativ:
- Lokala CLI:er (om installerade)
sherpa-onnx-offline(kräverSHERPA_ONNX_MODEL_DIRmed encoder/decoder/joiner/tokens)whisper-cli(frånwhisper-cpp; använderWHISPER_CPP_MODELeller den medföljande tiny-modellen)whisper(Python-CLI; laddar ned modeller automatiskt)
- Gemini CLI (
gemini) medread_many_files - Leverantörsnycklar (OpenAI → Groq → Deepgram → Google)
tools.media.audio.enabled: false.
För att anpassa, ange tools.media.audio.models.
Obs: Binär identifiering är best‑effort över macOS/Linux/Windows; säkerställ att CLI:n finns på PATH (vi expanderar ~), eller ange en explicit CLI‑modell med fullständig kommandosökväg.
Konfigexempel
Leverantör + CLI-fallback (OpenAI + Whisper CLI)
Endast leverantör med scope-begränsning
Endast leverantör (Deepgram)
Noteringar & begränsningar
- Leverantörsautentisering följer standardordningen för modellautentisering (autentiseringsprofiler, miljövariabler,
models.providers.*.apiKey). - Deepgram plockar upp
DEEPGRAM_API_KEYnärprovider: "deepgram"används. - Detaljer för Deepgram-konfigurering: Deepgram (ljudtranskribering).
- Ljudleverantörer kan åsidosätta
baseUrl,headersochproviderOptionsviatools.media.audio. - Standardstorlek cap är 20 MB (
tools.media.audio.maxBytes). Oversize ljud hoppas över för den modellen och nästa inlägg provas. - Standard
maxCharsför ljud är unset (full transkript). Angetools.media.audio.maxCharseller per-entrymaxCharsför att trimma utgången. - OpenAI:s autostandard är
gpt-4o-mini-transcribe; sättmodel: "gpt-4o-transcribe"för högre noggrannhet. - Använd
tools.media.audio.attachmentsför att bearbeta flera röstmeddelanden (mode: "all"+maxAttachments). - Transkriptet är tillgängligt för mallar som
{{Transcript}}. - CLI-stdout är begränsad (5 MB); håll CLI-utdata koncis.
Fallgropar
NärrequireMention: true är inställt för en gruppchatt transkriberar OpenClaw nu ljud innan den kontrollerar omnämnanden. Detta gör att röstmeddelanden kan bearbetas även när de innehåller omnämnanden.
Så fungerar det:
- Om ett röstmeddelande saknar textinnehåll och gruppen kräver omnämnanden utför OpenClaw en “preflight”-transkribering.
- Transkriberingen kontrolleras för mönster av omnämnanden (t.ex.
@BotName, emoji-triggers). - Om ett omnämnande hittas går meddelandet vidare genom hela svarspipelinen.
- Transkriptet används för omnämningsdetektering så att röstmeddelanden kan passera omnämningsgrinden.
- Om transkriberingen misslyckas under preflight (timeout, API-fel osv.) behandlas meddelandet baserat på endast textbaserad omnämningsdetektering.
- Detta säkerställer att blandade meddelanden (text + ljud) aldrig felaktigt ignoreras.
requireMention: true. Röstmeddelandet transkriberas, omnämningen identifieras och agenten svarar.
Fallgropar
- Omfattningsregler använder första match vinster.
chatTypeär normaliserad tilldirect,group, ellerroom. - Säkerställ att ditt CLI avslutar med 0 och skriver ren text; JSON behöver bearbetas via
jq -r .text. - Håll timeouts rimliga (
timeoutSeconds, standard 60 s) för att undvika att blockera svarskön. - Preflight-transkribering bearbetar endast den första ljudbilagan för omnämningsdetektering. Ytterligare ljud bearbetas under den huvudsakliga fasen för medieförståelse.