Създаването на приложение за транскрипция с три щраквания, но много точно, звучи трудно, но не е. Нека представим Whisper на AutoHotkey.

Whisper на OpenAI е едно от най-мощните решения за превръщане на вашия глас в текст. Използването на Whisper обаче може да бъде и досадно, тъй като трябва да въвеждате команди, за да транскрибирате аудио файл в текст. Но защо да го правим, когато имаме AutoHotkey?

С AutoHotkey можем без усилие да създадем основен GUI за приложения от командния ред като Whisper. И така, нека направим това и да видим как можете да създадете свое собствено приложение за транскрипция, като комбинирате суперсилите за създаване на GUI на AutoHotkey с Whisper на OpenAI като „мозък“ зад бутоните.

Полагане на основите за Whisper и AutoHotkey

Можете да правите страхотни скриптове с AutoHotkey, но това не е всичко, което може да направи. За този проект ще използваме AutoHotkey, за да създадем GUI за Whisper. Това ще ни позволи да използваме инструмента за изкуствен интелект на OpenAI за гласово разпознаване, като щракваме върху бутони и персонализираме функционалността му с помощта на менюта, вместо да въвеждаме команди.

instagram viewer

Това обаче означава, че ще трябва да имате инсталирани AutoHotkey и Whisper, за да следвате.

За първата част от уравнението можете изтеглете AutoHotkey от официалния му сайт, след това стартирайте неговия инсталатор и следвайте представените стъпки.

Имайте предвид, че ще използваме по-старата версия "v1" на скриптовия език, а не новата v2. Това е важно, защото двете версии използват донякъде различен синтаксис. Това, което ще видим тук, може да не работи, ако използваме новата v2.

Втората част е по-сложна, но можете да научите как да го направите, като проверите нашата статия за как да превърнете гласа си в текст с Whisper за Windows на OpenAI.

След като и двете са инсталирани, нашият план за действие е следният:

  1. Създайте GUI с елементи за променливите и стойностите на Whisper.
  2. Създайте функции, за да вземете стойности от интерфейса, да изберете файлове и папки и да сглобите всичко в използваема команда Whisper.
  3. Изпълнете командата Whisper, за да получите резултати.

Разбира се, винаги можете да използвате вградената поддръжка на Windows за въвеждане с глас, както видяхме в нашата статия за как да стартирате гласово въвеждане в Windows 11. Все пак, както ще видите, докато го използвате, Whisper е много по-точен (но и по-бавен).

В по-лична бележка трябва да обясня, че не съм програмист и този проект е „ремикс“ на решение, направено за лична употреба.

Как да направите нов AutoHotkey скрипт

Първата стъпка е да създадете нов празен файл със скрипт. Съхранявайте го в собствена папка, само в случай, че решите да го промените или надстроите върху него, създавайки още файлове.

  1. Стартирайте любимия си файлов мениджър (или натиснете Windows ключ + д за стартиране на Windows Explorer) и създайте папка за вашето приложение за транскрипция, където желаете.
  2. Щракнете с десния бутон върху празно място в прозореца и изберете Нов > AutoHotkey скрипт за да създадете празен скрипт файл.
  3. Shift + Щракнете с десен бутон върху файла за достъп до пълното контекстно меню и изберете да го отворите с любимия си код или текстов редактор. Собствен Windows Бележник ще го направя.
  4. Въпреки че е "празен скрипт", вашият AHK файл вече ще бъде предварително попълнен с някои "неща". Това са полезни променливи и флагове на AutoHotkey, които определят как трябва да работи на вашия работен плот. Игнорирайте ги, оставете ги такива, каквито са, и направете цялото си бъдещо въвеждане под тях.

Запознаване с флаговете на Whisper

Тъй като правим GUI за приложение от команден ред, е удобно да имаме препратка към неговите основни променливи и флагове, които ще използваме в нашия проект. Можете да ги проверите, като прочетете документацията на Whisper, като посетите неговата официална страница в Github, и да го стартирате във вашия терминал.

Ще изброим тези, които ще използваме в този проект за удобство. Предлагаме ви да ги добавите към вашия скрипт като коментари (в отделни редове, всеки от които започва със знака ";", последван от интервал).

; Whisper Flags:; --initial_prompt PROMPT_TEXT; --изходен_формат txt; -o ИЗХОДНА_ПАПКА; --модел MODEL_TO_USE; --задача TRANSCRIBE/TRANSLATE; --език EN/EL

Създаване на GUI с AutoHotkey

Предлагаме ви да разделите скрипта си на секции, като използвате коментари, както направихме ние, за да го поддържаме организиран. Ще започнем с дефиниране на някои променливи, ще продължим към действителния GUI и ще завършим с дефиниране на неговите функции.

Започваме с раздел, в който ще дефинираме променливи, които може да искаме да променим в бъдеще, но не толкова често, че да искаме да ги изложим чрез GUI, което го усложнява прекалено. Можете да въведете „Име_на_променлива = Съдържание или стойност на променливата“ с една двойка променлива и стойност на ред.

За този проект сме дефинирали a Изходен формат променлива, която задаваме на "текст" стойност и а WhisperИзпълним посочване на променлива Име на изпълнимия файл на Whisper. По този начин, ако искаме да използваме същото решение в бъдеще за създаване на SRT файлове със субтитри вместо TXT документи или надграждане Прошепнете/превключете към алтернативно приложение, можем да коригираме стойностите на тези променливи на това едно място, вместо навсякъде сценарий.

OutputFormat = txtWhisperExecutable = шепот

Настройка на потребителските опции

Когато използвате Whisper в командния ред, три от неговите флагове ви позволяват да дефинирате:

  • Ако правите превод или транскрипция
  • Аудио файлът език
  • Езика модел искате да използвате (налични са различни размери, всеки от които влияе върху производителността СРЕЩУ качеството на резултатите).

Най-лесният начин да предложите същата функционалност чрез GUI е чрез изпитани и тествани падащи списъци. Синтаксисът за добавяне на падащ списък към AutoHotkey GUI е както следва:

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, малък|базов|малък||среден|голям|
Gui, Добавяне, DropDownList, x345 y5 w165 h100 vTaskType, транскрибиране||превод|

За да зададете опция като избор по подразбиране, използвайте символ с двойна черта ("|") след нея. Можете да видите, че в нашия пример сме задали нашия език на en, Избран модел към малъки TaskType към транскрибирам.

Как да ръководите Whisper

Тъй като Whisper е базиран на AI, няма начин да имате абсолютен контрол върху това как Whisper транскрибира аудио. Той е свободен да избере това, което счита за оптимално.

Въпреки това, подобно на други решения за изкуствен интелект, Whisper може да приема потребителски подкани. Като създадете подкана, можете да „насочвате“ как тя транскрибира вашето аудио.

Дали решението, което правим, не успя да транскрибира нещо правилно? Можете да опитате да „обясните“ на Whisper „какво представлява гласовият файл“, включително синтаксиса на думите, акронимите и фразите във вашата подкана, както искате да се показват в транскрипцията. За целта ще добавим поле за редактиране на текст AutoHotkey.

Синтаксисът не е твърде различен от този, който използвахме за добавяне на падащи списъци по-горе:

Gui, Добавяне, Редактиране, x5 w505 h400 vPromptText, %PromptText%

„%PromptText%“ в края „казва“ на AHK да покаже съдържанието на променливата PromptText (ако вече й е присвоена стойност) в текстовото поле. Няма да покаже нищо в скрипта, който правим, но го считайте за заместител, когато евентуално промените скрипта в бъдеще, за да запазвате и зареждате подкани!

Бихте ли предпочели да присвоите предварително зададена стойност на PromptText променлива? Добавете нещо като следното към Променливи раздел на скрипта. Не забравяйте да замените „Вашето име“ с действителното си име.

PromptText = Транскрипция на бележките на вашето име

Настройване на бутоните за действие

За избор на файлове, папки и стартиране на Whisper, след като сме настроили всичко, е по-добре да използвате бутони. Можете да добавите бутони към създаден от AHK интерфейс, като използвате следното:

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

Забележете, че за разлика от променливите в GUI елементите, които започват с буквата "v", имената на функциите започват с "g", за "Отидете (на това място на скрипта)".

Единичен бутон на AHK интерфейс също може да се счита за "по подразбиране", който ще бъде активиран, ако не щракнете никъде в GUI и натиснете Въведете. Това се определя чрез добавяне на "по подразбиране“ в секцията за координати и функция, както ще забележите в нашия бутон „OK“:

Gui, Add, Button, x5 w505 h50 gSelectFile, Заредете FileGui, Добавете, Бутон, x5 w505 h50 gSelectFolder, ИзбирамИзход Папка
Gui, Добавяне, Бутон, По подразбиране x5 w505 h50 gButtonSubmit, OK

С горното дефинираме три бутона:

  • Един с етикет "Зареждане на файл", който при щракване ще стартира Избери файл функция.
  • Един с етикет "Изберете Изходна папка“, който ще стартира Изберете папка функция.
  • Един с етикет "Добре“, избрано по подразбиране, „извикване“ на ButtonSubmit функция.

Как да покажете своя GUI

Нашият GUI е готов, но няма да се появи на нашия екран, защото не сме „казали“ на AutoHotkey да го покаже или какво трябва да прави всеки бутон.

За целта добавете следните два реда под тези, които определят вашия GUI:

Gui, ShowReturn

Първият ред "казва" на AHK да покаже прозореца на GUI, докато вторият маркира края на секцията.

Функциите и функционалността на нашето приложение

Въпреки че завършихме секцията с GUI, ако се опитате да стартирате скрипта, той ще се срине. Това е така, защото ние препращаме към несъществуващи функции в него. И така, следващият ни ход е да създадем тези функции.

Трите функции, които искаме са:

  • Изберете входен файл.
  • Изберете изходната папка, където ще се съхранява транскрибираният файл.
  • Създайте команда, която ще „събере“ всички променливи в използваема команда Whisper, подобна на това, което бихме въвели сами в терминал, и след това я изпълнете.

Избор на входен файл

Първата функция, която вече нарекохме "Избери файл", когато добавихме неговия бутон към GUI, е:

Избери файл:FileSelectFile, SelectedFileReturn

FileSelectFile е функция AutoHotkey, която показва типичен файлов рикуестър, позволявайки на потребителя да избере файл. Избран файл е променливата в нашия скрипт, която ще "задържа" пътя до избрания от потребителя файл.

Въпреки това, както ще видите на нашите екранни снимки, ние също добавихме следния ред точно над функцията, завършваща „return“:

MsgBox, %SelectedFile%

Това ще накара AHK да покаже a Кутия за съобщения с избрания файл, след като го изберем, което е полезно при отстраняване на неизправности във вашия скрипт. Ако това поле за съобщение показва пътя и името на избрания от вас файл, това не е вашият бутон за избор на файл или функция, която изисква коригиране.

Избор на изходна папка

Функцията за избор на папка е почти идентична, като само името на командата и променливата се променят, за да покажем, че имаме работа с папки вместо с файлове:

SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Връщане

Крайната функция

Крайната функция ще бъде най-сложна. Съпоставено с бутона OK, това ще "събере" всички стойности на променливи от GUI, ще ги превърне в използваема команда и след това ще я изпълни.

Започваме с посочване на началото и края на функцията:

ButtonSubmit:Връщане

За да "грабнете" всички стойности на GUI, добавете следното под ButtonSubmit линия:

Gui Изпращане, без скриване

Следващият ред създава нова променлива, наречена "WhisperFlags". След това добавя към него всички променливи на GUI като флагове за командата Whisper.

WhisperFlags = --initial_prompt "%PromptText%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%SelectedFolder%""%SelectedFile%"

След това ще „кажем“ на AHK да използва терминала по подразбиране (CMD.exe), за да стартира изпълнимия файл на Whisper (който дефинирахме с WhisperИзпълним променлива) с променливите на GUI (които сега са „сглобени“ в единичния WhisperFlags променлива).

RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%

За още по-лесно отстраняване на неизправности ние също добавихме msgbox, както преди, но добавихме и следния ред:

Клипборд = %WhisperExecutable% %WhisperFlags%

Това ще копира в Клипборд пълната команда, издадена на CMD. Така че, ако нещо се провали, вместо да виждате командата само в едно от полетата за съобщения на AHK, ще я имате достъпна и във вашия клипборд.

Отворете терминал, поставете командата от клипборда и проверете изскачащите грешки, за да намерите потенциални проблеми.

Например, докато работех върху скрипта, първоначално забравих да поставя подканата в кавички. По този начин командата се провали, тъй като Whisper се опита да анализира подканата като флагове.

Тестване и финални настройки

Това беше – току-що създадохме приложение за транскрипция, използвайки възможностите за създаване на GUI на AutoHotkey и готово за използване решение за транскрипция с изкуствен интелект.

Опитайте да стартирате скрипта си (щракнете двукратно върху неговия файл) и трябва да видите GUI на екрана си.

  • Променете настройките на Whisper, като използвате падащите списъци в горната част.
  • Въведете кратко описание на вашата транскрипция (и някои термини) в подкана поле.
  • Щракнете върху Зареждане на файл и изберете аудио файла, който искате да транскрибирате.
  • Щракнете върху Изберете Изходна папка и изберете къде да се съхранява произведеният текстов файл.
  • Кликнете върху Добре за да активирате Whisper, както е конфигуриран от вашия GUI, на избрания от вас аудио файл и да запишете транскрипцията му като текстов файл в папката, която сте избрали.

Ако всичко работи, върнете се към вашия скрипт и или изтрийте, или коментирайте (чрез добавяне на „;“ в началото) цялата функционалност за отстраняване на неизправности (куета за съобщения и редове за копиране в клипборда).

Развиване на Whisper с AutoHotkey

Като зададете правилно стойностите по подразбиране на вашия GUI и може би добавите обща подкана, можете да превърнете Whisper в решение с три щраквания за транскрибиране: Без плащане за търговски решения, услуги на трети страни, работа със сложни интерфейси или пишете в терминал.