ساختن یک برنامه رونویسی با سه کلیک برای استفاده اما بسیار دقیق به نظر سخت می رسد، اما اینطور نیست. بیایید Whisper را به AutoHotkey معرفی کنیم.
Whisper OpenAI یکی از قدرتمندترین راه حل ها برای تبدیل صدای شما به متن است. با این حال، استفاده از Whisper نیز می تواند آزاردهنده باشد، زیرا برای رونویسی یک فایل صوتی به متن باید دستوراتی را تایپ کنید. اما چرا وقتی AutoHotkey داریم این کار را انجام دهیم؟
با AutoHotkey، میتوانیم بدون زحمت یک رابط کاربری گرافیکی پایه برای برنامههای خط فرمان مانند Whisper ایجاد کنیم. بنابراین، بیایید این کار را انجام دهیم و ببینیم چگونه میتوانید برنامه رونویسی خود را با ترکیب ابرقدرتهای ایجاد رابط کاربری گرافیکی AutoHotkey با Whisper OpenAI به عنوان «مغز» پشت دکمهها ایجاد کنید.
پایه گذاری Whisper و AutoHotkey
می توانید با AutoHotkey اسکریپت های جالبی بسازید، اما این تمام کاری نیست که می تواند انجام دهد. برای این پروژه، از AutoHotkey برای ایجاد یک رابط کاربری گرافیکی برای Whisper استفاده می کنیم. این به ما این امکان را می دهد که از ابزار هوش مصنوعی تشخیص صدای OpenAI با کلیک کردن روی دکمه ها و سفارشی کردن عملکرد آن با استفاده از منوها به جای تایپ دستورات استفاده کنیم.
با این حال، این بدان معناست که برای پیگیری باید هم AutoHotkey و هم Whisper را نصب کنید.
برای قسمت اول معادله، می توانید AutoHotkey را از سایت رسمی آن دانلود کنید، سپس نصب کننده آن را اجرا کنید و مراحل ارائه شده را دنبال کنید.
توجه داشته باشید که ما از نسخه قدیمی تر “v1” زبان برنامه نویسی استفاده خواهیم کرد، نه نسخه جدید v2. این مهم است زیرا این دو نسخه از نحو تا حدودی متفاوتی استفاده می کنند. در صورت استفاده از نسخه 2 جدید، آنچه در اینجا خواهیم دید ممکن است کار نکند.
بخش دوم پیچیدهتر است، اما میتوانید با بررسی مقاله ما در مورد چگونگی تبدیل صدای خود به متن با Whisper برای ویندوز OpenAI، نحوه انجام آن را بیاموزید.
با نصب هر دو، برنامه عمل ما به شرح زیر است:
- یک رابط کاربری گرافیکی با عناصر برای متغیرها و مقادیر Whisper ایجاد کنید.
- توابعی برای گرفتن مقادیر از رابط ایجاد کنید، فایل ها و پوشه ها را انتخاب کنید و همه چیز را در یک دستور Whisper قابل استفاده جمع کنید.
- دستور Whisper را اجرا کنید تا نتیجه حاصل شود.
البته، همانطور که در مقاله خود در مورد نحوه شروع تایپ صوتی در ویندوز 11 دیدیم، همیشه میتوانید از پشتیبانی داخلی ویندوز برای تایپ صوتی استفاده کنید. همچنین کندتر).
در یک یادداشت شخصی تر، باید توضیح دهم که من یک برنامه نویس نیستم و این پروژه “ریمیکس” راه حلی است که برای استفاده شخصی ساخته شده است.
چگونه یک اسکریپت کلید خودکار جدید بسازیم
اولین قدم ایجاد یک فایل اسکریپت خالی جدید است. آن را در پوشه خود نگه دارید، فقط در صورتی که تصمیم دارید آن را تغییر دهید یا روی آن بسازید و فایل های بیشتری ایجاد کنید.
- مدیر فایل مورد علاقه خود را اجرا کنید (یا کلیدهای Windows + E را فشار دهید تا Windows Explorer راه اندازی شود) و یک پوشه برای برنامه رونویسی خود در هر جایی که دوست دارید ایجاد کنید.
- روی یک نقطه خالی از پنجره کلیک راست کرده و New > AutoHotkey Script را انتخاب کنید تا یک فایل اسکریپت خالی ایجاد شود.
- Shift + روی فایل کلیک راست کنید تا به منوی زمینه کامل دسترسی پیدا کنید و انتخاب کنید تا با کد یا ویرایشگر متن مورد علاقه خود باز شود. Notepad خود ویندوز این کار را انجام خواهد داد.
- علیرغم اینکه فایل AHK شما “یک اسکریپت خالی” است، از قبل با مقداری “موارد” پر شده است. اینها متغیرها و پرچمهای مفید AutoHotkey هستند که نحوه عملکرد آن روی دسکتاپ شما را مشخص میکنند. آنها را نادیده بگیرید، آنها را به حال خود رها کنید و تمام تایپ های آینده خود را زیر آنها انجام دهید.
آشنایی با پرچم های Whisper
از آنجایی که ما در حال ساخت یک رابط کاربری گرافیکی برای یک برنامه خط فرمان هستیم، مفید است که به متغیرها و پرچمهای اصلی آن اشاره کنیم که در پروژه خود از آنها استفاده خواهیم کرد. میتوانید با خواندن مستندات Whisper، بازدید از صفحه رسمی Github و اجرای آن در ترمینال، آنها را بررسی کنید.
ما مواردی را که در این پروژه استفاده خواهیم کرد را برای راحتی فهرست می کنیم. پیشنهاد می کنیم آنها را به عنوان نظر به اسکریپت خود اضافه کنید (در خطوط جداگانه که هر یک با یک کاراکتر “;” و سپس یک فاصله شروع می شود).
; Whisper Flags:; --initial_prompt PROMPT_TEXT; --output_format txt; -o OUTPUT_FOLDER; --model MODEL_TO_USE; --task TRANSCRIBE/TRANSLATE; --language EN/EL
ایجاد رابط کاربری گرافیکی با AutoHotkey
پیشنهاد می کنیم اسکریپت خود را با استفاده از نظراتی که برای سازماندهی کردن آن انجام دادیم به بخش هایی تقسیم کنید. ما با تعریف برخی از متغیرها شروع می کنیم، به رابط کاربری گرافیکی واقعی ادامه می دهیم و با تعریف توابع آن پایان می دهیم.
ایجاد متغیرهای پنهان
ما با بخشی شروع می کنیم که در آن متغیرهایی را که ممکن است بخواهیم در آینده تغییر دهیم تعریف می کنیم، اما نه آنقدر که بخواهیم آنها را از طریق رابط کاربری گرافیکی در معرض دید قرار دهیم و آن را بیش از حد پیچیده کنیم. می توانید “Variable_Name = محتوا یا مقدار متغیر” را با یک متغیر و جفت مقدار در هر خط تایپ کنید.
برای این پروژه، یک متغیر OutputFormat تعریف کردهایم که آن را روی مقدار «txt» قرار دادهایم و یک متغیر WhisperExecutable که نام فایل اجرایی Whisper را بیان میکند. به این ترتیب، اگر بخواهیم در آینده از راه حل مشابهی برای ایجاد فایل های زیرنویس SRT به جای اسناد TXT یا ارتقاء Whisper/Switch به یک برنامه جایگزین استفاده کنیم، می توانیم مقادیر آن متغیرها را در آن نقطه به جای کل اسکریپت تنظیم کنیم. .
OutputFormat = txtWhisperExecutable = whisper
راه اندازی گزینه های کاربر
هنگام استفاده از Whisper در خط فرمان، سه پرچم آن به شما امکان می دهد تعریف کنید:
- اگر در حال ترجمه یا رونویسی هستید
- زبان فایل صوتی
- مدل زبانی که میخواهید استفاده کنید (اندازههای مختلف موجود است که هر کدام بر عملکرد در مقابل کیفیت نتایج تأثیر میگذارند).
ساده ترین راه برای ارائه عملکردهای مشابه از طریق رابط کاربری گرافیکی، از طریق لیست های کشویی آزمایش شده و آزمایش شده است. نحو برای افزودن یک لیست کشویی به رابط کاربری گرافیکی AutoHotkey به شرح زیر است:
Gui, Add, DropDownList, xPosition yPosition wWidth hHeight vVariable_that_will_hold_selected_value, optionA|optionB|default_optionC||optionD|
بر این اساس، بیایید سه لیست کشویی برای انتخاب زبان Whisper (بین انگلیسی/en و یونانی/el)، مدل (ریز، پایه، کوچک، متوسط، بزرگ) و نوع کار (رونویسی یا ترجمه) به اسکریپت خود اضافه کنیم. .
Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, tiny|base|small||medium|large|
Gui, Add, DropDownList, x345 y5 w165 h100 vTaskType, transcribe||translate|
برای تنظیم یک گزینه به عنوان انتخاب پیش فرض، از علامت دو لوله (“|”) بعد از آن استفاده کنید. می بینید که در مثال ما زبان خود را en، SelectedModel را کوچک، و TaskType را برای رونویسی تنظیم کرده ایم.
چگونه Whisper را راهنمایی کنیم
از آنجایی که Whisper مبتنی بر هوش مصنوعی است، هیچ راهی برای کنترل کامل بر نحوه رونویسی صدا توسط Whisper وجود ندارد. این آزاد است که آنچه را که بهینه می داند انتخاب کند.
با این حال، مانند سایر راه حل های هوش مصنوعی، Whisper می تواند درخواست های کاربر را بپذیرد. با ایجاد یک درخواست، میتوانید نحوه رونویسی صدای شما را راهنمایی کنید.
آیا راه حلی که ما می سازیم نتوانست چیزی را به درستی رونویسی کند؟ میتوانید به Whisper «توضیح دهید» «فایل صوتی در مورد چیست»، از جمله نحو کلمات، کلمات اختصاری، و عبارات در درخواست شما همانطور که میخواهید در رونویسی ظاهر شوند. برای آن، یک قسمت AutoHotkey Text Edit اضافه می کنیم.
نحو با آنچه که برای افزودن لیست های کشویی در بالا استفاده کردیم خیلی متفاوت نیست:
Gui, Add, Edit, x5 w505 h400 vPromptText, %PromptText%
“%PromptText%” در انتها به AHK می گوید که محتوای متغیر PromptText (اگر قبلاً مقداری به آن اختصاص داده شده است) را در قسمت متن نشان دهد. چیزی در اسکریپتی که ما می سازیم نشان نمی دهد، اما آن را به عنوان یک مکان نگهدار برای زمانی در نظر بگیرید که در آینده اسکریپت را تغییر دهید، همچنین برای ذخیره و بارگذاری درخواست ها!
آیا ترجیح می دهید یک مقدار از پیش تعریف شده به متغیر PromptText اختصاص دهید؟ چیزی شبیه به زیر را به بخش Variables اسکریپت اضافه کنید. به یاد داشته باشید که “نام شما” را با نام واقعی خود جایگزین کنید.
PromptText = Transcription of Your Name's notes
تنظیم دکمه های عمل
برای انتخاب فایلها، پوشهها و اجرای Whisper بعد از اینکه همه چیز را تنظیم کردیم، بهتر است از دکمهها استفاده کنید. با استفاده از موارد زیر می توانید دکمه هایی را به یک رابط ساخته شده AHK اضافه کنید:
Gui, Add, Button, xPosition yPosition wWidth hHeight gFunction_To_Perform, Button Text
توجه داشته باشید که برخلاف متغیرهای عناصر رابط کاربری گرافیکی که با حرف “v” شروع می شوند، نام توابع با “g” شروع می شود، برای “برو (به این نقطه از اسکریپت)”.
یک دکمه از یک رابط AHK همچنین می تواند “پیش فرض” در نظر گرفته شود، که اگر در جایی از رابط کاربری گرافیکی کلیک نکنید و Enter را فشار دهید فعال می شود. این با اضافه کردن “پیش فرض” در بخش مختصات و عملکرد تعریف می شود، همانطور که در دکمه “OK” ما متوجه خواهید شد:
Gui, Add, Button, x5 w505 h50 gSelectFile, Load FileGui, Add, Button, x5 w505 h50 gSelectFolder, Choose Output Folder
Gui, Add, Button, Default x5 w505 h50 gButtonSubmit, OK
با موارد فوق، ما سه دکمه را تعریف می کنیم:
- یکی با برچسب “Load File” که با کلیک بر روی آن، تابع SelectFile را اجرا می کند.
- یکی با برچسب “Choose Output Folder” که تابع SelectFolder را اجرا می کند.
- یکی با برچسب “OK” که به طور پیش فرض انتخاب شده است، تابع ButtonSubmit را “تلفن می کند”.
چگونه رابط کاربری گرافیکی خود را نشان دهیم
رابط کاربری گرافیکی ما آماده است اما روی صفحه نمایش ما ظاهر نمی شود زیرا ما به AutoHotkey “نگفتیم” که آن را نشان دهد یا هر دکمه چه کاری باید انجام دهد.
برای آن، دو خط زیر را که رابط کاربری گرافیکی شما را تعریف می کنند، اضافه کنید:
Gui, ShowReturn
خط اول به AHK می گوید که پنجره رابط کاربری گرافیکی را نشان دهد، در حالی که خط دوم پایان بخش را نشان می دهد.
توابع و عملکرد برنامه ما
اگرچه ما بخش رابط کاربری گرافیکی را تکمیل کردهایم، اگر بخواهید اسکریپت را اجرا کنید، خراب میشود. دلیلش این است که ما به توابع غیر موجود در آن ارجاع می دهیم. بنابراین، حرکت بعدی ما ایجاد آن توابع است.
سه تابع مورد نظر ما عبارتند از:
- یک فایل ورودی را انتخاب کنید.
- پوشه خروجی که فایل رونویسی شده در آن ذخیره می شود را انتخاب کنید.
- دستوری بسازید که همه متغیرها را در یک دستور Whisper قابل استفاده، شبیه به آنچه که خودمان در ترمینال تایپ میکنیم، “مونتاژ” کند و سپس آن را اجرا کند.
انتخاب فایل ورودی
اولین تابعی که قبلاً وقتی دکمه آن را به رابط کاربری گرافیکی اضافه کردیم آن را “SelectFile” نامیدیم، این است:
SelectFile:FileSelectFile, SelectedFileReturn
FileSelectFile یک تابع AutoHotkey است که درخواست کننده فایل معمولی را نمایش می دهد و به کاربر امکان می دهد یک فایل را انتخاب کند. SelectedFile متغیری در اسکریپت ما است که مسیر فایلی را که کاربر انتخاب کرده نگه می دارد.
با این حال، همانطور که در اسکرین شات های ما خواهید دید، ما خط زیر را درست بالای “بازگشت” با پایان تابع اضافه کرده ایم:
MsgBox, %SelectedFile%
این باعث می شود که AHK یک جعبه پیام را با فایل انتخابی پس از انتخاب آن نشان دهد، که هنگام عیب یابی اسکریپت شما مفید است. اگر این کادر پیام مسیر و نام فایل انتخابی شما را نشان میدهد، این دکمه یا عملکرد انتخاب فایل شما نیست که نیاز به اصلاح دارد.
انتخاب پوشه خروجی
عملکرد انتخاب یک پوشه تقریباً یکسان است و فقط نام فرمان و متغیر تغییر می کند تا نشان دهد به جای فایل با پوشه ها سروکار داریم:
SelectFolder:FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Return
عملکرد نهایی
عملکرد نهایی پیچیده ترین خواهد بود. با نگاشت دکمه OK، تمام مقادیر متغیر را از رابط کاربری گرافیکی جمع آوری می کند، آنها را به یک دستور قابل استفاده تبدیل می کند و سپس آن را اجرا می کند.
با بیان ابتدا و انتهای تابع شروع می کنیم:
ButtonSubmit:Return
برای “گرفتن” تمام مقادیر رابط کاربری گرافیکی، موارد زیر را در زیر خط ButtonSubmit اضافه کنید:
Gui Submit, nohide
خط زیر یک متغیر جدید به نام “WhisperFlags” ایجاد می کند. سپس تمام متغیرهای رابط کاربری گرافیکی را به عنوان پرچم فرمان Whisper به آن اضافه می کند.
WhisperFlags = --initial_prompt "%PromptText%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%SelectedFolder%" "%SelectedFile%"
در مرحله بعد، به AHK میگوییم که از ترمینال پیشفرض (CMD.exe) برای اجرای فایل اجرایی Whisper (که با متغیر WhisperExecutable تعریف کردیم) با متغیرهای رابط کاربری گرافیکی (که اکنون در متغیر WhisperFlags مونتاژ شدهاند) استفاده کند.
RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%
برای عیبیابی آسانتر، مانند قبل، یک msgbox نیز اضافه کردهایم، اما خط زیر را نیز اضافه کردهایم:
Clipboard = %WhisperExecutable% %WhisperFlags%
این دستور کامل صادر شده به CMD را در کلیپ بورد کپی می کند. بنابراین، اگر چیزی ناموفق باشد، به جای اینکه دستور را فقط در یکی از کادرهای پیام AHK ببینید، آن را در کلیپ بورد خود نیز در دسترس خواهید داشت.
یک ترمینال را باز کنید، دستور را از کلیپ بورد بچسبانید و خطاهایی را که برای یافتن مشکلات احتمالی ظاهر می شوند بررسی کنید.
به عنوان مثال، در حین کار بر روی فیلمنامه، ابتدا فراموش کردم که دستور را در داخل گیومه قرار دهم. بنابراین، فرمان شکست خورد، زیرا Whisper سعی کرد دستور را به عنوان پرچم تجزیه کند.
تست و ترفندهای نهایی
همین بود—ما به تازگی یک برنامه رونویسی با استفاده از قابلیتهای ساخت رابط کاربری گرافیکی AutoHotkey و یک راهحل آماده برای رونویسی هوش مصنوعی ایجاد کردهایم.
اسکریپت خود را اجرا کنید (روی فایل آن دوبار کلیک کنید)، و باید رابط کاربری گرافیکی خود را روی صفحه نمایش خود ببینید.
- تنظیمات Whisper را با استفاده از لیست های کشویی در بالا تغییر دهید.
- شرح کوتاهی از رونویسی خود (و برخی اصطلاحات) را در قسمت Prompt تایپ کنید.
- روی دکمه Load File کلیک کنید و فایل صوتی را که می خواهید رونویسی کنید انتخاب کنید.
- روی دکمه Choose Output Folder کلیک کنید و محل ذخیره فایل متنی تولید شده را انتخاب کنید.
- روی OK کلیک کنید تا Whisper، همانطور که توسط رابط کاربری گرافیکی شما پیکربندی شده است، بر روی فایل صوتی انتخابی خود باز شود و رونویسی آن را به عنوان یک فایل متنی در پوشه ای که انتخاب کرده اید ذخیره کنید.
اگر همه چیز جواب داد، به اسکریپت خود برگردید و تمام قابلیت های عیب یابی (جعبه های پیام و خطوط کپی در کلیپ بورد) را حذف یا نظر دهید (با افزودن یک “;” در ابتدای آنها).
ادامه Whisper با AutoHotkey
با تنظیم صحیح مقادیر پیشفرض رابط کاربری گرافیکی خود و شاید افزودن یک اعلان عمومی، میتوانید Whisper را به یک راهحل با سه کلیک برای رونویسی تبدیل کنید: بدون پرداخت هزینه برای راهحلهای تجاری، خدمات شخص ثالث، سر و کله زدن با رابطهای پیچیده، یا تایپ کردن یک ترمینال