ऑडियो / वॉयस नोट्स — 2026-01-17¶
क्या काम करता है¶
- मीडिया समझ (ऑडियो): यदि ऑडियो समझ सक्षम है (या स्वतः‑पता चल जाती है), OpenClaw:
1. पहले ऑडियो अटैचमेंट (लोकल पथ या URL) को खोजता है और आवश्यकता होने पर डाउनलोड करता है।
2. प्रत्येक मॉडल एंट्री को भेजने से पहले
maxBytesलागू करता है। 3. क्रम में पहली पात्र मॉडल एंट्री (प्रदाता या CLI) चलाता है। 4. यदि वह विफल होती है या स्किप होती है (आकार/टाइमआउट), तो अगली एंट्री आज़माता है। 5. सफलता पर,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; मॉडल स्वतः डाउनलोड करता है) - Gemini CLI (
gemini) का उपयोगread_many_filesके साथ - प्रदाता कुंजियाँ (OpenAI → Groq → Deepgram → Google)
Auto-detection को अक्षम करने के लिए, tools.media.audio.enabled: false सेट करें।
Customize करने के लिए, tools.media.audio.models सेट करें।
टिप्पणी: बाइनरी डिटेक्शन macOS/Linux/Windows पर best‑effort है; सुनिश्चित करें कि CLI PATH पर है (हम ~ का विस्तार करते हैं), या पूर्ण कमांड पथ के साथ एक स्पष्ट CLI मॉडल सेट करें।
विन्यास उदाहरण¶
प्रदाता + CLI फ़ॉलबैक (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,
},
],
},
},
},
}
स्कोप गेटिंग के साथ केवल‑प्रदाता¶
{
tools: {
media: {
audio: {
enabled: true,
scope: {
default: "allow",
rules: [{ action: "deny", match: { chatType: "group" } }],
},
models: [{ provider: "openai", model: "gpt-4o-mini-transcribe" }],
},
},
},
}
केवल‑प्रदाता (Deepgram)¶
{
tools: {
media: {
audio: {
enabled: true,
models: [{ provider: "deepgram", model: "nova-3" }],
},
},
},
}
नोट्स और सीमाएँ¶
- प्रदाता प्रमाणीकरण मानक मॉडल प्रमाणीकरण क्रम का पालन करता है (auth प्रोफ़ाइल, env vars,
models.providers.*.apiKey)। - Deepgram, जब
provider: "deepgram"उपयोग किया जाता है, तोDEEPGRAM_API_KEYको ग्रहण करता है। - Deepgram सेटअप विवरण: Deepgram (ऑडियो ट्रांसक्रिप्शन)।
- ऑडियो प्रदाता
tools.media.audioके माध्यम सेbaseUrl,headers, औरproviderOptionsको ओवरराइड कर सकते हैं। - Default size cap 20MB है (
tools.media.audio.maxBytes)। Oversize audio उस मॉडल के लिए छोड़ दिया जाता है और अगली प्रविष्टि आज़माई जाती है। - Audio के लिए default
maxCharsunset होता है (पूरा transcript)। आउटपुट ट्रिम करने के लिएtools.media.audio.maxCharsया प्रति-प्रविष्टिmaxCharsसेट करें। - OpenAI का ऑटो डिफ़ॉल्ट
gpt-4o-mini-transcribeहै; अधिक सटीकता के लिएmodel: "gpt-4o-transcribe"सेट करें। - अनेक वॉयस नोट्स प्रोसेस करने के लिए
tools.media.audio.attachmentsका उपयोग करें (mode: "all"+maxAttachments)। - ट्रांसक्रिप्ट टेम्पलेट्स में
{{Transcript}}के रूप में उपलब्ध है। - CLI stdout सीमित है (5MB); CLI आउटपुट संक्षिप्त रखें।
सावधानियाँ¶
- Scope rules में first-match wins लागू होता है।
chatTypeकोdirect,group, याroomमें normalize किया जाता है। - सुनिश्चित करें कि आपका CLI 0 के साथ बाहर निकलता है और सादा पाठ प्रिंट करता है; JSON को
jq -r .textके माध्यम से समायोजित करना होगा। - उत्तर कतार को ब्लॉक होने से बचाने के लिए टाइमआउट उचित रखें (
timeoutSeconds, डिफ़ॉल्ट 60s)।