Audio / Ovozli eslatmalar — 2026-01-17
Nimalar ishlaydi
- Media tushunish (audio): Agar audio tushunish yoqilgan bo‘lsa (yoki avtomatik aniqlansa), OpenClaw:
- Birinchi audio ilovani (mahalliy yo‘l yoki URL) topadi va kerak bo‘lsa yuklab oladi.
- Har bir model yozuviga yuborishdan oldin
maxBytesni majburiy qo‘llaydi. - Mos keladigan birinchi model yozuvini tartib bo‘yicha ishga tushiradi (provider yoki CLI).
- Agar u muvaffaqiyatsiz bo‘lsa yoki o‘tkazib yuborilsa (hajm/timeout), keyingi yozuvni sinab ko‘radi.
- Muvaffaqiyatli bo‘lsa,
Bodyni[Audio]blokiga almashtiradi va{{Transcript}}ni o‘rnatadi.
- Buyruqlarni tahlil qilish: Transkripsiya muvaffaqiyatli bo‘lganda, slash buyruqlar ishlashi uchun
CommandBody/RawBodytranskriptga o‘rnatiladi. - Batafsil loglash:
--verboserejimida transkripsiya qachon ishga tushgani va qachon body almashtirilgani log qilinadi.
Avtomatik aniqlash (standart)
Agar siz modellarni sozlamagan bo‘lsangiz vatools.media.audio.enabled false ga o‘rnatilmagan bo‘lsa,
OpenClaw quyidagi tartibda avtomatik aniqlaydi va birinchi ishlaydigan variantda to‘xtaydi:
- Mahalliy CLI lar (agar o‘rnatilgan bo‘lsa)
sherpa-onnx-offline(SHERPA_ONNX_MODEL_DIRencoder/decoder/joiner/tokens bilan talab etiladi)whisper-cli(whisper-cppdan;WHISPER_CPP_MODELyoki biriktirilgan tiny modeldan foydalanadi)whisper(Python CLI; modellarni avtomatik yuklab oladi)
- Gemini CLI (
gemini)read_many_filesdan foydalanib - Provider kalitlari (OpenAI → Groq → Deepgram → Google)
tools.media.audio.enabled: false ni o‘rnating.
Moslashtirish uchun tools.media.audio.models ni o‘rnating.
Eslatma: Binar aniqlash macOS/Linux/Windows bo‘ylab best-effort; CLI PATH da ekanini ta’minlang (~ ni kengaytiramiz) yoki to‘liq buyruq yo‘li bilan aniq CLI modelini o‘rnating.
Konfiguratsiya misollari
Provayder + CLI zaxira varianti (OpenAI + Whisper CLI)
Provider-only, scope gating bilan
Faqat provider (Deepgram)
Eslatmalar va cheklovlar
- Provider autentifikatsiyasi standart model autentifikatsiya tartibiga amal qiladi (auth profillar, env o‘zgaruvchilar,
models.providers.*.apiKey). provider: "deepgram"ishlatilganda DeepgramDEEPGRAM_API_KEYni oladi.- Deepgram sozlash tafsilotlari: Deepgram (audio transkripsiya).
- Audio providerlar
tools.media.audioorqalibaseUrl,headersvaproviderOptionsni bekor qilishi mumkin. - Standart hajm cheklovi 20MB (
tools.media.audio.maxBytes). Haddan katta audio shu model uchun o‘tkazib yuboriladi va keyingi yozuv sinab ko‘riladi. - Audio uchun standart
maxCharso‘rnatilmagan (to‘liq transkript). Chiqishni qisqartirish uchuntools.media.audio.maxCharsyoki har bir yozuv uchunmaxCharsni o‘rnating. - OpenAI avtomatik standarti
gpt-4o-mini-transcribe; yuqori aniqlik uchunmodel: "gpt-4o-transcribe"ni o‘rnating. - Bir nechta ovozli eslatmalarni qayta ishlash uchun
tools.media.audio.attachmentsdan foydalaning (mode: "all"+maxAttachments). - Transkript shablonlar uchun
{{Transcript}}sifatida mavjud. - CLI stdout cheklangan (5MB); CLI chiqishini ixcham saqlang.
Guruhlarda Mention aniqlash
Guruh chatidarequireMention: true o‘rnatilganda, OpenClaw endi mentionlarni tekshirishdan oldin audioni transkripsiya qiladi. Bu mention mavjud bo‘lgan ovozli xabarlarni ham qayta ishlash imkonini beradi.
Qanday ishlaydi:
- Agar ovozli xabarda matn bo‘lmasa va guruh mention talab qilsa, OpenClaw “preflight” transkripsiyani amalga oshiradi.
- Transkript mention andozalari (masalan,
@BotName, emoji triggerlar) uchun tekshiriladi. - Agar mention aniqlansa, xabar to‘liq javob pipeline orqali davom etadi.
- Transkript mention aniqlash uchun ishlatiladi, shuning uchun ovozli xabarlar mention tekshiruvidan o‘ta oladi.
- Agar preflight vaqtida transkripsiya muvaffaqiyatsiz tugasa (timeout, API xatosi va h.k.), xabar faqat matn asosidagi mention aniqlash bo‘yicha qayta ishlanadi.
- Bu aralash xabarlar (matn + audio) hech qachon noto‘g‘ri rad etilmasligini ta’minlaydi.
requireMention: true o‘rnatilgan Telegram guruhida “Hey @Claude, what’s the weather?” deb ovozli xabar yuboradi. Ovozli xabar transkripsiya qilinadi, mention aniqlanadi va agent javob beradi.
Gotchas
- Scope rules use first-match wins.
chatTypeis normalized todirect,group, orroom. - Ensure your CLI exits 0 and prints plain text; JSON needs to be massaged via
jq -r .text. - Keep timeouts reasonable (
timeoutSeconds, default 60s) to avoid blocking the reply queue. - Preflight transkripsiya mention aniqlash uchun faqat birinchi audio biriktirmani qayta ishlaydi. Qo‘shimcha audiolar asosiy media tushunish bosqichida qayta ishlanadi.