Egy három kattintással használható, de rendkívül pontos átírási alkalmazás létrehozása nehéznek hangzik, de nem az. Mutassuk be a Whispert az AutoHotkey-be.
Az OpenAI Whisper az egyik leghatékonyabb megoldás a hangjának szöveggé alakítására. A Whisper használata azonban bosszantó is lehet, mivel parancsokat kell begépelnie egy hangfájl szöveggé történő átírásához. De miért tegyük ezt, ha megvan az AutoHotkey?
Az AutoHotkey segítségével könnyedén létrehozhatunk egy alapvető grafikus felhasználói felületet az olyan parancssori alkalmazásokhoz, mint a Whisper. Tehát tegyük ezt meg, és nézzük meg, hogyan hozhat létre saját átíró alkalmazást az AutoHotkey grafikus felhasználói felület-készítő szuperképességeinek és az OpenAI Whisper funkciójának a gombok mögötti „agyaként” kombinálásával.
A Whisper és az AutoHotkey alapjainak lerakása
Az AutoHotkey segítségével remek szkripteket készíthet, de ez nem minden, amit tehet. Ebben a projektben az AutoHotkey-t használjuk a Whisper grafikus felhasználói felületének létrehozására. Ez lehetővé teszi számunkra, hogy az OpenAI hangfelismerő mesterséges intelligencia eszközét gombokra kattintva használjuk, és a funkciókat a parancsok begépelése helyett menük segítségével testreszabjuk.
Ez azonban azt jelenti, hogy a követéshez telepítenie kell az AutoHotkey-t és a Whispert is.
Az egyenlet első részében megteheti töltse le az AutoHotkey-t a hivatalos webhelyéről, majd futtassa a telepítőjét, és kövesse a bemutatott lépéseket.
Vegye figyelembe, hogy a szkriptnyelv régebbi „v1” verzióját fogjuk használni, nem az új v2-t. Ez azért fontos, mert a két verzió némileg eltérő szintaxist használ. Az itt láthatók nem biztos, hogy működnek, ha az új v2-t használjuk.
A második rész bonyolultabb, de megtudhatja, hogyan kell csinálni, ha megnézi a témában található cikkünket hogyan változtassa hangját szöveggé az OpenAI Whisper for Windows segítségével.
Ha mindkettő telepítve van, cselekvési tervünk a következő:
- Hozzon létre egy grafikus felhasználói felületet a Whisper változóinak és értékeinek elemeivel.
- Hozzon létre függvényeket az értékek megragadásához a felületről, válassza ki a fájlokat és mappákat, és állítson össze mindent egy használható Whisper parancsba.
- Futtassa a Whisper parancsot az eredmények eléréséhez.
Természetesen mindig használhatja a Windows beépített támogatását a hangíráshoz, amint azt a cikkünkben láttuk hogyan indítsa el a hangalapú gépelést a Windows 11 rendszeren. Ennek ellenére, amint azt használat közben látni fogja, a Whisper sokkal pontosabb (de lassabb is).
Személyesebben el kell magyaráznom, hogy nem vagyok programozó, és ez a projekt egy személyes használatra készült megoldás "remixe".
Hogyan készítsünk új AutoHotkey szkriptet
Az első lépés egy új üres szkriptfájl létrehozása. Tartsa a saját mappájában, arra az esetre, ha úgy döntene, hogy módosítja vagy továbbfejleszti, és további fájlokat hoz létre.
- Futtassa kedvenc fájlkezelőjét (vagy nyomja meg a Windows kulcs + E a Windows Intéző elindításához), és hozzon létre egy mappát az átírási alkalmazás számára bárhol, ahol tetszik.
- Kattintson a jobb gombbal az ablak egy üres pontjára, és válassza ki Új > AutoHotkey Script üres szkriptfájl létrehozásához.
- Shift + Jobb Kattintson a fájlra a teljes helyi menü eléréséhez, és válassza ki, hogy kedvenc kódjával vagy szövegszerkesztőjével nyissa meg. A Windows sajátja Jegyzettömb megteszi.
- Annak ellenére, hogy "üres szkript", az AHK-fájlja már előre fel lesz töltve néhány "cuccal". Ezek hasznos AutoHotkey változók és jelzők, amelyek meghatározzák, hogyan kell működnie az asztalon. Hagyja őket figyelmen kívül, hagyja őket úgy, ahogy vannak, és minden jövőbeni gépeléssel végezzen alattuk.
Ismerkedés Whisper zászlóival
Mivel egy parancssori alkalmazáshoz készítünk grafikus felhasználói felületet, hasznos, ha hivatkozunk a főbb változóira és jelzőire, amelyeket a projektünkben fogunk használni. Megtekintheti őket, ha elolvassa Whisper dokumentációját, látogasson el hivatalos Github oldala, és futtassa a termináljában.
A kényelem kedvéért felsoroljuk azokat, amelyeket ebben a projektben fogunk használni. Javasoljuk, hogy megjegyzésként adja hozzá ezeket a szkripthez (külön sorokban, amelyek mindegyike ";" karakterrel kezdődik, majd szóközzel).
; Suttogó zászlók:; --initial_prompt PROMPT_TEXT; --output_format txt; -o OUTPUT_FOLDER; --model MODEL_TO_USE; --feladat TRANSCRIBE/TRANSLATE; --nyelv EN/EL
GUI létrehozása az AutoHotkey segítségével
Javasoljuk, hogy ossza fel részekre a szkriptet megjegyzések segítségével, ahogyan mi tettük a rendszerezés érdekében. Kezdjük néhány változó definiálásával, folytatjuk a tényleges grafikus felhasználói felülettel, és a végén a funkcióinak meghatározásával.
Kezdjük egy szekcióval, ahol meghatározzuk azokat a változókat, amelyeket a jövőben módosítani szeretnénk, de nem olyan gyakran, hogy a grafikus felhasználói felületen keresztül ki akarjuk mutatni őket, túlbonyolítva azt. Beírhatja, hogy "Változó_név = A változó tartalma vagy értéke" soronként egy változó- és értékpárral.
Ehhez a projekthez meghatároztuk a Kimeneti formátum változó, amelyet a "txt" érték és a WhisperVégrehajtható változó kijelentés Whisper végrehajtható fájlneve. Így, ha a jövőben ugyanazt a megoldást szeretnénk használni SRT feliratfájlok létrehozására TXT dokumentumok vagy frissítés helyett Suttogva/váltson egy alternatív alkalmazásra, a változók értékeit az adott helyen módosíthatjuk, nem pedig forgatókönyv.
OutputFormat = txtWhisperExecutable = suttogás
A felhasználói opciók beállítása
Ha a Whispert használja a parancssorban, annak három jelzője lehetővé teszi a következők meghatározását:
- Ha csinálod fordítás vagy átírása
- Az audio fájl nyelv
- A nyelv modell használni szeretné (különböző méretek állnak rendelkezésre, amelyek mindegyike befolyásolja a teljesítményt és az eredmények minőségét).
A legegyszerűbb módja annak, hogy ugyanazt a funkciót grafikus felhasználói felületen keresztül kínálja, a kipróbált és tesztelt legördülő listák segítségével. Az AutoHotkey GUI-hoz legördülő lista hozzáadásának szintaxisa a következő:
Gui, Hozzáadás, Legördülő lista, xPosition yPosition szélesség hMagasság vVáltozó_hogy_tart_kijelölt_érték, opcióA|opcióB|default_optionC||opcióD|
Ennek alapján adjunk hozzá három legördülő listát a szkriptünkhöz a Whisper nyelvének kiválasztásához (között angol/en és görög/el), modell (pici, alap, kicsi, közepes, nagy) és feladattípus (átírás ill. fordít).
Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, hu||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, apró|alap|kicsi||közepes|nagy|
Gui, Hozzáadás, DropDownList, x345 y5 w165 h100 vTaskType, átírás||fordítás|
Ha egy beállítást alapértelmezett kiválasztásként szeretne beállítani, használjon utána egy dupla cső szimbólumot ("|"). Láthatja, hogy a példánkban a nyelvünket erre állítottuk be hu, SelectedModel to kicsi, és a TaskType to lemásol.
Hogyan irányítsuk a suttogást
Mivel a Whisper mesterséges intelligencia-alapú, nincs mód arra, hogy teljes mértékben ellenőrizzék, hogyan írja át a Whisper a hangot. Szabadon választhat, hogy mit tart optimálisnak.
Más AI-megoldásokhoz hasonlóan azonban a Whisper is képes elfogadni a felhasználói felszólításokat. A felszólítás elkészítésével „irányíthatja”, hogyan írja át a hangot.
Az általunk kidolgozott megoldás nem tudott valamit helyesen átírni? Megpróbálhatja „megmagyarázni”, hogy „miről szól a hangfájl”, beleértve a szavak, betűszavak és kifejezések szintaxisát a promptban, ahogyan szeretné, hogy megjelenjenek az átírásban. Ehhez hozzáadunk egy AutoHotkey szövegszerkesztő mezőt.
A szintaxis nem különbözik túlságosan attól, amit a fenti legördülő listák hozzáadásához használtunk:
Gui, Hozzáadás, Szerkesztés, x5 w505 h400 vPromptText, %PromptText%
A "%PromptText%" a végén "utasítja" az AHK-t, hogy mutassa meg a PromptText változó tartalmát (ha már hozzá van rendelve értékhez) a szövegmezőben. Nem fog semmit megjeleníteni az éppen készülő szkriptben, de tekintse helyőrzőnek, ha a jövőben módosítja a szkriptet a promptok mentéséhez és betöltéséhez is!
Szeretne előre meghatározott értéket rendelni a PromptText változó? Adjon hozzá valami hasonlót a következőhöz Változók szakasz a forgatókönyvből. Ne felejtse el a "Your Name's"-t a valódi nevével helyettesíteni.
PromptText = Az Ön neve jegyzeteinek átírása
A műveleti gombok beállítása
A fájlok, mappák kiválasztásához és a Whisper futtatásához, miután mindent beállítottunk, jobb, ha gombokat használ. A következő módon adhat hozzá gombokat egy AHK által készített felülethez:
Gui, Hozzáadás, Gomb, xPosition yPosition szélesség hMagasság gFunction_To_Perform, Gomb szövege
Figyeljük meg, hogy a grafikus felhasználói felület elemeinek változóitól eltérően, amelyek "v" betűvel kezdődnek, a függvénynevek "g"-vel kezdődnek, a "Go (a szkript ezen pontjára)" esetén.
Az AHK interfész egyetlen gombja is tekinthető "alapértelmezettnek", amely akkor aktiválódik, ha nem kattint sehova a grafikus felületen, és megnyomja Belép. Ezt a "alapértelmezett" a koordináták és függvények részben, amint azt az "OK" gombon is láthatja:
Gui, Hozzáadás, gomb, x5 w505 h50 gSelectFile, Betöltés FileGui, Hozzáadás, gomb, x5 w505 h50 gSelectFolder, VálasztKimenet Mappa
Gui, Hozzáadás, gomb, Alapértelmezett x5 w505 h50 gButtonSubmit, OK
A fentiek alapján három gombot határozunk meg:
- Az egyik a "Fájl betöltése", amelyre kattintva elindul a Válaszd ki a fájlt funkció.
- Az egyik a "Válassza a Kimeneti mappa lehetőséget", amely futtatja a Mappa kiválasztása funkció.
- Az egyik a "rendben", alapértelmezés szerint kiválasztva, "hívja" a ButtonSubmit funkció.
A grafikus felhasználói felület megjelenítése
A grafikus felhasználói felületünk készen áll, de nem jelenik meg a képernyőn, mert nem „mondtuk meg” az AutoHotkey-nek, hogy mutassa meg, vagy hogy mit kell tennie az egyes gomboknak.
Ehhez adja hozzá a következő két sort azok alá, amelyek meghatározzák a grafikus felhasználói felületet:
Gui, ShowReturn
Az első sor „megmondja” az AHK-nak, hogy mutassa meg a grafikus felhasználói felület ablakát, míg a második a szakasz végét jelöli.
Alkalmazásunk funkciói és funkcionalitása
Bár a GUI részt befejeztük, ha megpróbálja futtatni a szkriptet, az összeomlik. Ez azért van, mert nem létező függvényekre hivatkozunk benne. Tehát a következő lépésünk az, hogy létrehozzuk ezeket a funkciókat.
A három kívánt funkció a következő:
- Válasszon ki egy bemeneti fájlt.
- Válassza ki azt a kimeneti mappát, ahol az átírt fájlt tárolni fogja.
- Hozzon létre egy parancsot, amely az összes változót egy használható Whisper paranccsá "összeállítja", hasonlóan ahhoz, amit magunknak beírnánk egy terminálba, majd futtassa azt.
Bemeneti fájl kiválasztása
Az első függvény, amelyet már elneveztünk "Válaszd ki a fájltAmikor hozzáadtuk a gombját a grafikus felülethez, ez:
Válaszd ki a fájlt:FileSelectFile, SelectedFileReturn
FileSelectFile egy AutoHotkey funkció, amely egy tipikus fájlkérőt jelenít meg, lehetővé téve a felhasználó számára egy fájl kiválasztását. Kiválasztott fájl az a változó a szkriptünkben, amely "tartja" a felhasználó által kiválasztott fájl elérési útját.
Amint azonban a képernyőképeinken láthatja, a következő sort is hozzáadtuk közvetlenül a függvényvégző „return” fölé:
MsgBox, %SelectedFile%
Ez lesz AHK show a Üzenetdoboz a kiválasztott fájllal, miután kiválasztottuk, ami hasznos lehet a szkript hibaelhárítása során. Ha ez az üzenetmező a kiválasztott fájl elérési útját és nevét mutatja, akkor nem a fájlválasztó gombot vagy a funkciót kell javítani.
Kimeneti mappa kiválasztása
A mappakiválasztás funkciója szinte azonos, csak a parancs neve és változója változik, ami azt mutatja, hogy fájlok helyett mappákkal van dolgunk:
Select Folder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Visszatérés
A végső funkció
Az utolsó funkció lesz a legbonyolultabb. Az OK gombra leképezve ez "összegyűjti" az összes változóértéket a grafikus felhasználói felületről, használható paranccsá alakítja, majd futtatja azt.
Kezdjük azzal, hogy megadjuk a függvény kezdetét és végét:
ButtonSubmit:Visszatérés
A grafikus felhasználói felület összes értékének "megragadásához" adja hozzá a következőket a ButtonSubmit vonal:
Gui Submit, nohide
A következő sor egy új változót hoz létre "WhisperFlags". Ezután hozzáadja a grafikus felhasználói felület összes változóját a Whisper parancs jelzőjeként.
WhisperFlags = --initial_prompt "%PromptText%" --task %TaskType% --modell %SelectedModel% --nyelv %SelectedLanguage% --output_format %OutputFormat% -o "%SelectedFolder%""%SelectedFile%"
Ezután "megmondjuk" az AHK-nak, hogy az alapértelmezett terminált (CMD.exe) használja a Whisper végrehajtható fájljának futtatásához (amelyet a WhisperVégrehajtható változó) a grafikus felhasználói felület változóival (amelyek most „össze vannak rakva” az egyetlenben WhisperFlags változó).
RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%
A még egyszerűbb hibaelhárítás érdekében a korábbiakhoz hasonlóan hozzáadtunk egy msgboxot is, de a következő sort is hozzáadtuk:
Vágólap = %WhisperExecutable% %WhisperFlags%
Ez átmásolja a Vágólap a CMD-nek kiadott teljes parancsot. Tehát, ha valami meghiúsul, ahelyett, hogy csak az AHK egyik üzenetmezőjében látná a parancsot, a vágólapon is elérhető lesz.
Nyisson meg egy terminált, illessze be a parancsot a vágólapról, és ellenőrizze a megjelenő hibákat a lehetséges problémák megkereséséhez.
Például, miközben a szkripten dolgoztam, először elfelejtettem idézőjelbe tenni a promptot. Így a parancs meghiúsult, mivel a Whisper megpróbálta zászlókként elemezni a promptot.
Tesztelés és végső módosítások
Ennyi volt – most hoztunk létre egy átíró alkalmazást az AutoHotkey grafikus felhasználói felület-készítési képességeivel és egy használatra kész AI átírási megoldással.
Próbálja meg futtatni a szkriptet (kattintson duplán a fájljára), és látnia kell a grafikus felhasználói felületet a képernyőn.
- Módosítsa a Whisper beállításait a tetején található legördülő listák segítségével.
- Írja be az átírás rövid leírását (és néhány kifejezést) a Gyors terület.
- Kattints a Fájl betöltése gombot, és válassza ki az átírni kívánt hangfájlt.
- Kattints a Válassza a Kimeneti mappa lehetőséget gombot, és válassza ki, hogy az előállított szöveges fájlt hol tárolja.
- Kattintson rendben a grafikus felhasználói felület által konfigurált Whisper felszabadításához a kiválasztott hangfájlban, és az átiratát szövegfájlként mentse a kiválasztott mappába.
Ha minden működött, térjen vissza a szkripthez, és törölje vagy írjon megjegyzést (egy ";" karakter hozzáadásával az elején) az összes hibaelhárítási funkciót (üzenetdobozok és másolás a vágólapra sorok).
A Whisper továbbvitele az AutoHotkey segítségével
A grafikus felhasználói felület alapértelmezett értékeinek helyes beállításával és esetleg egy általános prompt hozzáadásával a Whispert egy három kattintással átírható megoldás: Nem kell fizetni a kereskedelmi megoldásokért, harmadik féltől származó szolgáltatásokért, bonyolult interfészekkel való babrálás, ill. terminálba gépelve.