Audio / Catatan Suara (2026-01-17)
Apa yang berfungsi
- Pemahaman media (audio): Jika pemahaman audio diaktifkan (atau terdeteksi otomatis), OpenClaw:
- Menemukan lampiran audio pertama (path lokal atau URL) dan mengunduhnya jika diperlukan.
- Menerapkan
maxBytessebelum mengirim ke setiap entri model. - Menjalankan entri model pertama yang memenuhi syarat secara berurutan (provider atau CLI).
- Jika gagal atau dilewati (ukuran/timeout), mencoba entri berikutnya.
- Jika berhasil, mengganti
Bodydengan blok[Audio]dan menetapkan{{Transcript}}.
- Penguraian perintah: Saat transkripsi berhasil,
CommandBody/RawBodydiatur ke transkrip agar slash command tetap berfungsi. - Logging verbose: Dalam
--verbose, kami mencatat saat transkripsi dijalankan dan saat transkripsi mengganti body.
Deteksi otomatis (default)
Jika Anda tidak mengonfigurasi model dantools.media.audio.enabled tidak disetel ke false,
OpenClaw mendeteksi otomatis dalam urutan ini dan berhenti pada opsi pertama yang berfungsi:
- Model balasan aktif saat providernya mendukung pemahaman audio.
- CLI lokal (jika terinstal)
sherpa-onnx-offline(memerlukanSHERPA_ONNX_MODEL_DIRdengan encoder/decoder/joiner/tokens)whisper-cli(dariwhisper-cpp; menggunakanWHISPER_CPP_MODELatau model tiny bawaan)whisper(Python CLI; mengunduh model secara otomatis)
- Gemini CLI (
gemini) menggunakanread_many_files - Auth provider
- Entri
models.providers.*yang dikonfigurasi dan mendukung audio akan dicoba lebih dulu - Urutan fallback bawaan: OpenAI → Groq → Deepgram → Google → Mistral
- Entri
tools.media.audio.enabled: false.
Untuk menyesuaikan, setel tools.media.audio.models.
Catatan: Deteksi biner adalah upaya terbaik di macOS/Linux/Windows; pastikan CLI ada di PATH (kami memperluas ~), atau setel model CLI eksplisit dengan path perintah lengkap.
Contoh konfigurasi
Fallback provider + CLI (OpenAI + Whisper CLI)
Hanya provider dengan gating scope
Hanya provider (Deepgram)
Hanya provider (Mistral Voxtral)
Echo transkrip ke chat (opt-in)
Catatan & batasan
- Auth provider mengikuti urutan auth model standar (profil auth, env var,
models.providers.*.apiKey). - Detail penyiapan Groq: Groq.
- Deepgram mengambil
DEEPGRAM_API_KEYsaatprovider: "deepgram"digunakan. - Detail penyiapan Deepgram: Deepgram (transkripsi audio).
- Detail penyiapan Mistral: Mistral.
- Provider audio dapat mengganti
baseUrl,headers, danproviderOptionsmelaluitools.media.audio. - Batas ukuran default adalah 20MB (
tools.media.audio.maxBytes). Audio yang terlalu besar dilewati untuk model tersebut dan entri berikutnya akan dicoba. - File audio kecil/kosong di bawah 1024 byte dilewati sebelum transkripsi provider/CLI.
maxCharsdefault untuk audio adalah tidak disetel (transkrip penuh). Seteltools.media.audio.maxCharsataumaxCharsper entri untuk memangkas output.- Default otomatis OpenAI adalah
gpt-4o-mini-transcribe; setelmodel: "gpt-4o-transcribe"untuk akurasi lebih tinggi. - Gunakan
tools.media.audio.attachmentsuntuk memproses beberapa catatan suara (mode: "all"+maxAttachments). - Transkrip tersedia untuk template sebagai
{{Transcript}}. tools.media.audio.echoTranscriptnonaktif secara default; aktifkan untuk mengirim konfirmasi transkrip kembali ke chat asal sebelum pemrosesan agent.tools.media.audio.echoFormatmenyesuaikan teks echo (placeholder:{transcript}).- Stdout CLI dibatasi (5MB); jaga output CLI tetap ringkas.
Dukungan lingkungan proxy
Transkripsi audio berbasis provider mematuhi env var proxy keluar standar:HTTPS_PROXYHTTP_PROXYhttps_proxyhttp_proxy
Deteksi Mention di Grup
SaatrequireMention: true disetel untuk chat grup, OpenClaw sekarang mentranskripsikan audio sebelum memeriksa mention. Ini memungkinkan catatan suara diproses meskipun mengandung mention.
Cara kerjanya:
- Jika pesan suara tidak memiliki body teks dan grup memerlukan mention, OpenClaw melakukan transkripsi “preflight”.
- Transkrip diperiksa untuk pola mention (misalnya
@BotName, pemicu emoji). - Jika mention ditemukan, pesan dilanjutkan ke pipeline balasan penuh.
- Transkrip digunakan untuk deteksi mention sehingga catatan suara dapat lolos dari gerbang mention.
- Jika transkripsi gagal selama preflight (timeout, error API, dll.), pesan diproses berdasarkan deteksi mention berbasis teks saja.
- Ini memastikan bahwa pesan campuran (teks + audio) tidak pernah salah dibuang.
- Setel
channels.telegram.groups.<chatId>.disableAudioPreflight: trueuntuk melewati pemeriksaan mention transkrip preflight untuk grup tersebut. - Setel
channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflightuntuk override per topik (trueuntuk melewati,falseuntuk memaksa aktif). - Default-nya adalah
false(preflight aktif saat kondisi berpagar mention terpenuhi).
requireMention: true. Catatan suara ditranskripsikan, mention terdeteksi, dan agent membalas.
Hal-hal yang perlu diperhatikan
- Aturan scope menggunakan kecocokan pertama yang menang.
chatTypedinormalisasi menjadidirect,group, atauroom. - Pastikan CLI Anda keluar dengan kode 0 dan mencetak teks biasa; JSON perlu disesuaikan melalui
jq -r .text. - Untuk
parakeet-mlx, jika Anda meneruskan--output-dir, OpenClaw membaca<output-dir>/<media-basename>.txtsaat--output-formatadalahtxt(atau tidak ditentukan); format output non-txtakan kembali ke parsing stdout. - Jaga timeout tetap masuk akal (
timeoutSeconds, default 60 detik) agar tidak memblokir antrean balasan. - Transkripsi preflight hanya memproses lampiran audio pertama untuk deteksi mention. Audio tambahan diproses selama fase utama pemahaman media.