Zvuči teško napraviti aplikaciju za prijepis s tri klika za korištenje, ali vrlo preciznu. Predstavimo Whisper u AutoHotkey.

OpenAI-jev Whisper jedno je od najmoćnijih rješenja za pretvaranje vašeg glasa u tekst. Međutim, korištenje Whispera također može biti neugodno, budući da morate upisivati ​​naredbe za transkripciju audio datoteke u tekst. Ali zašto to raditi kada imamo AutoHotkey?

Uz AutoHotkey, možemo bez napora stvoriti osnovni GUI za aplikacije naredbenog retka kao što je Whisper. Pa, učinimo to i vidimo kako možete izraditi svoju vlastitu aplikaciju za prijepis kombinirajući AutoHotkeyjeve supermoći za stvaranje GUI-ja s OpenAI-jevim Whisperom kao "mozgom" iza gumba.

Postavljanje temelja za Whisper i AutoHotkey

S AutoHotkeyjem možete napraviti cool skripte, ali to nije sve što može. Za ovaj projekt koristit ćemo AutoHotkey za izradu GUI-ja za Whisper. To će nam omogućiti da koristimo OpenAI-jev AI alat za prepoznavanje glasa klikom na gumbe i prilagođavanjem njegove funkcionalnosti pomoću izbornika umjesto upisivanja naredbi.

instagram viewer

Međutim, to znači da ćete morati imati instalirane AutoHotkey i Whisper kako biste slijedili.

Za prvi dio jednadžbe, možete preuzmite AutoHotkey s njegove službene stranice, zatim pokrenite njegov instalacijski program i slijedite prikazane korake.

Imajte na umu da ćemo koristiti stariju "v1" verziju skriptnog jezika, a ne novu v2. To je važno jer dvije verzije koriste donekle različitu sintaksu. Ono što ćemo vidjeti ovdje možda neće raditi ako koristite novu v2.

Drugi dio je kompliciraniji, ali možete naučiti kako to učiniti u našem članku kako svoj glas pretvoriti u tekst s OpenAI-jevim Whisperom za Windows.

S oba instalirana, naš plan akcije je sljedeći:

  1. Stvorite GUI s elementima za Whisperove varijable i vrijednosti.
  2. Stvorite funkcije za preuzimanje vrijednosti iz sučelja, odabir datoteka i mapa i sastavljanje svega u upotrebljivu naredbu Whisper.
  3. Pokrenite naredbu Whisper za postizanje rezultata.

Naravno, uvijek možete koristiti ugrađenu podršku sustava Windows za pisanje glasom, kao što smo vidjeli u našem članku o kako pokrenuti glasovno pisanje u sustavu Windows 11. Ipak, kao što ćete vidjeti dok ga koristite, Whisper je puno precizniji (ali i sporiji).

Na osobnijoj bilješci, trebao bih objasniti da nisam programer i da je ovaj projekt "remiks" rješenja napravljenog za osobnu upotrebu.

Kako napraviti novu AutoHotkey skriptu

Prvi korak je stvaranje nove prazne datoteke skripte. Držite ga u vlastitoj mapi, samo u slučaju da ga odlučite prilagoditi ili nadograđivati, stvarajući još datoteka.

  1. Pokrenite svoj omiljeni upravitelj datoteka (ili pritisnite Windows ključ + E za pokretanje Windows Explorera) i stvorite mapu za svoju aplikaciju za prijepis gdje god želite.
  2. Kliknite desnom tipkom miša na prazno mjesto u prozoru i odaberite Novi > AutoHotkey skripta za stvaranje prazne datoteke skripte.
  3. Shift + desni klik na datoteku za pristup cijelom kontekstualnom izborniku i odaberite da je otvorite svojim omiljenim kodom ili uređivačem teksta. Windows vlastiti Bilježnica učinit će.
  4. Unatoč tome što je "prazna skripta", vaša AHK datoteka već će biti unaprijed popunjena nekim "stvarima". To su korisne varijable i oznake AutoHotkey koje definiraju kako bi trebao raditi na vašoj radnoj površini. Ignorirajte ih, ostavite ih onakvima kakvi jesu i ubuduće upišite ispod njih.

Upoznavanje Whisperovih zastava

Budući da izrađujemo GUI za aplikaciju naredbenog retka, zgodno je imati referencu na njene glavne varijable i oznake koje ćemo koristiti u našem projektu. Možete ih provjeriti čitanjem Whisperove dokumentacije, posjetom svoju službenu Github stranicu, i pokretanje u vašem terminalu.

Navest ćemo one koje ćemo koristiti u ovom projektu radi praktičnosti. Predlažemo da ih dodate svojoj skripti kao komentare (u odvojenim recima, svaki počinje znakom ";" iza kojeg slijedi razmak).

; Šapat zastavica:; --initial_prompt PROMPT_TEXT; --izlazni_format txt; -o IZLAZNA_MAPA; --model MODEL_ZA_UPOTREBU; --zadatak PREPISI/PREVEDI; --jezik EN/EL

Stvaranje GUI pomoću AutoHotkey

Predlažemo da svoju skriptu podijelite u odjeljke koristeći komentare kao što smo mi učinili da bi bila organizirana. Počet ćemo definiranjem nekih varijabli, nastaviti do stvarnog GUI-a i završiti definiranjem njegovih funkcija.

Počinjemo s odjeljkom u kojem ćemo definirati varijable koje ćemo možda htjeti promijeniti u budućnosti, ali ne tako često da bismo ih htjeli izlagati kroz GUI, prekomplicirajući ga. Možete upisati "Variable_Name = Sadržaj ili vrijednost varijable" s jednom varijablom i parom vrijednosti po retku.

Za ovaj projekt definirali smo a Izlazni format varijabla koju smo postavili na "txt" vrijednost i a Whisper Izvršni navođenje varijable Whisperov naziv izvršne datoteke. Na ovaj način, ako želimo koristiti isto rješenje u budućnosti za stvaranje datoteka SRT titlova umjesto TXT dokumenata ili nadogradnje Šapnite/prebacite se na alternativnu aplikaciju, možemo prilagoditi vrijednosti tih varijabli na tom jednom mjestu umjesto u cijelom skripta.

OutputFormat = txtWhisperExecutable = šapat

Postavljanje korisničkih opcija

Kada koristite Whisper u naredbenom retku, tri njegove zastavice omogućuju definiranje:

  • Ako radiš prijevod ili transkripcija
  • Audio datoteka Jezik
  • Jezik model želite upotrijebiti (dostupne su različite veličine, a svaka utječe na izvedbu NASprot kvaliteti rezultata).

Najlakši način da ponudite istu funkcionalnost putem GUI-ja je putem iskušanih i testiranih padajućih popisa. Sintaksa za dodavanje padajućeg popisa u AutoHotkey GUI je sljedeća:

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

Na temelju toga, dodajmo tri padajuća popisa našoj skripti za odabir Whisperovog jezika (između engleski/en i grčki/el), model (mali, osnovni, mali, srednji, veliki) i vrsta zadatka (prijepis ili Prevedi).

Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, maleni|baza|mali||srednji|veliki|
Gui, Add, DropDownList, x345 y5 w165 h100 vTaskType, prepisati||prevesti|

Da biste opciju postavili kao zadani odabir, upotrijebite simbol dvostruke crte ("|") iza nje. Možete vidjeti da smo u našem primjeru naš jezik postavili na hr, SelectedModel to mali, i TaskType za prepisivati.

Kako voditi Whisper

Budući da se Whisper temelji na umjetnoj inteligenciji, ne postoji način da imate apsolutnu kontrolu nad načinom na koji Whisper transkribira zvuk. Slobodno je odabrati ono što smatra optimalnim.

Međutim, kao i druga rješenja umjetne inteligencije, Whisper može prihvatiti upute korisnika. Izradom upita možete "voditi" kako transkribira vaš zvuk.

Je li rješenje koje izrađujemo uspjelo nešto ispravno prepisati? Možete pokušati "objasniti" Whisperu "o čemu se radi u glasovnoj datoteci", uključujući sintaksu riječi, akronima i fraza u vašem upitu kako želite da se pojave u transkripciji. Za to ćemo dodati polje AutoHotkey Text Edit.

Sintaksa se ne razlikuje previše od one koju smo koristili za dodavanje padajućih popisa iznad:

Gui, Dodaj, Uredi, x5 w505 h400 vPromptText, %PromptText%

"%PromptText%" na kraju "govori" AHK-u da prikaže sadržaj varijable PromptText (ako joj je već dodijeljena vrijednost) unutar tekstualnog polja. Neće pokazati ništa u skripti koju izrađujemo, ali smatrajte to rezerviranim mjestom kada eventualno u budućnosti prilagodite skriptu i za spremanje i učitavanje upita!

Biste li radije dodijelili unaprijed definiranu vrijednost PromptText varijabla? Dodajte nešto poput sljedećeg u Varijable odjeljak skripte. Ne zaboravite zamijeniti "Vaše ime" svojim stvarnim imenom.

PromptText = Transkripcija bilješki Vašeg imena

Postavljanje akcijskih gumba

Za odabir datoteka, mapa i pokretanje Whispera nakon što smo sve postavili, bolje je koristiti gumbe. Možete dodati gumbe na sučelje napravljeno od AHK koristeći sljedeće:

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

Primijetite da za razliku od varijabli u GUI elementima, koje počinju slovom "v", nazivi funkcija počinju sa "g", za "Idi (na ovo mjesto skripte)".

Jedan gumb AHK sučelja također se može smatrati "zadanim", koji će se aktivirati ako ne kliknete nigdje na GUI i pritisnete Unesi. Ovo je definirano dodavanjem "zadano" u odjeljku s koordinatama i funkcijama, kao što ćete primijetiti na našem gumbu "OK":

Gui, Dodaj, Gumb, x5 w505 h50 gSelectFile, Opterećenje FileGui, Dodati, Gumb, x5 w505 h50 gSelectFolder, OdaberiteIzlaz Mapa
Gui, Dodaj, Gumb, Zadano x5 w505 h50 gButtonSubmit, OK

Uz gore navedeno, definiramo tri gumba:

  • Jedan s oznakom "Učitaj datoteku" koji će, kada se klikne, pokrenuti Odaberite Datoteka funkcija.
  • Jedan s oznakom "Odaberite izlaznu mapu", koji će pokrenuti Odaberite mapu funkcija.
  • Jedan s oznakom "u redu", odabrano prema zadanim postavkama, "pozivanje" na ButtonSubmit funkcija.

Kako pokazati svoje GUI

Naše GUI je spremno, ali se neće pojaviti na našem zaslonu jer nismo "rekli" AutoHotkeyju da ga prikaže ili što svaki gumb treba raditi.

Za to dodajte sljedeća dva retka ispod onih koji definiraju vaš GUI:

Gui, Pokaži Povratak

Prvi redak "govori" AHK-u da prikaže GUI prozor, dok drugi označava kraj odjeljka.

Funkcije i funkcionalnost naše aplikacije

Iako smo dovršili GUI odjeljak, ako pokušate pokrenuti skriptu, ona će se srušiti. To je zato što u njemu spominjemo nepostojeće funkcije. Dakle, naš sljedeći korak je stvaranje tih funkcija.

Tri funkcije koje želimo su:

  • Odaberite ulaznu datoteku.
  • Odaberite izlaznu mapu u koju će se pohraniti transkribirana datoteka.
  • Napravite naredbu koja će "sklopiti" sve varijable u upotrebljivu Whisper naredbu, sličnu onoj koju bismo sami upisali u terminal, a zatim je pokrenite.

Odabir ulazne datoteke

Prva funkcija koju smo već nazvali "Odaberite Datoteka" kada smo dodali njegov gumb u GUI, je:

Odaberite Datoteka:FileSelectFile, SelectedFileReturn

FileSelectFile je AutoHotkey funkcija koja prikazuje tipičan file requester, dopuštajući korisniku da odabere datoteku. Odabrana datoteka je varijabla u našoj skripti koja će "držati" stazu do datoteke koju je korisnik odabrao.

Međutim, kao što ćete vidjeti na našim snimkama zaslona, ​​dodali smo i sljedeći redak odmah iznad funkcije koja završava "return":

MsgBox, %SelectedFile%

Ovo će imati AHK show a Okvir za poruke s odabranom datotekom nakon što je odaberemo, što je korisno pri rješavanju problema vaše skripte. Ako ovaj okvir s porukom prikazuje putanju i naziv odabrane datoteke, ne treba popraviti gumb ili funkciju za odabir datoteke.

Odabir izlazne mape

Funkcija za odabir mape gotovo je identična, samo se mijenjaju naziv naredbe i varijabla, kako bi se pokazalo da imamo posla s mapama umjesto s datotekama:

SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Povratak

Konačna funkcija

Konačna funkcija bit će najsloženija. Preslikano na gumb OK, ovo će "prikupiti" sve vrijednosti varijabli iz GUI-ja, pretvoriti ih u upotrebljivu naredbu, a zatim je pokrenuti.

Počinjemo navođenjem početka i kraja funkcije:

ButtonSubmit:Povratak

Da biste "zgrabili" sve vrijednosti GUI-ja, dodajte sljedeće ispod ButtonSubmit crta:

Gui Pošalji, ne sakrij

Sljedeći redak stvara novu varijablu pod nazivom "WhisperFlags". Zatim mu dodaje sve varijable GUI-a kao oznake za naredbu Whisper.

WhisperFlags = --inicijalni_prompt "%PromptText%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%SelectedFolder%""%odabrana datoteka%"

Zatim ćemo "reći" AHK-u da koristi zadani terminal (CMD.exe) za pokretanje Whisperove izvršne datoteke (koju smo definirali s Whisper Izvršni varijabla) s varijablama GUI-ja (koje su sada "sastavljene" u jednu WhisperFlags varijabla).

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

Za još lakše rješavanje problema također smo dodali msgbox, kao i prije, ali smo također dodali sljedeći redak:

Međuspremnik = %WhisperExecutable% %WhisperFlags%

Ovo će kopirati u Međuspremnik kompletna naredba izdana CMD-u. Dakle, ako nešto ne uspije, umjesto da naredbu vidite samo u jednom od AHK-ovih okvira za poruke, imat ćete je dostupnu i u svom međuspremniku.

Otvorite terminal, zalijepite naredbu iz međuspremnika i provjerite pogreške koje se pojavljuju kako biste locirali potencijalne probleme.

Na primjer, dok sam radio na scenariju, isprva sam zaboravio upit staviti u navodnike. Stoga naredba nije uspjela jer je Whisper pokušao raščlaniti upit kao zastavice.

Testiranje i završna podešavanja

To je bilo to—upravo smo izradili aplikaciju za prijepis koristeći mogućnosti izrade GUI-ja AutoHotkeya i rješenje za AI prijepis spremno za korištenje.

Pokušajte pokrenuti svoju skriptu (dvaput kliknite na datoteku) i trebali biste vidjeti svoj GUI na zaslonu.

  • Promijenite postavke Whispera pomoću padajućih popisa na vrhu.
  • Upišite kratak opis svoje transkripcije (i nekih izraza) u Potaknuti polje.
  • Kliknite na Učitaj datoteku i odaberite audio datoteku koju želite transkribirati.
  • Kliknite na Odaberite izlaznu mapu i odaberite gdje treba pohraniti proizvedenu tekstualnu datoteku.
  • Kliknite na u redu da biste pokrenuli Whisper, kako je konfigurirao vaš GUI, na odabranoj audio datoteci i spremili njen prijepis kao tekstualnu datoteku u mapu koju ste odabrali.

Ako je sve radilo, vratite se na svoju skriptu i ili izbrišite ili komentirajte (dodavanjem ";" na početku) sve funkcije za rješavanje problema (kutije s porukama i retke za kopiranje u međuspremnik).

Unapređenje Whispera s AutoHotkeyjem

Ispravnim postavljanjem zadanih vrijednosti vašeg GUI-ja i možda dodavanjem generičkog odzivnika, možete pretvoriti Whisper u rješenje s tri klika za prepisivanje: nema plaćanja komercijalnih rješenja, usluga trećih strana, petljanja s kompliciranim sučeljima ili upisivanjem u terminal.