Nodes and media
Ses ve sesli notlar
Neler çalışır
- Medya anlama (ses): Ses anlama etkinleştirilmişse (veya otomatik algılanmışsa), OpenClaw:
- İlk ses ekini (yerel yol veya URL) bulur ve gerekirse indirir.
- Her model girdisine göndermeden önce
maxBytessınırını uygular. - Sıradaki ilk uygun model girdisini çalıştırır (sağlayıcı veya CLI).
- Başarısız olursa veya atlanırsa (boyut/zaman aşımı), sonraki girdiyi dener.
- Başarılı olduğunda,
Bodydeğerini bir[Audio]bloğuyla değiştirir ve{{Transcript}}değerini ayarlar.
- Komut ayrıştırma: Transkripsiyon başarılı olduğunda, eğik çizgi komutlarının çalışmaya devam etmesi için
CommandBody/RawBodytranskripte ayarlanır. - Ayrıntılı günlükleme:
--verbosekullanıldığında, transkripsiyon çalıştığında ve gövdeyi değiştirdiğinde günlük kaydı yaparız.
Otomatik algılama (varsayılan)
Model yapılandırmazsanız ve tools.media.audio.enabled değeri false olarak ayarlanmamışsa,
OpenClaw aşağıdaki sırayla otomatik algılama yapar ve ilk çalışan seçenekte durur:
- Sağlayıcısı ses anlamayı desteklediğinde etkin yanıt modeli.
- Yerel CLI'ler (kuruluysa)
sherpa-onnx-offline(encoder/decoder/joiner/tokens içerenSHERPA_ONNX_MODEL_DIRgerektirir)whisper-cli(whisper-cppiçinden;WHISPER_CPP_MODELveya birlikte gelen tiny modeli kullanır)whisper(Python CLI; modelleri otomatik indirir)
- Sağlayıcı kimlik doğrulaması
- Önce sesi destekleyen yapılandırılmış
models.providers.*girdileri denenir - Sağlayıcı yedek sırası: OpenAI → Groq → xAI → Deepgram → Google → SenseAudio → ElevenLabs → Mistral
- Önce sesi destekleyen yapılandırılmış
2026-05-22 itibarıyla, medya anlama için Gemini CLI otomatik algılaması artık desteklenmemektedir. Google, Gemini CLI kullanıcılarını Antigravity CLI'ye geçiriyor; ses için yerel veya sağlayıcı transkripsiyonu kullanılmalı, görüntü/video CLI yedeği ise Antigravity CLI'ye (agy) taşınmalıdır.
Otomatik algılamayı devre dışı bırakmak için tools.media.audio.enabled: false ayarlayın.
Özelleştirmek için tools.media.audio.models ayarlayın.
Not: İkili dosya algılama macOS/Linux/Windows genelinde en iyi çaba esasına dayanır; CLI'nin PATH üzerinde olduğundan emin olun (~ genişletilir) veya tam komut yolu olan açık bir CLI modeli ayarlayın.
Yapılandırma örnekleri
Sağlayıcı + CLI yedeği (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, }, ], }, }, },}Kapsam denetimiyle yalnızca sağlayıcı
{ tools: { media: { audio: { enabled: true, scope: { default: "allow", rules: [{ action: "deny", match: { chatType: "group" } }], }, models: [{ provider: "openai", model: "gpt-4o-mini-transcribe" }], }, }, },}Yalnızca sağlayıcı (Deepgram)
{ tools: { media: { audio: { enabled: true, models: [{ provider: "deepgram", model: "nova-3" }], }, }, },}Yalnızca sağlayıcı (Mistral Voxtral)
{ tools: { media: { audio: { enabled: true, models: [{ provider: "mistral", model: "voxtral-mini-latest" }], }, }, },}Yalnızca sağlayıcı (SenseAudio)
{ tools: { media: { audio: { enabled: true, models: [{ provider: "senseaudio", model: "senseaudio-asr-pro-1.5-260319" }], }, }, },}Transkripti sohbete geri gönderme (isteğe bağlı)
{ tools: { media: { audio: { enabled: true, echoTranscript: true, // default is false echoFormat: '📝 "{transcript}"', // optional, supports {transcript} models: [{ provider: "openai", model: "gpt-4o-mini-transcribe" }], }, }, },}Notlar ve sınırlar
- Sağlayıcı kimlik doğrulaması standart model kimlik doğrulama sırasını izler (kimlik doğrulama profilleri, ortam değişkenleri,
models.providers.*.apiKey). - Groq kurulum ayrıntıları: Groq.
provider: "deepgram"kullanıldığında DeepgramDEEPGRAM_API_KEYdeğerini alır.- Deepgram kurulum ayrıntıları: Deepgram (ses transkripsiyonu).
- Mistral kurulum ayrıntıları: Mistral.
provider: "senseaudio"kullanıldığında SenseAudioSENSEAUDIO_API_KEYdeğerini alır.- SenseAudio kurulum ayrıntıları: SenseAudio.
- Ses sağlayıcıları
tools.media.audioüzerindenbaseUrl,headersveproviderOptionsdeğerlerini geçersiz kılabilir. - Varsayılan boyut sınırı 20 MB'dir (
tools.media.audio.maxBytes). Fazla büyük ses, o model için atlanır ve sonraki girdi denenir. - 1024 baytın altındaki küçük/boş ses dosyaları, sağlayıcı/CLI transkripsiyonundan önce atlanır.
- Ses için varsayılan
maxCharsayarlanmamıştır (tam transkript). Çıktıyı kırpmak içintools.media.audio.maxCharsveya girdi başınamaxCharsayarlayın. - OpenAI otomatik varsayılanı
gpt-4o-mini-transcribedeğeridir; daha yüksek doğruluk içinmodel: "gpt-4o-transcribe"ayarlayın. - Birden fazla sesli notu işlemek için
tools.media.audio.attachmentskullanın (mode: "all"+maxAttachments). - Transkript şablonlarda
{{Transcript}}olarak kullanılabilir. tools.media.audio.echoTranscriptvarsayılan olarak kapalıdır; aracı işlemeden önce transkript onayını kaynak sohbete geri göndermek için etkinleştirin.tools.media.audio.echoFormatgeri gönderilen metni özelleştirir (yer tutucu:{transcript}).- CLI stdout sınırlandırılmıştır (5 MB); CLI çıktısını kısa tutun.
- CLI
args, yerel ses dosyası yolu için{{MediaPath}}kullanmalıdır. Eskiaudio.transcription.commandyapılandırmalarındaki kullanımdan kaldırılmış{input}yer tutucularını geçirmek içinopenclaw doctor --fixçalıştırın.
Proxy ortam desteği
Sağlayıcı tabanlı ses transkripsiyonu standart giden proxy ortam değişkenlerini dikkate alır:
HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
Hiçbir proxy ortam değişkeni ayarlanmamışsa doğrudan çıkış kullanılır. Proxy yapılandırması hatalı biçimlendirilmişse OpenClaw bir uyarı günlüğe yazar ve doğrudan fetch'e geri döner.
Gruplarda bahsetme algılama
Bir grup sohbeti için requireMention: true ayarlandığında, OpenClaw artık bahsetmeleri denetlemeden önce sesi transkribe eder. Bu, sesli notlar bahsetme içerdiğinde bile işlenmelerini sağlar.
Nasıl çalışır:
- Bir sesli mesajın metin gövdesi yoksa ve grup bahsetme gerektiriyorsa, OpenClaw bir "ön denetim" transkripsiyonu gerçekleştirir.
- Transkript bahsetme kalıpları için denetlenir (ör.
@BotName, emoji tetikleyicileri). - Bir bahsetme bulunursa, mesaj tam yanıt işlem hattından geçer.
- Transkript, sesli notların bahsetme koşulunu geçebilmesi için bahsetme algılamada kullanılır.
Yedek davranış:
- Ön denetim sırasında transkripsiyon başarısız olursa (zaman aşımı, API hatası vb.), mesaj yalnızca metne dayalı bahsetme algılamasına göre işlenir.
- Bu, karma mesajların (metin + ses) asla yanlışlıkla düşürülmemesini sağlar.
Telegram grubu/konusu başına kapsam dışı bırakma:
- O grup için ön denetim transkript bahsetme denetimlerini atlamak üzere
channels.telegram.groups.<chatId>.disableAudioPreflight: trueayarlayın. - Konu başına geçersiz kılmak için
channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflightayarlayın (atlamak içintrue, zorla etkinleştirmek içinfalse). - Varsayılan
falsedeğeridir (bahsetme koşullu durumlar eşleştiğinde ön denetim etkindir).
Örnek: Bir kullanıcı, requireMention: true olan bir Telegram grubunda "Hey @Claude, what's the weather?" diyen bir sesli not gönderir. Sesli not transkribe edilir, bahsetme algılanır ve aracı yanıt verir.
Dikkat edilmesi gerekenler
- Kapsam kuralları ilk eşleşme kazanır mantığını kullanır.
chatType,direct,groupveyaroomolarak normalize edilir. - CLI'nizin 0 ile çıktığından ve düz metin yazdırdığından emin olun; JSON'un
jq -r .textile düzenlenmesi gerekir. parakeet-mlxiçin--output-dirgeçirirseniz,--output-formatdeğeritxtolduğunda (veya atlandığında) OpenClaw<output-dir>/<media-basename>.txtdosyasını okur;txtdışı çıktı biçimleri stdout ayrıştırmasına geri döner.- Yanıt kuyruğunu engellememek için zaman aşımlarını makul tutun (
timeoutSeconds, varsayılan 60 sn). - Ön denetim transkripsiyonu, bahsetme algılama için yalnızca ilk ses ekini işler. Ek sesler ana medya anlama aşamasında işlenir.