> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ऑडियो और वॉयस नोट्स

# ऑडियो / वॉयस नोट्स — 2026-01-17

## क्या काम करता है

* **मीडिया समझ (ऑडियो)**: यदि ऑडियो समझ सक्षम है (या स्वतः‑पता चल जाती है), OpenClaw:
  1. पहले ऑडियो अटैचमेंट (लोकल पथ या URL) को खोजता है और आवश्यकता होने पर डाउनलोड करता है।
  2. प्रत्येक मॉडल एंट्री को भेजने से पहले `maxBytes` लागू करता है।
  3. क्रम में पहली पात्र मॉडल एंट्री (प्रदाता या CLI) चलाता है।
  4. यदि वह विफल होती है या स्किप होती है (आकार/टाइमआउट), तो अगली एंट्री आज़माता है।
  5. सफलता पर, `Body` को `[Audio]` ब्लॉक से बदलता है और `{{Transcript}}` सेट करता है।
* **कमांड पार्सिंग**: जब ट्रांसक्रिप्शन सफल होता है, तो `CommandBody`/`RawBody` को ट्रांसक्रिप्ट पर सेट किया जाता है ताकि स्लैश कमांड्स काम करते रहें।
* **विस्तृत लॉगिंग**: `--verbose` में, हम लॉग करते हैं कि ट्रांसक्रिप्शन कब चलता है और कब यह बॉडी को बदलता है।

## स्वतः‑पता लगाना (डिफ़ॉल्ट)

यदि आप **मॉडल कॉन्फ़िगर नहीं करते** और `tools.media.audio.enabled` को `false` पर **सेट नहीं** किया गया है,
तो OpenClaw निम्न क्रम में स्वतः‑पता लगाता है और पहली कार्यशील विकल्प पर रुक जाता है:

1. **लोकल CLI** (यदि इंस्टॉल हों)
   * `sherpa-onnx-offline` (इसके लिए `SHERPA_ONNX_MODEL_DIR` आवश्यक है, जिसमें encoder/decoder/joiner/tokens हों)
   * `whisper-cli` (`whisper-cpp` से; `WHISPER_CPP_MODEL` या बंडल्ड tiny मॉडल का उपयोग करता है)
   * `whisper` (Python CLI; मॉडल स्वतः डाउनलोड करता है)
2. **Gemini CLI** (`gemini`) का उपयोग `read_many_files` के साथ
3. **प्रदाता कुंजियाँ** (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)

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  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,
          },
        ],
      },
    },
  },
}
```

### स्कोप गेटिंग के साथ केवल‑प्रदाता

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  tools: {
    media: {
      audio: {
        enabled: true,
        scope: {
          default: "allow",
          rules: [{ action: "deny", match: { chatType: "group" } }],
        },
        models: [{ provider: "openai", model: "gpt-4o-mini-transcribe" }],
      },
    },
  },
}
```

### केवल‑प्रदाता (Deepgram)

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  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 (ऑडियो ट्रांसक्रिप्शन)](/providers/deepgram)।
* ऑडियो प्रदाता `tools.media.audio` के माध्यम से `baseUrl`, `headers`, और `providerOptions` को ओवरराइड कर सकते हैं।
* Default size cap 20MB है (`tools.media.audio.maxBytes`)। Oversize audio उस मॉडल के लिए छोड़ दिया जाता है और अगली प्रविष्टि आज़माई जाती है।
* Audio के लिए default `maxChars` **unset** होता है (पूरा 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 आउटपुट संक्षिप्त रखें।

## सावधानियाँ

जब समूह चैट के लिए `requireMention: true` सेट किया जाता है, तो OpenClaw अब उल्लेखों की जाँच करने से **पहले** ऑडियो का ट्रांसक्रिप्शन करता है। इससे वॉइस नोट्स को प्रोसेस किया जा सकता है, भले ही उनमें उल्लेख शामिल हों।

**यह कैसे काम करता है:**

1. यदि किसी वॉइस संदेश में टेक्स्ट बॉडी नहीं है और समूह में उल्लेख आवश्यक है, तो OpenClaw "preflight" ट्रांसक्रिप्शन करता है।
2. ट्रांसक्रिप्ट में उल्लेख पैटर्न (जैसे, `@BotName`, इमोजी ट्रिगर्स) की जाँच की जाती है।
3. यदि कोई उल्लेख मिलता है, तो संदेश पूर्ण रिप्लाई पाइपलाइन से होकर गुजरता है।
4. उल्लेख पहचान के लिए ट्रांसक्रिप्ट का उपयोग किया जाता है ताकि वॉइस नोट्स उल्लेख गेट को पार कर सकें।

**फॉलबैक व्यवहार:**

* यदि preflight के दौरान ट्रांसक्रिप्शन विफल हो जाता है (टाइमआउट, API त्रुटि आदि), तो संदेश को केवल टेक्स्ट-आधारित उल्लेख पहचान के आधार पर प्रोसेस किया जाता है।
* यह सुनिश्चित करता है कि मिश्रित संदेश (टेक्स्ट + ऑडियो) कभी भी गलत तरीके से ड्रॉप न हों।

**उदाहरण:** एक उपयोगकर्ता `requireMention: true` के साथ एक Telegram समूह में "Hey @Claude, what's the weather?" कहते हुए एक वॉइस नोट भेजता है। वॉइस नोट का ट्रांसक्रिप्शन किया जाता है, मेंशन का पता लगाया जाता है, और एजेंट उत्तर देता है।

## सावधानियाँ

* Scope rules में first-match wins लागू होता है। `chatType` को `direct`, `group`, या `room` में normalize किया जाता है।
* सुनिश्चित करें कि आपका CLI 0 के साथ बाहर निकलता है और सादा पाठ प्रिंट करता है; JSON को `jq -r .text` के माध्यम से समायोजित करना होगा।
* उत्तर कतार को ब्लॉक होने से बचाने के लिए टाइमआउट उचित रखें (`timeoutSeconds`, डिफ़ॉल्ट 60s)।
* Preflight ट्रांसक्रिप्शन मेंशन पहचान के लिए केवल **पहले** ऑडियो अटैचमेंट को प्रोसेस करता है। अतिरिक्त ऑडियो को मुख्य मीडिया समझ चरण के दौरान प्रोसेस किया जाता है।
