Vytváření vysoce přesné aplikace pro přepis třemi kliknutími zní složitě, ale není tomu tak. Představme Whisperovi AutoHotkey.

OpenAI's Whisper je jedním z nejvýkonnějších řešení pro přeměnu vašeho hlasu na text. Používání Whisperu však může být také nepříjemné, protože k přepisu zvukového souboru do textu musíte zadávat příkazy. Ale proč to dělat, když máme AutoHotkey?

S AutoHotkey můžeme bez námahy vytvořit základní GUI pro aplikace příkazového řádku, jako je Whisper. Pojďme na to a uvidíme, jak si můžete vytvořit svou vlastní aplikaci pro přepis tím, že zkombinujete superschopnosti AutoHotkey pro tvorbu GUI s OpenAI Whisper jako „mozkem“ za tlačítky.

Položení základů pro Whisper a AutoHotkey

Pomocí AutoHotkey můžete vytvářet skvělé skripty, ale to není vše, co umí. Pro tento projekt použijeme AutoHotkey k vytvoření GUI pro Whisper. To nám umožní používat nástroj AI pro rozpoznávání hlasu OpenAI kliknutím na tlačítka a přizpůsobením jeho funkčnosti pomocí nabídek namísto psaní příkazů.

To však znamená, že budete muset mít nainstalované AutoHotkey i Whisper, abyste mohli pokračovat.

Pro první část rovnice můžete stáhněte si AutoHotkey z jeho oficiálních stránek, poté spusťte jeho instalační program a postupujte podle uvedených kroků.

Všimněte si, že budeme používat starší verzi skriptovacího jazyka „v1“, nikoli novou verzi v2. To je důležité, protože obě verze používají poněkud odlišnou syntaxi. To, co zde uvidíme, nemusí fungovat, pokud použijete novou verzi v2.

Druhá část je složitější, ale můžete se naučit, jak to udělat, v našem článku na jak převést svůj hlas na text pomocí OpenAI's Whisper pro Windows.

S oběma nainstalovanými je náš akční plán následující:

  1. Vytvořte GUI s prvky pro Whisperovy proměnné a hodnoty.
  2. Vytvářejte funkce pro zachycení hodnot z rozhraní, výběr souborů a složek a sestavení všeho do použitelného příkazu Whisper.
  3. Spusťte příkaz Whisper pro dosažení výsledků.

Samozřejmě můžete vždy použít vestavěnou podporu Windows pro Hlasové psaní, jak jsme viděli v našem článku o jak spustit hlasové psaní v systému Windows 11. Přesto, jak uvidíte při používání, Whisper je mnohem přesnější (ale také pomalejší).

Na osobnější poznámku bych měl vysvětlit, že nejsem programátor a tento projekt je „remix“ řešení vytvořeného pro osobní použití.

Jak vytvořit nový skript AutoHotkey

Prvním krokem je vytvoření nového prázdného souboru skriptu. Uchovávejte jej v jeho vlastní složce pro případ, že byste se jej rozhodli vylepšit nebo na něm stavět a vytvořit další soubory.

  1. Spusťte svůj oblíbený správce souborů (nebo stiskněte Windows klíč + E spusťte Průzkumníka Windows) a vytvořte složku pro aplikaci pro přepis, kdekoli chcete.
  2. Klepněte pravým tlačítkem myši na prázdné místo v okně a vyberte Nový > AutoHotkey skript vytvořit prázdný soubor skriptu.
  3. Shift + Klikněte pravým tlačítkem na soubor pro přístup k úplné kontextové nabídce a výběrem možnosti ji otevřete pomocí oblíbeného kódu nebo textového editoru. Vlastní Windows poznámkový blok udělám.
  4. Navzdory tomu, že se jedná o „prázdný skript“, váš soubor AHK již bude předvyplněn nějakými „věcí“. To jsou užitečné proměnné a příznaky AutoHotkey, které definují, jak by to mělo fungovat na vaší ploše. Ignorujte je, nechte je tak, jak jsou, a veškeré budoucí psaní pod nimi.

Seznámení s Whisperovými vlajkami

Protože vytváříme GUI pro aplikaci příkazového řádku, je užitečné mít odkaz na její hlavní proměnné a příznaky, které budeme v našem projektu používat. Můžete si je prohlédnout tak, že si přečtete Whisperovu dokumentaci, navštívíte jeho oficiální stránka Githuba spusťte jej ve svém terminálu.

Pro usnadnění uvedeme ty, které v tomto projektu použijeme. Doporučujeme je přidat do skriptu jako komentáře (na samostatné řádky, každý začíná znakem ";" následovaným mezerou).

; Whisper Flags:; --initial_prompt PROMPT_TEXT; --output_format txt; -o VÝSTUPNÍ SLOŽKA; --model MODEL_TO_USE; --úkol TRANSCRIBE/TRANSLATE; --jazyk EN/EL

Vytvoření GUI pomocí AutoHotkey

Doporučujeme, abyste skript rozdělili do sekcí pomocí komentářů, jako jsme to udělali my, aby byl přehledný. Začneme definováním některých proměnných, pokračujeme ke skutečnému GUI a skončíme definováním jeho funkcí.

Začneme částí, kde definujeme proměnné, které možná budeme chtít v budoucnu změnit, ale ne tak často, abychom je chtěli odhalovat prostřednictvím GUI a zbytečně to komplikovat. Můžete zadat "Název_proměnné = Obsah nebo hodnota proměnné" s jednou proměnnou a dvojicí hodnot na řádek.

Pro tento projekt jsme definovali a Výstupní formát proměnnou, kterou nastavíme na "txt"hodnota a a WhisperExecutable variabilní uvádění Název spustitelného souboru Whisper. Tímto způsobem, pokud chceme stejné řešení v budoucnu použít k vytvoření souborů titulků SRT namísto dokumentů TXT nebo upgradu Zašeptejte/přepněte na alternativní aplikaci, můžeme upravit hodnoty těchto proměnných na tomto jediném místě místo v celém skript.

OutputFormat = txtWhisperExecutable = šepot

Nastavení uživatelských možností

Při použití Whisper na příkazovém řádku vám tři jeho příznaky umožňují definovat:

  • Pokud to děláte překlad nebo transkripce
  • Zvukový soubor Jazyk
  • Jazyk Modelka které chcete použít (k dispozici jsou různé velikosti, z nichž každá ovlivňuje výkon versus kvalitu výsledků).

Nejjednodušší způsob, jak nabídnout stejnou funkcionalitu prostřednictvím grafického uživatelského rozhraní, je prostřednictvím osvědčených rozevíracích seznamů. Syntaxe pro přidání rozevíracího seznamu do GUI AutoHotkey je následující:

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

Na základě toho přidejte do našeho skriptu tři rozevírací seznamy pro výběr jazyka Whispera (mezi angličtina/en a řečtina/el), model (malý, základní, malý, střední, velký) a typ úkolu (přepis nebo přeložit).

Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, malý|základní|malý||střední|velký|
Gui, Add, DropDownList, x345 y5 w165 h100 vTaskType, transscribe||translate|

Chcete-li nastavit možnost jako výchozí výběr, použijte za ní symbol dvojité čáry („|“). Můžete vidět, že v našem příkladu jsme nastavili náš jazyk na en, SelectedModel to malýa TaskType to přepsat.

Jak vést šepot

Protože Whisper je založen na umělé inteligenci, neexistuje způsob, jak mít absolutní kontrolu nad tím, jak Whisper přepisuje zvuk. Může si svobodně vybrat, co považuje za optimální.

Stejně jako ostatní řešení AI však Whisper může přijímat uživatelské výzvy. Vytvořením výzvy můžete „řídit“, jak přepisuje váš zvuk.

Nepodařilo se nám při řešení přepsat něco správně? Můžete zkusit Whisperovi „vysvětlit“, „o čem je hlasový soubor“, včetně syntaxe slov, akronymů a frází ve výzvě, jak chcete, aby se objevily v přepisu. Za tímto účelem přidáme pole pro úpravu textu AutoHotkey.

Syntaxe se příliš neliší od toho, co jsme použili pro přidávání rozevíracích seznamů výše:

Gui, Add, Edit, x5 w505 h400 vPromptText, %PromptText%

"%PromptText%" na konci "říká" AHK, aby v textovém poli zobrazil obsah proměnné PromptText (pokud je již přiřazena hodnota). Ve skriptu, který vytváříme, se nic nezobrazí, ale považujte to za zástupný symbol pro případ, kdy skript v budoucnu upravíte, také pro ukládání a načítání výzev!

Chcete raději přiřadit předdefinovanou hodnotu PromptText variabilní? Přidejte něco jako následující do Proměnné část skriptu. Nezapomeňte nahradit „Vaše jméno“ svým skutečným jménem.

PromptText = Přepis poznámek vašeho jména

Nastavení akčních tlačítek

Pro výběr souborů, složek a spuštění Whisperu poté, co jsme vše nastavili, je lepší používat tlačítka. Tlačítka můžete přidat do rozhraní vytvořeného AHK pomocí následujícího:

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

Všimněte si, že na rozdíl od proměnných v prvcích GUI, které začínají písmenem "v", názvy funkcí začínají na "g" pro "Go (toto místo skriptu)".

Jedno tlačítko rozhraní AHK lze také považovat za „výchozí“, které se aktivuje, pokud nekliknete nikam na GUI a nestisknete Vstupte. To je definováno přidáním "výchozí" v sekci souřadnice a funkce, jak si všimnete v našem tlačítku "OK":

Gui, Add, Button, x5 w505 h50 gSelectFile, Zatížení FileGui, Přidat, Tlačítko, x5 š505 v50 gSelectFolder, VybratVýstup Složka
Gui, Přidat, Tlačítko, Výchozí x5 w505 h50 gButtonSubmit, OK

S výše uvedeným definujeme tři tlačítka:

  • Jeden s označením "Načíst soubor“, na který se po kliknutí spustí Zvolte soubor funkce.
  • Jeden s označením "Vyberte výstupní složku“, který bude provozovat Vybrat složku funkce.
  • Jeden s označením "OK", ve výchozím nastavení vybráno, "volá" the Tlačítko Odeslat funkce.

Jak ukázat své GUI

Naše grafické uživatelské rozhraní je připraveno, ale nezobrazí se na naší obrazovce, protože jsme „neřekli“ AutoHotkey, aby to zobrazilo nebo co by mělo každé tlačítko dělat.

Za tímto účelem přidejte následující dva řádky pod řádky, které definují vaše GUI:

Gui, ShowReturn

První řádek "říká" AHK, aby zobrazil okno GUI, zatímco druhý označuje konec sekce.

Funkce a funkčnost naší aplikace

Přestože jsme dokončili sekci GUI, pokusíte-li se skript spustit, dojde k jeho zhroucení. To proto, že v něm odkazujeme na neexistující funkce. Takže naším dalším krokem je vytvoření těchto funkcí.

Tři funkce, které chceme, jsou:

  • Vyberte vstupní soubor.
  • Vyberte výstupní složku, kde bude uložen přepsaný soubor.
  • Vytvořte příkaz, který „složí“ všechny proměnné do použitelného příkazu Whisper, podobného tomu, co bychom sami napsali do terminálu, a poté jej spusťte.

Výběr vstupního souboru

První funkce, kterou jsme již pojmenovali "Zvolte soubor" když jsme přidali jeho tlačítko do GUI, je:

Zvolte soubor:FileSelectFile, SelectedFileReturn

FileSelectFile je funkce AutoHotkey, která zobrazuje typického žadatele o soubor a umožňuje uživateli vybrat soubor. SelectedFile je proměnná v našem skriptu, která bude "držet" cestu k souboru, který uživatel vybral.

Jak však uvidíte na našich snímcích obrazovky, přidali jsme také následující řádek přímo nad „návrat“ končící funkci:

MsgBox, %SelectedFile%

To bude mít AHK show a Schránka zpráv s vybraným souborem poté, co jej vybereme, což je užitečné při odstraňování problémů se skriptem. Pokud toto okno se zprávou zobrazuje cestu a název vybraného souboru, není to tlačítko nebo funkce pro výběr souboru, která vyžaduje opravu.

Výběr výstupní složky

Funkce pro výběr složky je téměř totožná, pouze se mění název příkazu a proměnná, aby bylo vidět, že máme co do činění se složkami místo souborů:

SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Vrátit se

Konečná funkce

Konečná funkce bude nejsložitější. Namapováno na tlačítko OK, toto „shromáždí“ všechny hodnoty proměnných z GUI, přemění je na použitelný příkaz a poté jej spustí.

Začneme uvedením začátku a konce funkce:

Tlačítko Odeslat:Vrátit se

Chcete-li "chytit" všechny hodnoty GUI, přidejte následující pod Tlačítko Odeslat čára:

Gui Odeslat, nohide

Následující řádek vytvoří novou proměnnou s názvem "WhisperFlags". Poté do něj přidá všechny proměnné GUI jako příznaky pro příkaz Whisper.

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

Dále "řekneme" AHK, aby použila výchozí terminál (CMD.exe) ke spuštění spustitelného souboru Whisper (který jsme definovali pomocí WhisperExecutable proměnná) s proměnnými GUI (které jsou nyní „sestaveny“ v singlu WhisperFlags proměnná).

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

Pro ještě snadnější řešení problémů jsme také přidali msgbox, jako dříve, ale přidali jsme také následující řádek:

Schránka = %WhisperExecutable% %WhisperFlags%

Toto se zkopíruje do Schránka kompletní příkaz vydaný CMD. Pokud tedy něco selže, místo abyste příkaz viděli pouze v jedné ze zpráv AHK, budete jej mít k dispozici také ve schránce.

Otevřete terminál, vložte příkaz ze schránky a zkontrolujte chyby, které se objeví, abyste našli potenciální problémy.

Například při práci na skriptu jsem zpočátku zapomněl mít výzvu uzavřenou v uvozovkách. Příkaz tedy selhal, protože Whisper se pokusil analyzovat výzvu jako příznaky.

Testování a finální úpravy

To bylo vše – právě jsme vytvořili aplikaci pro přepis využívající možnosti tvorby grafického uživatelského rozhraní AutoHotkey a řešení přepisu AI připravené k použití.

Zkuste spustit skript (dvojitě klikněte na jeho soubor) a na obrazovce byste měli vidět své GUI.

  • Změňte nastavení Whisperu pomocí rozevíracích seznamů v horní části.
  • Zadejte krátký popis vašeho přepisu (a některé výrazy) do Výzva pole.
  • Klikněte na Načíst soubor a vyberte zvukový soubor, který chcete přepsat.
  • Klikněte na Vyberte výstupní složku a vyberte, kam se má vytvořený textový soubor uložit.
  • Klikněte na OK uvolněte Whisper, jak je nakonfigurován vaším GUI, u vybraného zvukového souboru a uložte jeho přepis jako textový soubor do složky, kterou jste vybrali.

Pokud vše fungovalo, vraťte se ke svému skriptu a buď odstraňte nebo okomentujte (přidáním ";" na jejich začátek) všechny funkce pro odstraňování problémů (pole zpráv a řádky pro kopírování do schránky).

Šeptání dále s AutoHotkey

Správným nastavením výchozích hodnot vašeho GUI a možná přidáním obecné výzvy můžete Whisper změnit na a řešení přepisu třemi kliknutími: Žádné placení za komerční řešení, služby třetích stran, pohrávání si se složitými rozhraními nebo psaní v terminálu.