Nodes and media
Ses ve sesli notlar
Çalışanlar
- 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}}ayarlar.
- Komut ayrıştırma: Deşifre başarılı olduğunda, eğik çizgi komutlarının çalışmaya devam etmesi için
CommandBody/RawBodydeşifreye ayarlanır. - Ayrıntılı günlükleme:
--verbosemodunda, deşifre çalıştığında ve gövdeyi değiştirdiğinde günlük kaydı tutarız.
Otomatik algılama (varsayılan)
Model yapılandırmazsanız ve tools.media.audio.enabled false olarak ayarlanmamışsa,
OpenClaw bu sırayla otomatik algılama yapar ve çalışan ilk seçenekte durur:
- Sağlayıcısı ses anlamayı desteklediğinde etkin yanıt modeli.
- Yerel CLI'lar (kuruluysa)
sherpa-onnx-offline(encoder/decoder/joiner/tokens içerenSHERPA_ONNX_MODEL_DIRgerektirir)whisper-cli(whisper-cppüzerinden;WHISPER_CPP_MODELveya paketle gelen tiny modeli kullanır)whisper(Python CLI; modelleri otomatik indirir)
read_many_fileskullanan Gemini CLI (gemini)- Sağlayıcı kimlik doğrulaması
- Ses destekleyen yapılandırılmış
models.providers.*girdileri önce denenir - Paketle gelen yedek sıra: OpenAI → Groq → xAI → Deepgram → Google → SenseAudio → ElevenLabs → Mistral
- Ses destekleyen yapılandırılmış
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'ın PATH üzerinde olduğundan emin olun (~ genişletilir) veya tam komut yoluyla 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 geçidiyle 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" }],
},
},
},
}
Deşifreyi sohbete yankıla (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 deşifresi).
- 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ı 20MB'dir (
tools.media.audio.maxBytes). Büyük boyutlu ses ilgili model için atlanır ve sonraki girdi denenir. - 1024 baytın altındaki küçük/boş ses dosyaları sağlayıcı/CLI deşifresinden önce atlanır.
- Ses için varsayılan
maxCharsayarlanmamıştır (tam deşifre). Çıktıyı kırpmak içintools.media.audio.maxCharsveya girdi başınamaxCharsayarlayın. - OpenAI otomatik varsayılanı
gpt-4o-mini-transcribe; 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). - Deşifre şablonlarda
{{Transcript}}olarak kullanılabilir. tools.media.audio.echoTranscriptvarsayılan olarak kapalıdır; agent işlemesinden önce deşifre onayını kaynak sohbete geri göndermek için etkinleştirin.tools.media.audio.echoFormatyankı metnini özelleştirir (yer tutucu:{transcript}).- CLI stdout sınırlandırılmıştır (5MB); 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ı taşımak içinopenclaw doctor --fixçalıştırın.
Proxy ortam desteği
Sağlayıcı tabanlı ses deşifresi standart giden proxy ortam değişkenlerini dikkate alır:
HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
Hiç proxy ortam değişkeni ayarlanmamışsa doğrudan çıkış kullanılır. Proxy yapılandırması hatalıysa, OpenClaw bir uyarı günlüğe yazar ve doğrudan getirmeye geri döner.
Gruplarda bahsetme algılama
Bir grup sohbeti için requireMention: true ayarlandığında, OpenClaw artık bahsetmeleri kontrol etmeden önce sesi deşifre 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 kontrol" deşifresi gerçekleştirir.
- Deşifre bahsetme kalıpları için kontrol edilir (ör.
@BotName, emoji tetikleyicileri). - Bir bahsetme bulunursa, mesaj tam yanıt işlem hattından geçer.
- Sesli notların bahsetme geçidinden geçebilmesi için deşifre bahsetme algılamasında kullanılır.
Yedek davranış:
- Ön kontrol sırasında deşifre başarısız olursa (zaman aşımı, API hatası vb.), mesaj yalnızca metin tabanlı bahsetme algılamasına göre işlenir.
- Bu, karma mesajların (metin + ses) hiçbir zaman yanlışlıkla düşürülmemesini sağlar.
Telegram grubu/konusu başına vazgeçme:
- Bu grup için ön kontrol deşifre bahsetme kontrollerini 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 geçitli koşullar eşleştiğinde ön kontrol 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 deşifre edilir, bahsetme algılanır ve agent yanıt verir.
Dikkat edilmesi gerekenler
- Kapsam kurallarında ilk eşleşme kazanır.
chatType,direct,groupveyaroomolarak normalize edilir. - CLI'ınızın 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-formattxtolduğunda (veya belirtilmediğinde) OpenClaw<output-dir>/<media-basename>.txtdosyasını okur;txtolmayan çı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 kontrol deşifresi, bahsetme algılaması için yalnızca ilk ses ekini işler. Ek sesler ana medya anlama aşamasında işlenir.