TgWitness / التوثيق

مرجع / الأرشيف والتكاملات

التعرف الضوئي على الحروف (OCR) المحلي والنسخ الصوتي

التعرف على الصور والتسجيلات الصوتية الملتقطة باستخدام عامل محلي؛ والحفاظ على ارتباط النص المستخرج بملف المصدر.

الموضوع الرئيسي الحالي: استخدم نسخة من المصدر؛ حيث إن النسخة التجريبية المحمولة 0.7.0 تسبق هذه الميزة.

دليل سير العمل · ويكي

افتح سجل دفتر media.saved، واختر «التعرف على المرفق»، ثم حدد «OCR» أو «النسخ» ضمن «اسأل الأرشيف». تتم المعالجة يدويًا ومحليًّا. لا يوجد وضع وسائط سحابية أو تحميل تلقائي. تظل بايتات المرفق الأصلية و media_sha256 دون تغيير؛ ويتم تمييز النص المعترف به صراحةً على أنه نتيجة التعرف الآلي ويتم تخزينه بشكل منفصل مع التجزئة المصدرية، وإصدار المحرك/النموذج، واللغة، والمعلمات، ووقت الإكمال. تحتفظ النصوص المكتوبة بالطوابع الزمنية التي تم إرجاعها.

ابحث في هذه النتائج باستخدام «البحث في النص المعترف به» وفلتر «OCR/النص المكتوب». هذا بحث منفصل في البيانات المشتقة؛ ولا يقوم بصمت بتحويل ما تعرفه الآلة إلى نص Telegram الأصلي أو بإضافته إلى الأحداث الموقعة.

إعداد العامل الاختياري#

يتطلب الإصدار 1 مضيفًا يعمل بنظام Linux مزودًا ببرنامج خفي محلي لـ Docker. أما في حالة التثبيت على نظام Windows فيمكن تشغيل TgWitness داخل بيئة Linux VM/WSL مع برنامج خفي محلي خاص بها. ولا تقوم اللوحة أبدًا بفك تشفير المرفقات غير الموثوق بها بنفسها.

docker build -f deploy/media-worker/Dockerfile -t tgwitness-media:local .
export TGWITNESS_MEDIA_IMAGE=tgwitness-media:local

قم بتعيين هذه المتغيرات في بيئة خدمة TgWitness وأعد تشغيلها. يتم تعيين مقبس الخدمة (daemon socket) افتراضيًّا على /var/run/docker.sock؛ ويمكن في حالات النشر بدون حقوق الجذر (rootless) تعيينه على TGWITNESS_DOCKER_SOCKET. يستخدم العامل (worker) هذا المقبس الخاص بنظام Unix بشكل صريح بدلاً من سياق Docker عن بُعد. لا تكشف واجهة برمجة تطبيقات Docker (API) لمستخدمي اللوحة أو تقم بتثبيت مقبسه داخل حاوية التعرف.

للتحويل النصي، قم بتثبيت نموذج Whisper متوافق مع CTranslate2 بشكل منفصل، ثم اضبط TGWITNESS_WHISPER_MODEL_DIR على دليله. يقوم العامل بتحميله باستخدام local_files_only=True؛ ويتم تثبيت النموذج المحدد والمدخلات على وضع القراءة فقط. راجع وثائق تحميل النماذج الخاصة بالمحرك. تتضمن صورة التعرف الضوئي على الحروف (OCR) المرفقة بيانات تدريب باللغتين الإنجليزية والروسية. قم بدمج لغة أخرى في صورتك عند الحاجة؛ تتبع رموز اللغات واجهة سطر الأوامر (CLI) الخاصة بـ Tesseract.

لا يتم استدعاء أي نموذج أثناء المعالجة. قد يستخدم إعداد البناء/التنزيل الشبكة؛ يتم تعطيل الاتصال بالشبكة في كل حاوية التعرف الفعلية. قم بتثبيت الصورة قبل تمكينها؛ يستخدم وقت التشغيل --pull=never.

الحدود والاستعادة#

يعمل الحاوية كمستخدم غير متميز مع جذر للقراءة فقط، وقدرات محدودة، no-new-privileges ، وحدة معالجة مركزية واحدة، ذاكرة سعة 2 جيجابايت، حد PID ونظام ملفات مؤقت محدود. يتم تثبيت نسخة تم التحقق منها فقط من الملف المحدد ودليل نموذج اختياري. لا يتم تثبيت قاعدة بيانات المجمع، ولا الخزينة، ولا الجلسة. تفرض علامات وقت تشغيل Docker هذه الحدود؛ ويظل هذا حدودًا للحاوية، وليس منطقة معزولة على مستوى الأجهزة.

يقتصر حجم الملفات على 50 ميغابايت، والصور على 20 مليون بكسل، والتسجيلات الصوتية على 30 دقيقة بمدة معروفة، والمعالجة على خمس دقائق. يعمل عامل واحد في كل مرة، مع حد أقصى يبلغ 20 مهمة في قائمة الانتظار/قيد التشغيل و100 مهمة محفوظة لكل مساحة عمل. يؤدي «الإلغاء» إلى إيقاف الحاوية؛ بينما تؤدي «إعادة المحاولة» إلى إنشاء مهمة جديدة مرتبطة بالمحاولة السابقة. يتم تمييز المهام المتوقفة بعد إعادة التشغيل. قد تفشل المعالجة عندما لا يستطيع النموذج التوافق مع الحدود المحددة؛ ولا يعمل النموذج بصمت دون عزل.