تخطَّ إلى المحتوى
kazma.
EN نجمة 7 ابدأ الآن

الصوت والوسائط

تستطيع كاظمة السماع (تحويل الكلام إلى نص)، والتحدث (تحويل النص إلى كلام)، والرؤية (صور/PDF/مستندات) عبر كل منصات الدردشة — Telegram وDiscord وSlack وواجهة الويب.


الصوت كتلة إعداد واحدة تتحكم بكل المنصات. عند التفعيل يُنسخ الصوت الوارد إلى نص قبل وصوله للوكيل. ردود الملاحظات الصوتية التلقائية (tts_reply) تولّد صوتًا فقط عندما كان الدور الوارد صوتيًا (وليس لنص عادي).

في kazma.yaml تحت gateway، أو وقت التشغيل عبر الويب → الإعدادات → الصوت:

gateway:
voice:
enabled: true
tts_reply: true
stt_provider: openai
stt_language: auto
tts_provider: edgetts
tts_voice: default
tts_output_format: mp3
الإعدادالأثر
نظام الصوت (enabled)تشغيل/إيقاف رئيسي لـ STT + TTS
ردود صوتية تلقائية (tts_reply)بعد وارد صوتي فقط؛ إيقاف = ردود نصية مع بقاء STT

نفس المفاتيح تُقرأ حيًا من كل المُكيّفات (voice_helpers.py).

المزوّدالمفتاحيحتاجملاحظات
OpenAI WhisperopenaiOPENAI_API_KEYالافتراضي
Groq WhispergroqGROQ_API_KEYالأسرع
CoherecohereCOHERE_API_KEY
NVIDIA NIM / RivanvidiaNVIDIA_API_KEY
faster-whisper (محلي)faster-whisperpip install faster-whisperبلا مفتاح API
المزوّدالمفتاحيحتاجملاحظات
Edge TTSedgettsلا شيءمجاني — الافتراضي
OpenAIopenaiOPENAI_API_KEYأصوات عصبية عالية الجودة
NVIDIA NIMnvidiaNVIDIA_API_KEY
Kokoro (محلي)kokoroتثبيت محلي
Coqui (محلي)coquiتثبيت محلي
المنصةوارد (أنت → الوكيل)صادر (الوكيل → أنت)
Telegramملاحظة صوتية → نصرد صوتي فقط إن tts_reply وكان الدور صوتيًا
Discordمرفق صوتي → نصنفس الشرط؛ رفع ملف
Slackملف صوتي → نصنفس الشرط
Web UIPOST /api/voice/sttPOST /api/voice/tts / /ws/voice (لا يُقيَّد بـ tts_reply المنصة)

إن لم يُضبط STT، ملاحظة صوتية واردة تعيد رسالة احتياطية ودّية بدل الفشل الصامت.


عقد الرسالة يحمل قائمة attachments (Attachment في gateway.py) إلى جانب النص. كل مرفق له kind (image / file / audio / videomime، filename، وإما data في الذاكرة أو url قابل للجلب.

كيف يستلم الوكيل الوسائط

Section titled “كيف يستلم الوكيل الوسائط”
نوع المرفقالسلوك
صورة (PNG/JPEG/WEBP/GIF، ≤ 8 MB)تُضمَّن ككتلة vision base64 — يرى النموذج الصورة مباشرة
مستند (PDF/DOCX/صورة كبيرة/صوت/…)يُحفظ في kazma-data/attachments/؛ الموجّه يحصل على [Attached: foo.pdf — use file_read…]

صيغة الرؤية OpenAI (content: [{type:image_url,...}, {type:text,...}]) تمر عبر llm_provider.py كما هي — أي نموذج يدعم الرؤية يعمل.

المنصةواردصادر
Telegramصورة / مستند / فيديو / رسومsendPhoto / sendDocument / …
Discordمرفقات + embeds صوررفع multipart
Slackfiles (Socket Mode)مسار رفع Slack الخارجي
Web UIPOST /api/chat/upload (حد 20 MB)روابط تنزيل

إرسال وسائط من واجهة الويب

Section titled “إرسال وسائط من واجهة الويب”
  1. زر المرفق (📎) في صندوق الدردشة.
  2. ملفات نصية صغيرة (≤ 1 MB) تُضمَّن من جهة العميل.
  3. صور وPDF وثنائي تُرفع عبر POST /api/chat/upload.

الوكيل يمكنه أيضًا إنتاج وسائط — مثل generate_imagekazma-data/images/.


الصوت والوسائط اختيارية. الصوت افتراضيًا enabled: false. التقاط الوسائط يعمل حيث يدعمه المُكيّف؛ كبح الصادر يكون لكل أداة (الوكيل يرسل فقط ما ينشئه صراحة).