Izdelava aplikacije za prepisovanje s tremi kliki, vendar zelo natančne, se sliši težko, vendar ni. Predstavimo Whisper za AutoHotkey.
OpenAI's Whisper je ena najmočnejših rešitev za pretvorbo vašega glasu v besedilo. Vendar pa je Whisper lahko tudi nadležen za uporabo, saj morate vnesti ukaze za prepis zvočne datoteke v besedilo. Toda zakaj bi to počeli, ko pa imamo AutoHotkey?
Z AutoHotkey lahko brez truda ustvarimo osnovni GUI za aplikacije ukazne vrstice, kot je Whisper. Torej, naredimo to in poglejmo, kako lahko ustvarite svojo lastno aplikacijo za prepisovanje, tako da združite AutoHotkeyjeve supermoči za ustvarjanje grafičnega uporabniškega vmesnika in OpenAI-jev Whisper kot "možgane" za gumbi.
Postavitev temeljev za Whisper in AutoHotkey
Z AutoHotkey lahko ustvarite kul skripte, vendar to ni vse, kar zmore. Za ta projekt bomo uporabili AutoHotkey za ustvarjanje GUI za Whisper. To nam bo omogočilo uporabo OpenAI-jevega orodja AI za prepoznavanje glasu s klikanjem gumbov in prilagajanjem njegove funkcionalnosti z uporabo menijev namesto vnašanja ukazov.
Vendar to pomeni, da boste morali imeti nameščena AutoHotkey in Whisper, da boste sledili.
Za prvi del enačbe lahko prenesite AutoHotkey z njegove uradne strani, nato zaženite njegov namestitveni program in sledite predstavljenim korakom.
Upoštevajte, da bomo uporabili starejšo različico »v1« skriptnega jezika, ne nove v2. To je pomembno, ker obe različici uporabljata nekoliko različno sintakso. To, kar bomo videli tukaj, morda ne bo delovalo, če uporabljate novo v2.
Drugi del je bolj zapleten, vendar se lahko naučite, kako to storiti, tako da preverite naš članek o kako spremeniti svoj glas v besedilo s programom OpenAI Whisper za Windows.
Ko sta oba nameščena, je naš akcijski načrt naslednji:
- Ustvarite GUI z elementi za spremenljivke in vrednosti Whisperja.
- Ustvarite funkcije za zajemanje vrednosti iz vmesnika, izbiro datotek in map ter sestavljanje vsega v uporaben ukaz Whisper.
- Zaženite ukaz Whisper, da dobite rezultate.
Seveda lahko vedno uporabite vgrajeno podporo sistema Windows za glasovno tipkanje, kot smo videli v našem članku o kako zagnati glasovno tipkanje v sistemu Windows 11. Kljub temu, kot boste videli med uporabo, je Whisper veliko natančnejši (vendar tudi počasnejši).
Bolj osebno naj pojasnim, da nisem programer in da je ta projekt "remiks" rešitve za osebno uporabo.
Kako narediti nov skript AutoHotkey
Prvi korak je ustvariti novo prazno skriptno datoteko. Hranite ga v svoji mapi, če se odločite, da ga prilagodite ali nadgradite in ustvarite več datotek.
- Zaženite svojega priljubljenega upravitelja datotek (ali pritisnite Ključ Windows + E za zagon programa Windows Explorer) in ustvarite mapo za vašo aplikacijo za prepis kjer koli želite.
- Z desno miškino tipko kliknite prazno mesto v oknu in izberite Novo > Skript AutoHotkey da ustvarite prazno skriptno datoteko.
- Shift + desni klik na datoteko za dostop do celotnega kontekstnega menija in izberite, da jo odprete s svojo priljubljeno kodo ali urejevalnikom besedila. Windows lasten Beležnica bo naredil.
- Kljub temu, da je "prazen skript", bo vaša datoteka AHK že vnaprej poseljena z nekaterimi "stvarimi". To so uporabne spremenljivke in zastavice AutoHotkey, ki določajo, kako naj deluje na vašem namizju. Ignorirajte jih, pustite jih takšne, kot so, in vse svoje prihodnje tipkajte pod njimi.
Spoznavanje Whisper's Flags
Ker izdelujemo GUI za aplikacijo ukazne vrstice, je priročno imeti sklic na njene glavne spremenljivke in zastavice, ki jih bomo uporabljali v našem projektu. Lahko jih preverite tako, da preberete Whisperjevo dokumentacijo, obiščete svojo uradno stran Githubin ga zaženete v svojem terminalu.
Zaradi priročnosti bomo navedli tiste, ki jih bomo uporabili v tem projektu. Predlagamo, da jih dodate svojemu skriptu kot komentarje (v ločenih vrsticah, od katerih se vsaka začne z znakom ";", ki mu sledi presledek).
; Šepet zastavic:; --initial_prompt PROMPT_TEXT; --output_format txt; -o IZHODNA_MAPA; --model MODEL_ZA_UPORABO; --naloga PREPISI/PREVEDI; --jezik EN/EL
Ustvarjanje GUI z AutoHotkey
Predlagamo, da svoj skript razdelite na dele z uporabo komentarjev, kot smo to storili mi, da ostane organiziran. Začeli bomo z definiranjem nekaterih spremenljivk, nadaljevali z dejanskim GUI in končali z definiranjem njegovih funkcij.
Začnemo z razdelkom, v katerem bomo definirali spremenljivke, ki jih bomo morda želeli spremeniti v prihodnosti, vendar ne tako pogosto, da bi jih radi izpostavili skozi GUI in ga preveč zapletli. Vnesete lahko "Ime_spremenljivke = Vsebina ali vrednost spremenljivke" z enim parom spremenljivke in vrednosti na vrstico.
Za ta projekt smo definirali a OutputFormat spremenljivka, ki smo jo nastavili na "txt" vrednost in a Whisper Izvedljiv navedba spremenljivke Ime izvršljive datoteke Whisper. Na ta način, če želimo v prihodnosti uporabiti isto rešitev za ustvarjanje datotek s podnapisi SRT namesto dokumentov TXT ali nadgradnjo Šepetanje/preklop na alternativno aplikacijo, lahko prilagodimo vrednosti teh spremenljivk na tem enem samem mestu namesto v celotnem scenarij.
OutputFormat = txtWhisperExecutable = šepet
Nastavitev uporabniških možnosti
Ko uporabljate Whisper v ukazni vrstici, vam tri njegove zastavice omogočajo definiranje:
- Če delaš prevod oz prepisovanje
- Zvočna datoteka jezik
- Jezik model ki ga želite uporabiti (na voljo so različne velikosti, od katerih vsaka vpliva na zmogljivost V primerjavi s kakovostjo rezultatov).
Najlažji način, da ponudite enako funkcionalnost prek GUI, je s preizkušenimi spustnimi seznami. Sintaksa za dodajanje spustnega seznama v GUI AutoHotkey je naslednja:
Gui, Add, DropDownList, xPosition yPosition wWidth hHeight vVariable_that_will_hold_selected_value, optionA|optionB|default_optionC||optionD|
Na podlagi tega našemu skriptu dodajmo tri spustne sezname za izbiro Whisperjevega jezika (med angleščina/en in grščina/el), model (majhen, osnovni, majhen, srednji, velik) in vrsta naloge (prepis oz. prevesti).
Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, majhen|osnova|majhen||srednji|velik|
Gui, Dodaj, DropDownList, x345 y5 w165 h100 vTaskType, prepis||prevedi|
Če želite nastaviti možnost kot privzeto izbiro, za njo uporabite simbol dvojne črte (»|«). Vidite lahko, da smo v našem primeru jezik nastavili na en, izbrani model za majhna, in TaskType za prepisati.
Kako voditi Whisper
Ker Whisper temelji na umetni inteligenci, ni možnosti, da bi imeli popoln nadzor nad tem, kako Whisper prepisuje zvok. Prosto lahko izbere tisto, kar se mu zdi optimalno.
Vendar, tako kot druge rešitve AI, lahko Whisper sprejme uporabniške pozive. Če ustvarite poziv, lahko "vodite", kako prepiše vaš zvok.
Ali rešitev, ki jo pripravljamo, ni uspela pravilno prepisati nečesa? Lahko poskusite "razložiti" Whisperju, "za kaj gre v glasovni datoteki", vključno s sintakso besed, akronimov in fraz v vašem pozivu, kot želite, da se prikažejo v prepisu. Za to bomo dodali polje za urejanje besedila AutoHotkey.
Sintaksa ni preveč drugačna od tiste, ki smo jo uporabili za dodajanje spustnih seznamov zgoraj:
Gui, Dodaj, Uredi, x5 w505 h400 vPromptText, %PromptText%
»%PromptText%« na koncu »pove« AHK, naj prikaže vsebino spremenljivke PromptText (če ji je že dodeljena vrednost) v besedilnem polju. V skriptu, ki ga izdelujemo, ne bo pokazal ničesar, vendar ga upoštevajte kot nadomestno mesto, ko boste v prihodnosti sčasoma spreminjali skript, tudi za shranjevanje in nalaganje pozivov!
Ali bi raje dodelili vnaprej določeno vrednost PromptText spremenljivka? Dodajte nekaj podobnega naslednjemu Spremenljivke del scenarija. Ne pozabite nadomestiti "Vaše ime" s svojim dejanskim imenom.
PromptText = Transkripcija opomb vašega imena
Nastavitev akcijskih gumbov
Za izbiro datotek, map in zagon Whisperja, potem ko smo vse nastavili, je bolje uporabiti gumbe. Vmesniku, ki ga je izdelal AHK, lahko dodate gumbe z naslednjim:
Gui, Add, Button, xPosition yPosition wWidth hHeight gFunction_To_Perform, Button Text
Upoštevajte, da se za razliko od spremenljivk v elementih GUI, ki se začnejo s črko "v", imena funkcij začnejo z "g" za "Pojdi (na to mesto skripta)".
En sam gumb vmesnika AHK se lahko šteje tudi za "privzetega", ki se bo aktiviral, če ne kliknete nikjer v GUI in pritisnete Vnesite. To je definirano z dodajanjem "privzeto" v razdelku s koordinatami in funkcijami, kot boste opazili v našem gumbu "V redu":
Gui, Dodaj, Gumb, x5 w505 h50 gSelectFile, obremenitev FileGui, Dodaj, Gumb, x5 w505 h50 gSelectFolder, IzberiteIzhod Mapa
Gui, Dodaj, Gumb, Privzeto x5 w505 h50 gButtonSubmit, OK
Z zgornjim definiramo tri gumbe:
- Ena z oznako "Naloži datoteko", ki bo ob kliku zagnal Izberite Datoteka funkcijo.
- Ena z oznako "Izberite Izhodna mapa«, ki bo izvajal Izberite mapo funkcijo.
- Ena z oznako "v redu", ki je privzeto izbran, "pokliče" ButtonSubmit funkcijo.
Kako pokazati svoj GUI
Naš grafični uporabniški vmesnik je pripravljen, vendar se ne bo prikazal na našem zaslonu, ker AutoHotkeyju nismo "povedali", naj ga prikaže ali kaj naj naredi vsak gumb.
Za to dodajte naslednji dve vrstici pod tistima, ki definirata vaš GUI:
Gui, Prikaži vrnitev
Prva vrstica "pove" AHK, naj prikaže okno GUI, medtem ko druga označuje konec odseka.
Funkcije in funkcionalnost naše aplikacije
Čeprav smo dokončali razdelek GUI, se bo skript zrušil, če poskusite zagnati. To je zato, ker se v njem sklicujemo na neobstoječe funkcije. Torej, naša naslednja poteza je ustvariti te funkcije.
Tri funkcije, ki jih želimo, so:
- Izberite vhodno datoteko.
- Izberite izhodno mapo, v katero bo shranjena prepisana datoteka.
- Izdelajte ukaz, ki bo "sestavil" vse spremenljivke v uporaben ukaz Whisper, podoben temu, kar bi sami vnesli v terminal, in ga nato zagnali.
Izbira vhodne datoteke
Prva funkcija, ki smo jo že poimenovali "Izberite Datoteka«, ko smo dodali njegov gumb v GUI, je:
Izberite Datoteka:FileSelectFile, SelectedFileReturn
FileSelectFile je funkcija AutoHotkey, ki prikaže tipičen zahtevalnik datotek in uporabniku omogoča izbiro datoteke. Izbrana datoteka je spremenljivka v našem skriptu, ki bo "držala" pot do datoteke, ki jo je izbral uporabnik.
Vendar, kot boste videli na naših posnetkih zaslona, smo dodali tudi naslednjo vrstico tik nad "return" za konec funkcije:
MsgBox, %SelectedFile%
To bo imelo AHK show a Sporočilno polje z izbrano datoteko, potem ko jo izberemo, kar je uporabno pri odpravljanju težav s skriptom. Če to polje s sporočilom prikazuje pot in ime izbrane datoteke, ni treba popraviti gumba ali funkcije za izbiro datoteke.
Izbira izhodne mape
Funkcija za izbiro mape je skoraj enaka, spreminjata se le ime in spremenljivka ukaza, da pokažemo, da imamo opravka z mapami namesto z datotekami:
SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Vrnitev
Končna funkcija
Končna funkcija bo najbolj zapletena. Preslikano na gumb OK, bo to "zbralo" vse vrednosti spremenljivk iz GUI, jih preoblikovalo v uporaben ukaz in ga nato zagnalo.
Začnemo z navedbo začetka in konca funkcije:
ButtonSubmit:Vrnitev
Če želite "zgrabiti" vse vrednosti GUI, dodajte naslednje pod ButtonSubmit vrstica:
Gui Predloži, ne skrij
Naslednja vrstica ustvari novo spremenljivko z imenom "WhisperFlags". Nato mu doda vse spremenljivke GUI kot zastavice za ukaz Whisper.
WhisperFlags = --initial_prompt "%PromptText%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%IzbranaMapa%""%IzbranaDatoteka%"
Nato bomo AHK "povedali", naj uporabi privzeti terminal (CMD.exe) za zagon Whisperjevega izvedljivega (ki smo ga definirali z Whisper Izvedljiv spremenljivka) s spremenljivkami GUI (ki so zdaj "sestavljene" v eno WhisperFlags spremenljivka).
RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%
Za še lažje odpravljanje težav smo dodali tudi msgbox, kot prej, dodali pa smo tudi naslednjo vrstico:
Odložišče = %WhisperExecutable% %WhisperFlags%
To bo kopiralo v Odložišče celoten ukaz, izdan CMD. Torej, če nekaj ne uspe, namesto da vidite ukaz le v enem od sporočilnih oken AHK, ga boste imeli na voljo tudi v svojem odložišču.
Odprite terminal, prilepite ukaz iz odložišča in preverite napake, ki se prikažejo, da poiščete morebitne težave.
Na primer, ko sem delal na scenariju, sem sprva pozabil, da imam poziv v narekovajih. Tako ukaz ni uspel, saj je Whisper poskušal razčleniti poziv kot zastavice.
Testiranje in končne prilagoditve
To je bilo to – pravkar smo ustvarili aplikacijo za prepisovanje z uporabo zmožnosti izdelave grafičnega uporabniškega vmesnika AutoHotkey in rešitve za prepisovanje z umetno inteligenco, pripravljene za uporabo.
Poskusite zagnati skript (dvokliknite njegovo datoteko) in na zaslonu bi morali videti svoj GUI.
- Spremenite nastavitve Whisperja s spustnimi seznami na vrhu.
- Vnesite kratek opis svojega prepisa (in nekaj izrazov) v Poziv polje.
- Kliknite na Naloži datoteko in izberite zvočno datoteko, ki jo želite prepisati.
- Kliknite na Izberite Izhodna mapa in izberite, kam naj se shrani ustvarjena besedilna datoteka.
- Kliknite na v redu da sprostite Whisper, kot ga je konfiguriral vaš GUI, na vaši izbrani zvočni datoteki in shranite njen prepis kot besedilno datoteko v mapo, ki ste jo izbrali.
Če je vse delovalo, se vrnite k svojemu skriptu in izbrišite ali komentirajte (z dodajanjem »;« na začetku) vse funkcije za odpravljanje težav (sporočilna polja in vrstice za kopiranje v odložišče).
Naprej Whisper z AutoHotkey
Če pravilno nastavite privzete vrednosti grafičnega uporabniškega vmesnika in morda dodate splošni poziv, lahko Whisper spremenite v rešitev s tremi kliki za prepis: Brez plačevanja komercialnih rešitev, storitev tretjih oseb, ubadanja z zapletenimi vmesniki ali tipkanje v terminalu.