يبدو أن إنشاء تطبيق نسخ بثلاث نقرات ولكن عالي الدقة أمر صعب ، لكنه ليس كذلك. دعنا نقدم Whisper إلى AutoHotkey.

يعد Whisper من OpenAI أحد أقوى الحلول لتحويل صوتك إلى نص. ومع ذلك ، يمكن أن يكون استخدام Whisper مزعجًا أيضًا ، حيث يتعين عليك كتابة أوامر لتحويل ملف صوتي إلى نص. لكن لماذا نفعل ذلك عندما يكون لدينا AutoHotkey؟

باستخدام AutoHotkey ، يمكننا بسهولة إنشاء واجهة المستخدم الرسومية الأساسية لتطبيقات سطر الأوامر مثل Whisper. لذا ، لنفعل ذلك ونرى كيف يمكنك إنشاء تطبيق النسخ الخاص بك عن طريق الجمع بين القوى الخارقة لصنع واجهة المستخدم الرسومية لـ AutoHotkey مع Whisper من OpenAI باعتباره "العقل" وراء الأزرار.

وضع أسس Whisper و AutoHotkey

يمكنك عمل نصوص رائعة باستخدام AutoHotkey، ولكن هذا ليس كل ما يمكنه فعله. بالنسبة لهذا المشروع ، سنستخدم AutoHotkey لإنشاء واجهة مستخدم رسومية لـ Whisper. سيسمح لنا ذلك باستخدام أداة الذكاء الاصطناعي للتعرف على الصوت من OpenAI عن طريق النقر فوق الأزرار وتخصيص وظائفها باستخدام القوائم بدلاً من كتابة الأوامر.

ومع ذلك ، هذا يعني أنك ستحتاج إلى تثبيت كل من AutoHotkey و Whisper للمتابعة.

instagram viewer

بالنسبة للجزء الأول من المعادلة ، يمكنك ذلك قم بتنزيل AutoHotkey من موقعه الرسمي، ثم قم بتشغيل برنامج التثبيت الخاص به واتبع الخطوات المقدمة.

لاحظ أننا سنستخدم الإصدار الأقدم "v1" من لغة البرمجة النصية ، وليس الإصدار 2 الجديد. هذا مهم لأن النسختين تستخدمان بناء جملة مختلفًا إلى حد ما. ما سنراه هنا قد لا يعمل إذا كنت تستخدم الإصدار 2 الجديد.

الجزء الثاني أكثر تعقيدًا ، ولكن يمكنك معرفة كيفية القيام بذلك من خلال مراجعة مقالتنا على كيفية تحويل صوتك إلى نص باستخدام برنامج Whisper لنظام التشغيل Windows من OpenAI.

مع تثبيت كلاهما ، فإن خطة عملنا هي كما يلي:

  1. قم بإنشاء واجهة مستخدم رسومية تحتوي على عناصر لمتغيرات وقيم Whisper.
  2. قم بإنشاء وظائف للحصول على القيم من الواجهة ، وتحديد الملفات والمجلدات ، وتجميع كل شيء في أمر Whisper قابل للاستخدام.
  3. قم بتشغيل أمر Whisper للحصول على نتائج.

بالطبع ، يمكنك دائمًا استخدام دعم Windows المدمج للكتابة الصوتية ، كما رأينا في مقالتنا على كيف تبدأ الكتابة الصوتية على Windows 11. ومع ذلك ، كما سترى أثناء استخدامه ، فإن Whisper أكثر دقة (ولكن أبطأ أيضًا).

في ملاحظة شخصية أكثر ، يجب أن أوضح أنني لست مبرمجًا ، وأن هذا المشروع عبارة عن "ريمكس" لحل مصمم للاستخدام الشخصي.

كيفية عمل برنامج نصي جديد لمفتاح AutoHotkey

الخطوة الأولى هي إنشاء ملف نصي جديد فارغ. احتفظ به في المجلد الخاص به ، فقط في حالة ما إذا قررت تعديله أو البناء عليه ، وإنشاء المزيد من الملفات.

  1. قم بتشغيل مدير الملفات المفضل لديك (أو اضغط على مفتاح Windows + ه لتشغيل Windows Explorer) وإنشاء مجلد لتطبيق النسخ في أي مكان تريده.
  2. انقر بزر الماوس الأيمن فوق بقعة فارغة من النافذة وحدد جديد > برنامج نصي AutoHotkey لإنشاء ملف نصي فارغ.
  3. Shift + انقر بزر الماوس الأيمن فوق الملف للوصول إلى قائمة السياق الكاملة وحدد لفتحه بالرمز المفضل لديك أو محرر النصوص. Windows الخاصة المفكرة سوف تفعل.
  4. على الرغم من كونه "نصًا فارغًا" ، إلا أنه سيتم بالفعل ملء ملف AHK مسبقًا ببعض "العناصر". هذه متغيرات وعلامات AutoHotkey مفيدة تحدد كيفية عملها على سطح المكتب. تجاهلهم ، اتركهم كما هم ، وافعل كل ما تبذلونه من الكتابة في المستقبل تحتها.

التعرف على أعلام Whisper

نظرًا لأننا نصمم واجهة المستخدم الرسومية لتطبيق سطر الأوامر ، فمن السهل الحصول على مرجع للمتغيرات الرئيسية والعلامات التي سنستخدمها في مشروعنا. يمكنك التحقق منها من خلال قراءة وثائق Whisper ، وزيارة صفحتها الرسمية على Githubوتشغيله في جهازك الطرفي.

سنقوم بإدراج تلك التي سنستخدمها في هذا المشروع للراحة. نقترح عليك إضافتها إلى البرنامج النصي الخاص بك كتعليقات (في سطور منفصلة ، كل منها يبدأ بحرف "؛" متبوعًا بمسافة).

; أعلام الهمس: ؛ --initial_prompt PROMPT_TEXT ؛ --output_format txt ؛ -o OUTPUT_FOLDER ؛ - نموذج MODEL_TO_USE ؛ - مهمة الترجمة / الترجمة ؛ - اللغة EN / EL

إنشاء واجهة المستخدم الرسومية باستخدام AutoHotkey

نقترح عليك تقسيم النص إلى أقسام باستخدام التعليقات كما فعلنا لإبقائه منظمًا. سنبدأ بتحديد بعض المتغيرات ، ثم ننتقل إلى واجهة المستخدم الرسومية الفعلية ، وننتهي بتحديد وظائفها.

نبدأ بقسم حيث سنحدد المتغيرات التي قد نرغب في تغييرها في المستقبل ، ولكن ليس كثيرًا لدرجة أننا نرغب في كشفها من خلال واجهة المستخدم الرسومية ، مما يزيد من تعقيدها. يمكنك كتابة "Variable_Name = محتوى أو قيمة المتغير" بمتغير واحد وزوج قيم لكل سطر.

بالنسبة لهذا المشروع ، قمنا بتعريف ملف تنسيق الإخراج المتغير الذي قمنا بتعيينه على "رسالة قصيرة"قيمة وأ الهمس بيان متغير اسم ملف Whisper القابل للتنفيذ. بهذه الطريقة ، إذا أردنا استخدام نفس الحل في المستقبل لإنشاء ملفات ترجمة SRT بدلاً من مستندات TXT أو الترقية Whisper / التبديل إلى تطبيق بديل ، يمكننا ضبط قيم تلك المتغيرات في تلك البقعة الواحدة بدلاً من امتدادها النصي.

OutputFormat = txtWhisperExecutable = whisper

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

عند استخدام Whisper في سطر الأوامر ، تسمح لك ثلاثة من أعلامه بتعريف:

  • إذا كنت تفعل ترجمة أو النسخ
  • ملف الصوت لغة
  • اللغة نموذج تريد استخدامه (تتوفر أحجام مختلفة ، يؤثر كل منها على الأداء مقابل جودة النتائج).

أسهل طريقة لتقديم الوظيفة نفسها من خلال واجهة المستخدم الرسومية هي من خلال القوائم المنسدلة التي تم تجربتها واختبارها. بناء الجملة لإضافة قائمة منسدلة إلى AutoHotkey GUI كما يلي:

Gui، Add، DropDownList، xPosition yPosition wWidth hHeight vVariable_that_will_hold_selected_value، optionA | optionB | default_optionC || optionD |

بناءً على ذلك ، دعنا نضيف ثلاث قوائم منسدلة إلى البرنامج النصي الخاص بنا لاختيار لغة Whisper (بين الإنجليزية / الإنجليزية واليونانية / el) ، والنموذج (صغير ، أساسي ، صغير ، متوسط ​​، كبير) ، ونوع المهمة (نسخ أو يترجم).

Gui، Add، DropDownList، x5 y5 w165 h50 vSelectedLanguage، en || el
Gui، Add، DropDownList، x175 y5 w165 h100 vSelectedModel صغير | قاعدة | صغيرة || متوسطة | كبيرة |
Gui، Add، DropDownList، x345 y5 w165 h100 vTaskType، transcribe || translate |

لتعيين خيار على أنه التحديد الافتراضي ، استخدم رمز خط مزدوج ("|") بعده. يمكنك أن ترى أنه في مثالنا ، قمنا بتعيين لغتنا على en، SelectedModel to صغيرو TaskType إلى نسخ.

كيفية توجيه الهمس

نظرًا لأن Whisper يعتمد على AI ، فلا توجد طريقة للتحكم المطلق في كيفية قيام Whisper بنسخ الصوت. إنه حر في اختيار ما يعتبره الأفضل.

ومع ذلك ، مثل حلول الذكاء الاصطناعي الأخرى ، يمكن لـ Whisper قبول مطالبات المستخدم. من خلال صياغة موجه ، يمكنك "توجيه" كيفية نسخ الصوت الخاص بك.

هل فشل الحل الذي نصنعه في نسخ شيء ما بشكل صحيح؟ يمكنك محاولة "شرح" للهمس "ما هو ملف الصوت" ، بما في ذلك بناء جملة الكلمات والاختصارات والعبارات في موجهك كما تريد أن تظهر في النسخ. لذلك ، سنضيف حقل AutoHotkey Text Edit.

لا يختلف بناء الجملة كثيرًا عما استخدمناه لإضافة القوائم المنسدلة أعلاه:

واجهة المستخدم الرسومية ، إضافة ، تحرير ، x5 w505 h400 vPromptText ،٪ PromptText٪

يخبر "٪ PromptText٪" في النهاية "AHK بإظهار محتوى متغير PromptText (إذا تم تعيين قيمة له بالفعل) داخل حقل النص. لن يُظهر أي شيء في البرنامج النصي الذي نقوم بإنشائه ، ولكن اعتبره عنصرًا نائبًا عندما تقوم في النهاية بتعديل البرنامج النصي في المستقبل أيضًا لحفظ المطالبات وتحميلها!

هل تفضل تعيين قيمة محددة مسبقًا لـ نص موجه عامل؟ أضف شيئًا مثل ما يلي إلى ملف المتغيرات قسم من البرنامج النصي. تذكر استبدال "اسمك" باسمك الفعلي.

PromptText = نسخ ملاحظات اسمك

إعداد أزرار العمل

لاختيار الملفات والمجلدات وتشغيل Whisper بعد أن قمنا بإعداد كل شيء ، فمن الأفضل استخدام الأزرار. يمكنك إضافة أزرار إلى واجهة من صنع AHK باستخدام ما يلي:

Gui ، Add ، Button ، xPosition yPosition wWidth hHeight gFunction_To_Perform، Button Text

لاحظ أنه على عكس المتغيرات في عناصر واجهة المستخدم الرسومية ، والتي تبدأ بالحرف "v" ، تبدأ أسماء الوظائف بـ "g" ، لـ "Go (إلى هذا المكان من البرنامج النصي)".

يمكن أيضًا اعتبار زر واحد لواجهة AHK "الزر الافتراضي" ، والذي سيتم تنشيطه إذا لم تنقر في أي مكان على واجهة المستخدم الرسومية وتضغط يدخل. يتم تحديد ذلك من خلال إضافة "تقصير"في قسم الإحداثيات والوظيفة ، كما ستلاحظ في زر" موافق ":

واجهة المستخدم الرسومية ، إضافة ، زر ، x5 ، عرض 505 ، ارتفاع 50 جم ، حدد الملف ، حمولة FileGui ، يضيف، زر، x5 w505 h50 g يختارانتاج | مجلد
إضافة زر تقصير x5 ، عرض 505 ، ارتفاع 50 جرام ، زر الإرسال ، حسنًا

مع ما سبق ، نحدد ثلاثة أزرار:

  • واحد بعنوان "تحميل الملف"هذا ، عند النقر عليه ، سيشغل ملف حدد ملف وظيفة.
  • واحد بعنوان "اختر مجلد الإخراج"، والذي سيشغل ملف اختر مجلد وظيفة.
  • واحد بعنوان "نعم"، المحدد افتراضيًا ،" يستدعي "ملف زر وظيفة.

كيفية إظهار واجهة المستخدم الرسومية الخاصة بك

واجهة المستخدم الرسومية جاهزة ولكنها لن تظهر على شاشتنا لأننا لم "نقول" لمفتاح AutoHotkey لإظهاره أو ما يجب أن يفعله كل زر.

لذلك ، أضف السطرين التاليين أسفل تلك التي تحدد واجهة المستخدم الرسومية الخاصة بك:

Gui ، ShowReturn

السطر الأول "يخبر" AHK بإظهار نافذة واجهة المستخدم الرسومية ، بينما يشير السطر الثاني إلى نهاية القسم.

وظائف ووظائف تطبيقنا

على الرغم من أننا أكملنا قسم واجهة المستخدم الرسومية ، إذا حاولت تشغيل البرنامج النصي ، فسوف يتعطل. هذا لأننا نشير إلى وظائف غير موجودة فيه. إذن ، خطوتنا التالية هي إنشاء تلك الوظائف.

الوظائف الثلاث التي نريدها هي:

  • حدد ملف الإدخال.
  • حدد مجلد الإخراج حيث سيتم تخزين الملف المكتوب.
  • قم بصياغة أمر من شأنه "تجميع" كل المتغيرات في أمر Whisper قابل للاستخدام ، على غرار ما نكتبه بأنفسنا في Terminal ، ثم نقوم بتشغيله.

تحديد ملف الإدخال

الوظيفة الأولى التي أطلقنا عليها اسم "حدد ملف"عندما أضفنا الزر الخاص به إلى واجهة المستخدم الرسومية ، يكون:

حدد ملف: FileSelectFile, SelectedFileReturn

ملف اختر ملف هي وظيفة AutoHotkey تعرض طلب ملف نموذجي ، مما يسمح للمستخدم بتحديد ملف. الملف المحدد هو المتغير في البرنامج النصي الخاص بنا والذي سيحافظ على مسار الملف الذي حدده المستخدم.

ومع ذلك ، كما سترى في لقطات الشاشة الخاصة بنا ، فقد أضفنا أيضًا السطر التالي مباشرةً فوق "إرجاع" نهاية الوظيفة:

MsgBox ،٪ SelectedFile٪

سيكون لهذا AHK عرض صندوق الرسائل باستخدام الملف المحدد بعد اختياره ، وهو أمر مفيد عند استكشاف أخطاء البرنامج النصي الخاص بك. إذا أظهر مربع الرسالة هذا مسار الملف المحدد واسمه ، فلن يتطلب الأمر إصلاح زر أو وظيفة تحديد الملف.

تحديد مجلد الإخراج

وظيفة اختيار مجلد متطابقة تقريبًا ، مع تغيير اسم الأمر ومتغيره فقط ، لإظهار أننا نتعامل مع المجلدات بدلاً من الملفات:

SelectFolder: FileSelectFolder، SelectedFolderMsgBox،٪ SelectedFolder٪يعود

الوظيفة النهائية

ستكون الوظيفة النهائية هي الأكثر تعقيدًا. عند تعيينه على الزر "موافق" ، سيقوم هذا "بجمع" جميع القيم المتغيرة من واجهة المستخدم الرسومية ، وتحويلها إلى أمر قابل للاستخدام ، ثم تشغيله.

نبدأ بذكر بداية الوظيفة ونهايتها:

زريعود

من أجل "انتزاع" جميع قيم واجهة المستخدم الرسومية ، أضف ما يلي ضمن ملف زر خط:

إرسال Gui ، nohide

ينشئ السطر التالي متغيرًا جديدًا يسمى "WhisperFlags". ثم يضيف إليها جميع متغيرات واجهة المستخدم الرسومية كأعلام لأمر Whisper.

WhisperFlags = --initial_prompt "٪ PromptText٪" --المهمة٪ TaskType٪ --model٪ SelectedModel٪ --language٪ SelectedLanguage٪ --output_format٪ OutputFormat٪ -o "٪ SelectedFolder٪""٪ SelectedFile٪"

بعد ذلك ، سنطلب من AHK استخدام المحطة الافتراضية (CMD.exe) لتشغيل ملف Whisper القابل للتنفيذ (الذي حددناه باستخدام الهمس متغير) مع متغيرات واجهة المستخدم الرسومية (التي يتم تجميعها الآن في ملف واحد WhisperFlags عامل).

RunWait ، cmd.exe / c٪ WhisperExecutable٪٪ WhisperFlags٪

لتسهيل استكشاف الأخطاء وإصلاحها ، أضفنا أيضًا msgbox ، كما كان من قبل ، لكننا أضفنا أيضًا السطر التالي:

الحافظة =٪ WhisperExecutable٪٪ WhisperFlags٪

سيتم نسخ هذا إلى الحافظة صدر الأمر الكامل إلى CMD. لذلك ، إذا فشل شيء ما ، فبدلاً من رؤية الأمر في أحد مربعات رسائل AHK فقط ، سيكون متاحًا أيضًا في الحافظة الخاصة بك.

افتح Terminal ، والصق الأمر من الحافظة ، وتحقق من الأخطاء المنبثقة لتحديد المشاكل المحتملة.

على سبيل المثال ، أثناء العمل على البرنامج النصي ، نسيت في البداية أن يكون الموجه محاطًا بعلامات اقتباس. وهكذا ، فشل الأمر ، لأن Whisper حاول تحليل الموجه كأعلام.

الاختبار والتعديل النهائي

كان هذا هو - لقد أنشأنا للتو تطبيقًا للنسخ باستخدام إمكانات إنشاء واجهة المستخدم الرسومية لـ AutoHotkey وحل النسخ AI الجاهز للاستخدام.

حاول تشغيل البرنامج النصي (انقر نقرًا مزدوجًا فوق الملف الخاص به) ، وسترى واجهة المستخدم الرسومية على شاشتك.

  • قم بتغيير إعدادات Whisper باستخدام القوائم المنسدلة في الأعلى.
  • اكتب وصفًا موجزًا ​​للنسخ النصي الخاص بك (وبعض المصطلحات) في ملف اِسْتَدْعَى مجال.
  • انقر على تحميل الملف زر واختر ملف الصوت الذي تريد نسخه.
  • انقر على اختر مجلد الإخراج زر وحدد مكان تخزين الملف النصي الناتج.
  • انقر فوق نعم لإطلاق Whisper ، كما تم تكوينه بواسطة واجهة المستخدم الرسومية ، على ملف الصوت المحدد ، وحفظ نسخه كملف نصي في المجلد الذي حددته.

إذا نجح كل شيء ، فارجع إلى البرنامج النصي الخاص بك وقم إما بحذف أو التعليق (عن طريق إضافة "؛" في البداية) جميع وظائف استكشاف الأخطاء وإصلاحها (مربعات الرسائل وخطوط النسخ إلى الحافظة).

أخذ المزيد من الهمس مع AutoHotkey

من خلال تعيين القيم الافتراضية لواجهة المستخدم الرسومية بشكل صحيح وربما إضافة موجه عام ، يمكنك تحويل Whisper إلى ملف حل ثلاثي النقرات للنسخ: عدم الدفع مقابل الحلول التجارية أو خدمات الجهات الخارجية أو العبث بالواجهات المعقدة أو الكتابة في المحطة.