ما يعمل
- فهم الوسائط (الصوت): إذا كان فهم الصوت مفعلا (أو مكتشفا تلقائيا)، فإن 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؛ ينزل النماذج تلقائيا)
- مصادقة المزود
- تتم تجربة إدخالات
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)
تكرار النص المنسوخ إلى الدردشة (اشتراك اختياري)
ملاحظات وحدود
- تتبع مصادقة المزود ترتيب مصادقة النماذج القياسي (ملفات المصادقة، متغيرات البيئة،
models.providers.*.apiKey). - تفاصيل إعداد Groq: Groq.
- يلتقط Deepgram قيمة
DEEPGRAM_API_KEYعند استخدامprovider: "deepgram". - تفاصيل إعداد Deepgram: Deepgram (نسخ الصوت).
- تفاصيل إعداد Mistral: Mistral.
- يلتقط SenseAudio قيمة
SENSEAUDIO_API_KEYعند استخدامprovider: "senseaudio". - تفاصيل إعداد SenseAudio: SenseAudio.
- يمكن لمزودي الصوت تجاوز
baseUrlوheadersوproviderOptionsعبرtools.media.audio. - حد الحجم الافتراضي هو 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}). - مخرجات stdout الخاصة بـ CLI محددة (5MB)؛ أبق مخرجات CLI موجزة.
- يجب أن تستخدم
argsالخاصة بـ CLI القيمة{{MediaPath}}لمسار ملف الصوت المحلي. شغلopenclaw doctor --fixلترحيل عناصر{input}النائبة المهملة من إعداداتaudio.transcription.commandالأقدم.
دعم بيئة الوكيل
يحترم نسخ الصوت المستند إلى المزود متغيرات بيئة الوكيل الصادر القياسية:HTTPS_PROXYHTTP_PROXYALL_PROXYhttps_proxyhttp_proxyall_proxy
اكتشاف الإشارات في المجموعات
عند ضبطrequireMention: true لدردشة جماعية، ينسخ OpenClaw الصوت الآن قبل التحقق من الإشارات. يتيح ذلك معالجة الملاحظات الصوتية حتى عندما تحتوي على إشارات.
كيف يعمل:
- إذا لم تكن للرسالة الصوتية متن نصي وكانت المجموعة تتطلب إشارات، يجري OpenClaw نسخا “تمهيديا”.
- يتم فحص النص المنسوخ بحثا عن أنماط الإشارة (مثل
@BotNameومشغلات الرموز التعبيرية). - إذا عثر على إشارة، تتابع الرسالة مسار الرد الكامل.
- يستخدم النص المنسوخ لاكتشاف الإشارات كي تتمكن الملاحظات الصوتية من اجتياز بوابة الإشارة.
- إذا فشل النسخ أثناء التمهيد (مهلة، خطأ API، وما إلى ذلك)، تتم معالجة الرسالة بناء على اكتشاف الإشارات النصية فقط.
- يضمن هذا ألا يتم إسقاط الرسائل المختلطة (نص + صوت) بشكل غير صحيح أبدا.
- اضبط
channels.telegram.groups.<chatId>.disableAudioPreflight: trueلتخطي فحوصات إشارة النص المنسوخ التمهيدية لتلك المجموعة. - اضبط
channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflightللتجاوز لكل موضوع (trueللتخطي، وfalseلفرض التفعيل). - القيمة الافتراضية هي
false(التمهيد مفعل عندما تتطابق شروط بوابة الإشارة).
requireMention: true. يتم نسخ الملاحظة الصوتية، وتكتشف الإشارة، ويرد الوكيل.
محاذير
- تستخدم قواعد النطاق أول تطابق يفوز. يتم تطبيع
chatTypeإلىdirectأوgroupأوroom. - تأكد من أن CLI لديك يخرج بالرمز 0 ويطبع نصا عاديا؛ يحتاج JSON إلى المعالجة عبر
jq -r .text. - بالنسبة إلى
parakeet-mlx، إذا مررت--output-dir، يقرأ OpenClaw الملف<output-dir>/<media-basename>.txtعندما يكون--output-formatهوtxt(أو محذوفا)؛ تنسيقات المخرجات غيرtxtترجع إلى تحليل stdout. - أبق المهل معقولة (
timeoutSeconds، الافتراضي 60s) لتجنب حظر طابور الرد. - يعالج النسخ التمهيدي أول مرفق صوتي فقط لاكتشاف الإشارات. تتم معالجة الصوت الإضافي أثناء مرحلة فهم الوسائط الرئيسية.