كيف تتخلص من كتابة محاضر الاجتماعات يدويًا باستخدام Whisper على جهاز كمبيوتر آمن ومقطوع عن الإنترنت
٣٠ يوليو ٢٠٢٦
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
إن قضاء ساعة من العمل الإضافي لمجرد كتابة محاضر الاجتماعات في غرفة التطوير أو غرفة السيرفرات بشركة مالية—حيث لا يمكنك حتى الدخول بدون بطاقة أمنية—أمر مرهق للغاية. وحتى لو تقدمت بطلب للحصول على أداة مدعومة بالذكاء الاصطناعي مدفوعة الأجر، فلن توافق عليها لجنة أمن المعلومات بأي حال من الأحوال، ومصيرك المحتوم هو الكتابة اليدوية. لكن يمكنك التخلص من هذا العناء باستخدام Handy، وهي أداة محلية مفتوحة المصدر للتعرف على الصوت. تُعد هذه إعدادات تحسين تعمل بالكامل داخل جهازك المحمول دون إرسال بايت واحد من الصوت إلى سيرفر خارجي.
حتى لو كان Handy برنامجًا يعمل محليًا فقط، فإنه يظل مشبوهًا من وجهة نظر فريق الأمن. وبما أن حزم البيانات قد تخرج لتنزيل النماذج الأولية أو التحديثات، يجب حظر حزم الشبكة قسريًا على مستوى نظام التشغيل لشعور بالراحة والأمان.
إذا كنت تستخدم بيئة Windows، يمكنك فتح Command Prompt بصلاحيات المسؤول وإدخال قاعدة الصادر (Outbound) مباشرةً.
netsh advfirewall firewall add rule name="Block Handy Outbound OUT" dir=out program="%LOCALAPPDATA%\Programs\handy\Handy.exe" action=block enable=yesnetsh advfirewall firewall show rule name="Block Handy Outbound OUT" للتحقق بنفسك من حالة الحظر.وإذا كنت تستخدم macOS، يكفي حظر حزم Handy في Little Snitch 6 بناءً على Connections to Any Server وضبطها على Always Deny. وبفضل هذا السطر الواحد، تصبح نسبة احتمال حدوث حركة مرور تخالف اللوائح الأمنية صفرًا.
يجب الانتباه أيضًا لضبط اختصارات المفاتيح. يتعرف Handy على المفاتيح المدخلة عامةً باستخدام مكتبة rdev لغة Rust، ولذلك غالبًا ما يتصادم مع اختصارات النظام الأساسية. من الأفضل تعيين Option + Space على macOS وAlt + Space على Windows كمفتاح Push-to-Talk لضمان عمل سلِس.
تعتمد بنية OpenAI Whisper على أداة فك ترميز النصوص (Text Decoder) التي تتنبأ بالكلمة التالية بناءً على الكلمات السابقة. إذا قمنا بملء المعلمة initial_prompt لأداة فك الترميز هذه بالكلمات المنفردة وأسماء المشاريع التي نستخدمها بكثرة ضمن حد 224 رمزًا (token)، فسوف تقل نسبة التعرف الخاطئ بشكل ملحوظ. وهذا هو السبب في انخفاض معدل خطأ الكلمات (WER) حتى دون الحاجة لإعادة تدريب النموذج.
다음은 IT 개발 및 아키텍처 회의입니다. 주요 용어: Kubernetes, CI/CD, React Native, Rust, Obsidian, AutoHotkey, PostgreSQL, gRPC, Docker, PR, Issue, Sprint.يجب أيضًا التعامل مع ظاهرة الهلوسة التي تتمثل في كتابة كلمات معينة بشكل متكرر عند وجود ضوضاء خلفية قوية. خفض قيمة n_max_text_ctx—التي تحدد حجم نافذة سياق النص—إلى 128 وتثبيت قيمة temperature عند 0.0 سيوقف إنشاء النصوص العشوائية.
السلوك الافتراضي لـ Handy هو وضع النص المحول في الحافظة (Clipboard). المشكلة هي أنه يحل محل الأكواد التي قمت بنسخها سابقًا. من الأفضل بكثير إلحاق النص مباشرة بملف الملاحظات اليومية في Obsidian (.md) مع طابع زمني دون المرور بالحافظة.
في بيئة Windows، يمكن حل هذه المشكلة بتشغيل سكريبت AutoHotkey واحد.
VaultPath := "C:\Users\" . A_UserName . "\ObsidianVault\DailyNotes\" . CurrentDate . ".md") وعبارة إضافة النص للملف (FileAppend, %LogEntry%, %VaultPath%, UTF-8).بمجرد الانتهاء من إعداد هذا الأتمتة، سيتم تقليل أكثر من 40 دقيقة كانت تضيع يوميًا في الكتابة والتبديل بين النوافذ إلى حوالي 3 دقائق فقط.
يمكنك أيضًا جعل تنسيق Markdown يتحدد تلقائيًا عند استخدام كلمات تحكم معينة أثناء الحديث. على سبيل المثال، إذا قلت "안건 입력" (إدخال جدول الأعمال)، يتعرف عليها السكريبت ويحولها إلى ترويسة ### 📌 안건، وتتحول "액션 아이템" (عنصر العمل) إلى مربع اختيار #### ✅ 액션 아이템.
يستخدم Handy تنسيق GGML/GGUF القائم على whisper.cpp. وعند تقليل أوزان نموذج FP16 إلى مستوى Q5_1 (5.5 بت) أو Q4_1 (4 بت)، ينخفض استهلاك ذاكرة RAM المتاحة إلى الثلث تقريبًا.
إذا كنت تستخدم MacBook Air M2 أو جهازًا محمولاً بكرت شاشة مدمج، فإن نموذج Whisper Small (Q5_1) مناسب جدًا. فهو لا يضغط على بيئة التطوير قيد التشغيل لأن مساحة القرص المطلوب هي 250 ميجابايت وحجم الذاكرة المستغلة في حدود 350 ميجابايت. أما إذا كانت بيئة المكتب تحتوي على كرت شاشة كافٍ، فيمكنك تحميل نموذج Whisper Large-v3 (Q5_1) لرفع معدل التعرف.
إليك خطوات تحسين سعة الذاكرة المقيمة:
C:\Users\{username}\AppData\Roaming\com.pais.handy\models\) وقم بمسح ملفات النماذج الكبيرة (.bin) التي تقاس بالجيجابايت والتي لا تستخدمها.إن التلعثم الناتج عن اختناق السلاسل النصية (Threads) عند تحويل الاجتماعات الطويلة هو مشكلة في ضبط عدد النوى الفيزيائية. بدلاً من الملاءمة مع عدد النوى المنطقية القائمة على Hyper-Threading، يجب مطابقة عدد السلاسل النصية (n_threads) بنسبة 1:1 مع عدد النوى الفيزيائية الفعلية (actual physical core) ليعمل التطبيق بسلاسة دون استهلاك إضافي ناتج عن التبديل.