الصوت / الملاحظات الصوتية — 2026-01-17
ما الذي يعمل
- فهم الوسائط (الصوت): إذا كان فهم الصوت مُمكّنًا (أو تم اكتشافه تلقائيًا)، يقوم 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أو النموذج الصغير المضمّن)whisper(واجهة Python CLI؛ تُنزّل النماذج تلقائيًا)
- Gemini CLI (
gemini) باستخدامread_many_files - مفاتيح الموفّرين (OpenAI → Groq → Deepgram → Google)
tools.media.audio.enabled: false.
للتخصيص، عيّن tools.media.audio.models.
ملاحظة: اكتشاف الثنائيات يتم بأفضل جهد عبر macOS/Linux/Windows؛ تأكّد من وجود CLI على PATH (نقوم بتوسيع ~)، أو عيّن نموذج CLI صريحًا بمسار أمر كامل.
أمثلة التهيئة
موفّر + احتياطي CLI (OpenAI + Whisper CLI)
موفّر فقط مع تقييد النطاق
موفّر فقط (Deepgram)
ملاحظات وحدود
- يتبع توثيق موفّر الخدمة ترتيب توثيق النموذج القياسي (ملفات تعريف المصادقة، متغيرات البيئة،
models.providers.*.apiKey). - يلتقط Deepgram
DEEPGRAM_API_KEYعند استخدامprovider: "deepgram". - تفاصيل إعداد Deepgram: Deepgram (نسخ الصوت).
- يمكن لموفّري الصوت تجاوز
baseUrlوheadersوproviderOptionsعبرtools.media.audio. - الحد الافتراضي للحجم هو 20MB (
tools.media.audio.maxBytes). يتم تخطي الصوت الأكبر من الحد لذلك النموذج وتجربة الإدخال التالي. - القيمة الافتراضية لـ
maxCharsللصوت غير معيّنة (نص كامل). عيّنtools.media.audio.maxCharsأوmaxCharsلكل إدخال لتقليم الإخراج. - الافتراضي التلقائي لـ OpenAI هو
gpt-4o-mini-transcribe؛ عيّنmodel: "gpt-4o-transcribe"لدقة أعلى. - استخدم
tools.media.audio.attachmentsلمعالجة عدة ملاحظات صوتية (mode: "all"+maxAttachments). - النص المنسوخ متاح للقوالب باسم
{{Transcript}}. - إخراج stdout لواجهة CLI محدود (5MB)؛ احرص على إبقاء إخراج CLI موجزًا.
كشف الإشارة في المجموعات
عند تعيينrequireMention: true لمحادثة جماعية، يقوم OpenClaw الآن بتفريغ الصوت قبل التحقق من الإشارات. يتيح ذلك معالجة الملاحظات الصوتية حتى عندما تحتوي على إشارات.
كيف يعمل:
- إذا لم تحتوي الرسالة الصوتية على نص مكتوب وكانت المجموعة تتطلب إشارات، يقوم OpenClaw بإجراء تفريغ “تمهيدي”.
- يتم التحقق من النص المُفرَّغ بحثًا عن أنماط الإشارة (مثل
@BotNameأو محفزات الإيموجي). - إذا تم العثور على إشارة، تتابع الرسالة عبر مسار الرد الكامل.
- يُستخدم النص المُفرَّغ لاكتشاف الإشارات حتى تتمكن الملاحظات الصوتية من تجاوز شرط الإشارة.
- إذا فشل التفريغ أثناء المرحلة التمهيدية (انتهاء المهلة، خطأ في API، إلخ)، تتم معالجة الرسالة بناءً على اكتشاف الإشارات في النص فقط.
- يضمن ذلك عدم إسقاط الرسائل المختلطة (نص + صوت) بشكل غير صحيح.
requireMention: true. يتم تفريغ الملاحظة الصوتية، واكتشاف الإشارة، ويرد الوكيل.
غوشا
- تستخدم قواعد النطاق مبدأ «أول تطابق يفوز». يتم تطبيع
chatTypeإلىdirectأوgroupأوroom. - تأكّد من أن واجهة CLI تنهي التنفيذ برمز خروج 0 وتطبع نصًا عاديًا؛ يحتاج JSON إلى تهيئة عبر
jq -r .text. - حافظ على مهلات زمنية معقولة (
timeoutSeconds، الافتراضي 60 ثانية) لتجنّب حجب طابور الردود. - تعالج مرحلة التفريغ التمهيدية أول مرفق صوتي فقط لاكتشاف الإشارات. تتم معالجة المقاطع الصوتية الإضافية خلال مرحلة فهم الوسائط الرئيسية.