Jak si vytvořit vlastní aplikaci pro přepis Windows pomocí Whisper a 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 Whisperem OpenAI 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ánekpoté 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 o tom, jak převést svůj hlas na text pomocí Whisper pro Windows od OpenAI.

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

  • Vytvořte GUI s prvky pro Whisperovy proměnné a hodnoty.
  • 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.
  • Spusťte příkaz Whisper k dosažení výsledků.
  • Samozřejmě můžete vždy použít integrovanou podporu Windows pro Hlasové psaní, jak jsme viděli v našem článku o tom, jak spustit Hlasové psaní ve Windows 11. Přesto, jak uvidíte při jeho 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.

  • Spusťte svého oblíbeného správce souborů (nebo stiskněte klávesu Windows + E pro spuštění Průzkumníka Windows) a vytvořte složku pro aplikaci pro přepis, kdekoli chcete.
  • Klikněte pravým tlačítkem na prázdné místo v okně a vyberte Nový > AutoHotkey Script pro vytvoření prázdného souboru skriptu.
  • 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. Postačí vlastní Poznámkový blok Windows.
  • 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.
  •   Jak opravit chybu VLC Chybí Libvlc.dll v systému Windows 10

    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 „;“, za nímž následuje mezera).

     ; Whisper Flags:;  

    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í.

    Stanovení skrytých proměnných

    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 proměnnou OutputFormat, kterou jsme nastavili na hodnotu „txt“ a proměnnou WhisperExecutable uvádějící název spustitelného souboru Whisper. Tímto způsobem, pokud chceme v budoucnu použít stejné řešení k vytvoření souborů titulků SRT místo dokumentů TXT nebo upgradovat Whisper/přepnout na alternativní aplikaci, můžeme upravit hodnoty těchto proměnných na tomto jediném místě namísto v celém skriptu. .

     OutputFormat = txtWhisperExecutable = whisper 

    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 děláte překlad nebo přepis
    • Jazyk zvukového souboru
    • Jazykový model, 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čtinou/en a řečtinou/el), modelu (malý, základní, malý, střední, velký) a typu úkolu (přepis nebo překlad) .

     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|

    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 jazyk na en, SelectedModel na small a TaskType na přepis.

    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. Je svobodná si vybrat, co považuje za optimální.

      Jak ovládat svůj telefon Android z Windows 10 [Tutorial]

    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!

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

     PromptText = Transcription of Your Name's notes 

    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“, což znamená „Přejít (na 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 Enter. To je definováno přidáním „default“ do sekce souřadnic a funkcí, jak si všimnete v našem tlačítku „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

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

    • Jeden označený jako „Načíst soubor“, který po kliknutí spustí funkci SelectFile.
    • Jeden označený jako „Choose Output Folder“, který spustí funkci SelectFolder.
    • Jeden označený jako „OK“, vybraný ve výchozím nastavení, „volá“ funkci ButtonSubmit.

    Jak ukázat své GUI

    Naše grafické uživatelské rozhraní je připraveno, ale neobjeví se na naší obrazovce, protože jsme „neřekli“ AutoHotkey, aby to zobrazilo nebo co by každé tlačítko mělo 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ý „sestaví“ všechny proměnné do použitelného příkazu Whisper, podobného tomu, co bychom sami napsali do terminálu, a pak jej spusťte.

    Výběr vstupního souboru

    První funkce, kterou jsme již pojmenovali „SelectFile“, když jsme přidali její tlačítko do GUI, je:

     SelectFile: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á „drží“ cestu k souboru, který uživatel vybral.

      Jak změnit umístění složky snímku obrazovky v systému Windows 11

    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% 

    Tím AHK zobrazí okno se zprávou 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%Return 

    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:

     ButtonSubmit:Return 

    Chcete-li „chytit“ všechny hodnoty GUI, přidejte do řádku ButtonSubmit následující:

     Gui Submit, 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í proměnné WhisperExecutable) s proměnnými GUI (které jsou nyní „sestaveny“ do jediné proměnné WhisperFlags).

     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:

     Clipboard = %WhisperExecutable% %WhisperFlags% 

    Tím se zkopíruje do schránky 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.
    • Do pole Výzva zadejte krátký popis svého přepisu (a některé výrazy).
    • Klikněte na tlačítko Načíst soubor a vyberte zvukový soubor, který chcete přepsat.
    • Klepněte na tlačítko Vybrat výstupní složku a vyberte, kam se má vytvořený textový soubor uložit.
    • Kliknutím na OK spustí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 vybrané složky.

    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).

    Pokračování Whisper pomocí 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 proměnit v řešení přepisování třemi kliknutími: Žádné placení za komerční řešení, služby třetích stran, pohrávání si s komplikovanými rozhraními nebo psaní. terminál.