Audio / Mga Tala sa Boses — 2026-01-17¶
Ano ang gumagana¶
- Pag-unawa sa media (audio): Kapag naka-enable (o auto‑detected) ang audio understanding, ang OpenClaw ay:
1. Hinahanap ang unang audio attachment (local path o URL) at dina-download ito kung kinakailangan.
2. Ipinapatupad ang
maxBytesbago ipadala sa bawat model entry. 3. Pinapatakbo ang unang kwalipikadong model entry ayon sa pagkakasunod (provider o CLI). 4. Kapag pumalya o na-skip (size/timeout), sinusubukan ang susunod na entry. 5. Kapag matagumpay, pinapalitan nito angBodyng isang[Audio]block at itinatakda ang{{Transcript}}. - Pag-parse ng command: Kapag matagumpay ang transcription, itinatakda ang
CommandBody/RawBodysa transcript para gumana pa rin ang mga slash command. - Detalyadong logging: Sa
--verbose, nagla-log kami kung kailan tumatakbo ang transcription at kung kailan nito pinapalitan ang body.
Awtomatikong pagtukoy (default)¶
Kung hindi ka nagko-configure ng mga model at ang tools.media.audio.enabled ay hindi nakatakda sa false,
ina-auto-detect ng OpenClaw sa ganitong pagkakasunod at humihinto sa unang gumaganang opsyon:
- Mga lokal na CLI (kung naka-install)
-
sherpa-onnx-offline(nangangailangan ngSHERPA_ONNX_MODEL_DIRna may encoder/decoder/joiner/tokens) -whisper-cli(mula sawhisper-cpp; gumagamit ngWHISPER_CPP_MODELo ng bundled tiny model) -whisper(Python CLI; awtomatikong nagda-download ng mga model) - Gemini CLI (
gemini) gamit angread_many_files - Mga provider key (OpenAI → Groq → Deepgram → Google)
Upang i-disable ang auto-detection, itakda ang tools.media.audio.enabled: false.
To customize, set tools.media.audio.models.
Tala: Best‑effort ang binary detection sa macOS/Linux/Windows; tiyaking nasa PATH ang CLI (ini‑expand namin ang ~), o mag‑set ng explicit na CLI model na may buong command path.
Mga halimbawa ng config¶
Tagapagbigay + CLI na alternatibo (OpenAI + Whisper CLI)¶
{
tools: {
media: {
audio: {
enabled: true,
maxBytes: 20971520,
models: [
{ provider: "openai", model: "gpt-4o-mini-transcribe" },
{
type: "cli",
command: "whisper",
args: ["--model", "base", "{{MediaPath}}"],
timeoutSeconds: 45,
},
],
},
},
},
}
Provider-only na may scope gating¶
{
tools: {
media: {
audio: {
enabled: true,
scope: {
default: "allow",
rules: [{ action: "deny", match: { chatType: "group" } }],
},
models: [{ provider: "openai", model: "gpt-4o-mini-transcribe" }],
},
},
},
}
Provider-lamang (Deepgram)¶
{
tools: {
media: {
audio: {
enabled: true,
models: [{ provider: "deepgram", model: "nova-3" }],
},
},
},
}
Mga tala at limitasyon¶
- Ang provider auth ay sumusunod sa karaniwang pagkakasunod ng model auth (auth profiles, mga environment variable,
models.providers.*.apiKey). - Kinukuha ng Deepgram ang
DEEPGRAM_API_KEYkapag ginamit angprovider: "deepgram". - Mga detalye ng setup ng Deepgram: Deepgram (audio transcription).
- Maaaring i-override ng mga audio provider ang
baseUrl,headers, atproviderOptionssa pamamagitan ngtools.media.audio. - Default size cap is 20MB (
tools.media.audio.maxBytes). Ang sobrang laki ng audio ay nilalaktawan para sa modelong iyon at susubukan ang susunod na entry. - Default
maxCharsfor audio is unset (full transcript). Itakda angtools.media.audio.maxCharso ang per-entry namaxCharsupang bawasan ang output. - Ang OpenAI auto default ay
gpt-4o-mini-transcribe; itakda angmodel: "gpt-4o-transcribe"para sa mas mataas na accuracy. - Gamitin ang
tools.media.audio.attachmentspara iproseso ang maraming voice note (mode: "all"+maxAttachments). - Available ang transcript sa mga template bilang
{{Transcript}}. - May cap ang CLI stdout (5MB); panatilihing maikli ang output ng CLI.
Mga dapat bantayan¶
- Scope rules use first-match wins.
chatTypeis normalized todirect,group, orroom. - Tiyaking nag-e-exit ang iyong CLI na may 0 at nagpi-print ng plain text; ang JSON ay kailangang ayusin sa pamamagitan ng
jq -r .text. - Panatilihing makatwiran ang mga timeout (
timeoutSeconds, default 60s) para maiwasang ma-block ang reply queue.