क्या काम करता है
- मीडिया समझ (ऑडियो): यदि ऑडियो समझ सक्षम है (या स्वतः पहचानी गई है), OpenClaw:
- पहला ऑडियो अटैचमेंट (स्थानीय पथ या URL) ढूंढता है और जरूरत होने पर उसे डाउनलोड करता है।
- हर मॉडल एंट्री को भेजने से पहले
maxBytesलागू करता है। - क्रम में पहली योग्य मॉडल एंट्री चलाता है (प्रदाता या CLI)।
- यदि यह विफल होती है या छोड़ी जाती है (आकार/टाइमआउट), तो यह अगली एंट्री आजमाता है।
- सफलता पर, यह
Bodyको[Audio]ब्लॉक से बदलता है और{{Transcript}}सेट करता है।
- कमांड पार्सिंग: जब ट्रांसक्रिप्शन सफल होता है, तो
CommandBody/RawBodyको ट्रांसक्रिप्ट पर सेट किया जाता है ताकि स्लैश कमांड अब भी काम करें। - विस्तृत लॉगिंग:
--verboseमें, हम लॉग करते हैं कि ट्रांसक्रिप्शन कब चलता है और कब यह बॉडी को बदलता है।
स्वतः-पहचान (डिफ़ॉल्ट)
यदि आप मॉडल कॉन्फ़िगर नहीं करते औरtools.media.audio.enabled को false पर सेट नहीं किया गया है,
तो OpenClaw इस क्रम में स्वतः पहचान करता है और पहले काम करने वाले विकल्प पर रुकता है:
- सक्रिय उत्तर मॉडल जब उसका प्रदाता ऑडियो समझ का समर्थन करता है।
- स्थानीय CLI (यदि इंस्टॉल हैं)
sherpa-onnx-offline(SHERPA_ONNX_MODEL_DIRकी आवश्यकता होती है जिसमें encoder/decoder/joiner/tokens हों)whisper-cli(whisper-cppसे;WHISPER_CPP_MODELया बंडल किए गए tiny मॉडल का उपयोग करता है)whisper(Python CLI; मॉडल अपने आप डाउनलोड करता है)
- प्रदाता प्रमाणीकरण
- ऑडियो का समर्थन करने वाली कॉन्फ़िगर की गई
models.providers.*एंट्रियां पहले आजमाई जाती हैं - प्रदाता फ़ॉलबैक क्रम: OpenAI → Groq → xAI → Deepgram → Google → SenseAudio → ElevenLabs → Mistral
- ऑडियो का समर्थन करने वाली कॉन्फ़िगर की गई
agy) पर जाना चाहिए।
स्वतः-पहचान अक्षम करने के लिए, tools.media.audio.enabled: false सेट करें।
कस्टमाइज़ करने के लिए, tools.media.audio.models सेट करें।
नोट: बाइनरी पहचान macOS/Linux/Windows पर सर्वोत्तम-प्रयास है; सुनिश्चित करें कि CLI PATH पर है (हम ~ को विस्तारित करते हैं), या पूर्ण कमांड पथ के साथ स्पष्ट CLI मॉडल सेट करें।
कॉन्फ़िग उदाहरण
प्रदाता + CLI फ़ॉलबैक (OpenAI + Whisper CLI)
स्कोप गेटिंग के साथ केवल प्रदाता
केवल प्रदाता (Deepgram)
केवल प्रदाता (Mistral Voxtral)
केवल प्रदाता (SenseAudio)
चैट में ट्रांसक्रिप्ट इको करें (ऑप्ट-इन)
नोट्स और सीमाएं
- प्रदाता प्रमाणीकरण मानक मॉडल प्रमाणीकरण क्रम का पालन करता है (auth profiles, env vars,
models.providers.*.apiKey)। - Groq सेटअप विवरण: Groq।
- जब
provider: "deepgram"उपयोग किया जाता है, तो DeepgramDEEPGRAM_API_KEYउठाता है। - Deepgram सेटअप विवरण: Deepgram (ऑडियो ट्रांसक्रिप्शन)।
- Mistral सेटअप विवरण: Mistral।
- जब
provider: "senseaudio"उपयोग किया जाता है, तो SenseAudioSENSEAUDIO_API_KEYउठाता है। - SenseAudio सेटअप विवरण: SenseAudio।
- ऑडियो प्रदाता
tools.media.audioके माध्यम सेbaseUrl,headers, औरproviderOptionsओवरराइड कर सकते हैं। - डिफ़ॉल्ट आकार सीमा 20MB है (
tools.media.audio.maxBytes)। बहुत बड़े ऑडियो को उस मॉडल के लिए छोड़ दिया जाता है और अगली एंट्री आजमाई जाती है। - 1024 बाइट से कम वाली छोटी/खाली ऑडियो फ़ाइलें प्रदाता/CLI ट्रांसक्रिप्शन से पहले छोड़ दी जाती हैं।
- ऑडियो के लिए डिफ़ॉल्ट
maxCharsसेट नहीं है (पूर्ण ट्रांसक्रिप्ट)। आउटपुट काटने के लिएtools.media.audio.maxCharsया प्रति-एंट्रीmaxCharsसेट करें। - OpenAI स्वतः डिफ़ॉल्ट
gpt-4o-mini-transcribeहै; अधिक सटीकता के लिएmodel: "gpt-4o-transcribe"सेट करें। - कई वॉइस नोट्स प्रोसेस करने के लिए
tools.media.audio.attachmentsका उपयोग करें (mode: "all"+maxAttachments)। - ट्रांसक्रिप्ट टेम्पलेट्स के लिए
{{Transcript}}के रूप में उपलब्ध है। tools.media.audio.echoTranscriptडिफ़ॉल्ट रूप से बंद है; एजेंट प्रोसेसिंग से पहले मूल चैट को ट्रांसक्रिप्ट पुष्टि भेजने के लिए इसे सक्षम करें।tools.media.audio.echoFormatइको टेक्स्ट को कस्टमाइज़ करता है (प्लेसहोल्डर:{transcript})।- CLI stdout सीमित है (5MB); CLI आउटपुट संक्षिप्त रखें।
- CLI
argsको स्थानीय ऑडियो फ़ाइल पथ के लिए{{MediaPath}}का उपयोग करना चाहिए। पुरानेaudio.transcription.commandकॉन्फ़िग से अप्रचलित{input}प्लेसहोल्डर माइग्रेट करने के लिएopenclaw doctor --fixचलाएं।
प्रॉक्सी वातावरण समर्थन
प्रदाता-आधारित ऑडियो ट्रांसक्रिप्शन मानक आउटबाउंड प्रॉक्सी env vars का सम्मान करता है:HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
समूहों में मेंशन पहचान
जब किसी समूह चैट के लिएrequireMention: true सेट होता है, तो OpenClaw अब मेंशन जांचने से पहले ऑडियो ट्रांसक्राइब करता है। इससे वॉइस नोट्स को तब भी प्रोसेस किया जा सकता है जब उनमें मेंशन हों।
यह कैसे काम करता है:
- यदि किसी वॉइस संदेश में कोई टेक्स्ट बॉडी नहीं है और समूह में मेंशन आवश्यक हैं, तो OpenClaw “preflight” ट्रांसक्रिप्शन करता है।
- ट्रांसक्रिप्ट में मेंशन पैटर्न जांचे जाते हैं (जैसे,
@BotName, emoji triggers)। - यदि मेंशन मिलता है, तो संदेश पूर्ण उत्तर पाइपलाइन से गुजरता है।
- ट्रांसक्रिप्ट का उपयोग मेंशन पहचान के लिए किया जाता है ताकि वॉइस नोट्स मेंशन गेट पार कर सकें।
- यदि preflight के दौरान ट्रांसक्रिप्शन विफल होता है (टाइमआउट, API त्रुटि, आदि), तो संदेश को केवल-टेक्स्ट मेंशन पहचान के आधार पर प्रोसेस किया जाता है।
- इससे सुनिश्चित होता है कि मिश्रित संदेश (टेक्स्ट + ऑडियो) कभी गलत तरीके से ड्रॉप नहीं होते।
- उस समूह के लिए preflight ट्रांसक्रिप्ट मेंशन जांच छोड़ने के लिए
channels.telegram.groups.<chatId>.disableAudioPreflight: trueसेट करें। - प्रति-टॉपिक ओवरराइड करने के लिए
channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflightसेट करें (trueछोड़ने के लिए,falseजबरन सक्षम करने के लिए)। - डिफ़ॉल्ट
falseहै (जब mention-gated शर्तें मेल खाती हैं तो preflight सक्षम होता है)।
requireMention: true वाले Telegram समूह में “Hey @Claude, what’s the weather?” कहते हुए वॉइस नोट भेजता है। वॉइस नोट ट्रांसक्राइब होता है, मेंशन पहचाना जाता है, और एजेंट उत्तर देता है।
ध्यान देने योग्य बातें
- स्कोप नियम first-match wins का उपयोग करते हैं।
chatTypeकोdirect,group, याroomमें सामान्यीकृत किया जाता है। - सुनिश्चित करें कि आपका CLI 0 पर बाहर निकले और सादा टेक्स्ट प्रिंट करे; JSON को
jq -r .textके माध्यम से संसाधित करना होगा। parakeet-mlxके लिए, यदि आप--output-dirपास करते हैं, तो OpenClaw<output-dir>/<media-basename>.txtपढ़ता है जब--output-formattxtहै (या छोड़ा गया है); non-txtआउटपुट फ़ॉर्मैट stdout पार्सिंग पर वापस जाते हैं।- उत्तर कतार को ब्लॉक होने से बचाने के लिए टाइमआउट उचित रखें (
timeoutSeconds, डिफ़ॉल्ट 60s)। - Preflight ट्रांसक्रिप्शन मेंशन पहचान के लिए केवल पहला ऑडियो अटैचमेंट प्रोसेस करता है। अतिरिक्त ऑडियो मुख्य मीडिया समझ चरण के दौरान प्रोसेस किया जाता है।