Padaryti trimis paspaudimais naudojamą, bet labai tikslią transkripcijos programą skamba sunkiai, bet taip nėra. Supažindinkime su „Whisper“ su „AutoHotkey“.

„OpenAI's Whisper“ yra vienas iš galingiausių sprendimų, leidžiančių jūsų balsą paversti tekstu. Tačiau Whisper taip pat gali būti erzina naudoti, nes turite įvesti komandas, kad perrašytumėte garso failą į tekstą. Bet kodėl tai daryti, kai turime „AutoHotkey“?

Naudodami „AutoHotkey“ galime be vargo sukurti pagrindinę komandų eilutės programoms, tokioms kaip „Whisper“, GUI. Taigi, padarykime tai ir pažiūrėkime, kaip galite sukurti savo transkripcijos programą, sujungę AutoHotkey GUI kūrimo supergalias su OpenAI Whisper kaip „smegenimis“ už mygtukų.

„Whisper“ ir „AutoHotkey“ pagrindų klojimas

Naudodami „AutoHotkey“ galite kurti puikius scenarijus, bet tai dar ne viskas, ką ji gali padaryti. Šiam projektui naudosime AutoHotkey, kad sukurtume Whisper GUI. Tai leis mums naudoti OpenAI balso atpažinimo AI įrankį spustelėdami mygtukus ir tinkindami jo funkcijas naudodami meniu, o ne rinkdami komandas.

Tačiau tai reiškia, kad norėdami sekti, turėsite įdiegti „AutoHotkey“ ir „Whisper“.

Pirmoje lygties dalyje galite Atsisiųskite „AutoHotkey“ iš oficialios svetainės, tada paleiskite jo diegimo programą ir atlikite pateiktus veiksmus.

Atminkite, kad naudosime senesnę „v1“ skriptų kalbos versiją, o ne naują v2. Tai svarbu, nes abiejose versijose naudojama šiek tiek skirtinga sintaksė. Tai, ką matysime čia, gali neveikti, jei naudosite naują v2.

Antroji dalis yra sudėtingesnė, tačiau galite sužinoti, kaip tai padaryti, perskaitę mūsų straipsnį kaip paversti savo balsą tekstu naudojant OpenAI Whisper for Windows.

Įdiegę abu, mūsų veiksmų planas yra toks:

  1. Sukurkite GUI su Whisper kintamųjų ir reikšmių elementais.
  2. Sukurkite funkcijas, kad paimtumėte reikšmes iš sąsajos, pasirinkite failus ir aplankus ir viską surinkite į naudojamą Whisper komandą.
  3. Norėdami gauti rezultatų, paleiskite komandą Whisper.

Žinoma, visada galite naudoti „Windows“ integruotą balso rašymo palaikymą, kaip matėme mūsų straipsnyje kaip paleisti rašymą balsu sistemoje „Windows 11“.. Vis dėlto, kaip matysite jį naudodami, Whisper yra daug tikslesnis (bet ir lėtesnis).

Kalbant apie asmeniškesnę pastabą, turėčiau paaiškinti, kad nesu programuotojas, o šis projektas yra asmeniniam naudojimui sukurto sprendimo „remiksas“.

Kaip sukurti naują „AutoHotkey“ scenarijų

Pirmas žingsnis yra sukurti naują tuščią scenarijaus failą. Laikykite jį atskirame aplanke, jei nuspręsite jį patobulinti arba sukurti daugiau failų.

  1. Paleiskite mėgstamą failų tvarkyklę (arba paspauskite „Windows“ raktas + E kad paleistumėte „Windows Explorer“) ir sukurkite aplanką savo transkripcijos programai, kur tik norite.
  2. Dešiniuoju pelės mygtuku spustelėkite tuščią lango vietą ir pasirinkite Nauja > „AutoHotkey“ scenarijus Norėdami sukurti tuščią scenarijaus failą.
  3. Shift + Dešinysis klavišas Spustelėkite failą, kad pasiektumėte visą kontekstinį meniu, ir pasirinkite, kad atidarytumėte jį naudodami mėgstamą kodą arba teksto rengyklę. „Windows“ nuosavas Užrašų knygelė padarysiu.
  4. Nepaisant to, kad tai yra „tuščias scenarijus“, jūsų AHK failas jau bus iš anksto užpildytas kai kuriais „daiktais“. Tai yra naudingi „AutoHotkey“ kintamieji ir vėliavėlės, apibrėžiančios, kaip jis turėtų veikti jūsų darbalaukyje. Ignoruokite juos, palikite juos tokius, kokie jie yra, ir toliau rašykite po jais.

Susipažinimas su Whisper vėliavomis

Kadangi kuriame komandų eilutės programai GUI, patogu turėti nuorodą į pagrindinius jos kintamuosius ir vėliavėles, kurias naudosime savo projekte. Galite juos patikrinti skaitydami Whisper dokumentaciją, apsilankę oficialus Github puslapis, ir paleiskite jį savo terminale.

Patogumo sumetimais išvardysime tuos, kuriuos naudosime šiame projekte. Rekomenduojame pridėti juos prie scenarijaus kaip komentarus (atskirose eilutėse, kurių kiekviena prasideda simboliu „;“ ir tarpo).

; Šnabždesio vėliavėlės:; --initial_prompt PROMPT_TEXT; --output_format txt; -o OUTPUT_FOLDER; --modelis MODEL_TO_USE; --užduotis TRANSCRIBE/TRANSLATE; --kalba EN/EL

GUI kūrimas naudojant „AutoHotkey“.

Siūlome padalyti scenarijų į dalis naudodami komentarus, kaip tai padarėme, kad jis būtų tvarkingas. Pradėsime apibrėždami kai kuriuos kintamuosius, pereisime prie tikrosios GUI ir baigsime apibrėždami jos funkcijas.

Pradedame nuo skyriaus, kuriame apibrėžsime kintamuosius, kuriuos galbūt norėsite keisti ateityje, bet ne taip dažnai, kad norėtume juos atskleisti per GUI, tai pernelyg apsunkindami. Galite įvesti „Variable_Name = kintamojo turinys arba reikšmė“ naudodami vieną kintamojo ir reikšmių porą eilutėje.

Šiam projektui mes apibrėžėme a Išvesties formatas kintamasis, kurį nustatome į "txt"vertė ir a WhisperExecutable kintamasis teiginys Whisper vykdomojo failo pavadinimas. Tokiu būdu, jei ateityje norime naudoti tą patį sprendimą kurdami SRT subtitrų failus, o ne TXT dokumentus ar naujinimą Šnabždėdami / perjunkite į alternatyvią programą, galime koreguoti tų kintamųjų reikšmes vienoje vietoje, o ne visoje scenarijus.

OutputFormat = txtWhisperExecutable = šnabždesys

Vartotojo parinkčių nustatymas

Kai komandų eilutėje naudojate Whisper, trys jos vėliavėlės leidžia apibrėžti:

  • Jei darai vertimas arba transkripcija
  • Garso failas kalba
  • Kalba modelis norite naudoti (galimi įvairūs dydžiai, kurių kiekvienas turi įtakos našumui ir rezultatų kokybei).

Paprasčiausias būdas pasiūlyti tas pačias funkcijas per GUI yra išbandyti ir patikrintus išskleidžiamuosius sąrašus. Išskleidžiamojo sąrašo įtraukimo į AutoHotkey GUI sintaksė yra tokia:

Gui, Add, DropDownList, xPosition yPosition plotis hAukštis vKintamas_kuris_laikys_selected_value, optionA|optionB|default_optionC||optionD|

Remdamiesi tuo, prie scenarijaus pridėkime tris išskleidžiamuosius sąrašus, kad pasirinktume „Whisper“ kalbą (tarp anglų/en ir graikų/el), modelis (mažas, bazinis, mažas, vidutinis, didelis) ir užduoties tipas (transkribuoti arba išversti).

Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, mažytis|pagrindas|mažas||vidutinis|didelis|
Gui, Pridėti, DropDownList, x345 y5 w165 h100 vTaskType, transkribuoti||išversti|

Norėdami nustatyti parinktį kaip numatytąjį pasirinkimą, po jo naudokite dvigubo vamzdžio simbolį ("|"). Matote, kad mūsų pavyzdyje mes nustatėme savo kalbą lt, SelectedModel į mažasir TaskType į perrašyti.

Kaip vadovauti šnabždesiui

Kadangi „Whisper“ yra pagrįsta AI, nėra jokio būdo visiškai kontroliuoti, kaip „Whisper“ transkribuoja garsą. Gali laisvai pasirinkti, kas, jos nuomone, yra optimali.

Tačiau, kaip ir kiti AI sprendimai, „Whisper“ gali priimti vartotojo raginimus. Sukurdami raginimą galite „nurodinėti“, kaip jis transkribuoja jūsų garsą.

Ar mūsų siūlomas sprendimas ko nors tinkamai transkribavo? Galite pabandyti „paaiškinti“ ir pašnibždėti, „apie ką yra balso failas“, įskaitant žodžių, akronimų ir frazių sintaksę raginime, kaip norite, kad jie būtų rodomi transkripcijoje. Tam pridėsime lauką AutoHotkey teksto redagavimas.

Sintaksė per daug nesiskiria nuo tos, kurią naudojome pridėdami aukščiau esančius išskleidžiamuosius sąrašus:

Gui, pridėti, redaguoti, x5 w505 h400 vPromptText, % PromptText%

Pabaigoje esantis „%PromptText%“ „liepia“ AHK, kad teksto lauke būtų rodomas PromptText kintamojo turinys (jei jam jau priskirta reikšmė). Jis nieko nerodys mūsų kuriamame scenarijuje, bet laikykite jį vietos rezervuaru, kai ateityje galiausiai pakoreguosite scenarijų, kad išsaugotumėte ir įkeltumėte raginimus!

Ar norėtumėte priskirti iš anksto nustatytą reikšmę PromptText kintamasis? Pridėkite kažką panašaus į toliau pateiktą Kintamieji scenarijaus skyrių. Nepamirškite pakeisti „Jūsų vardo“ tikruoju vardu.

PromptText = Jūsų vardo užrašų transkripcija

Veiksmų mygtukų nustatymas

Norėdami pasirinkti failus, aplankus ir paleisti „Whisper“ po to, kai viską nustatėme, geriau naudoti mygtukus. Galite pridėti mygtukų prie AHK sukurtos sąsajos naudodami šiuos veiksmus:

Gui, pridėti, mygtukas, x padėtis y padėtis plotis aukštis gFunction_To_Perform, mygtuko tekstas

Atkreipkite dėmesį, kad skirtingai nei kintamieji GUI elementuose, kurie prasideda raide „v“, funkcijų pavadinimai prasideda raide „g“, o tai reiškia „Eiti (į šią scenarijaus vietą)“.

Vienas AHK sąsajos mygtukas taip pat gali būti laikomas „numatytuoju“, kuris bus aktyvuotas, jei niekur nespustelėsite GUI ir nepaspausite Įeikite. Tai apibrėžiama pridedant "numatytas“ koordinačių ir funkcijų skiltyje, kaip pastebėsite paspaudę mygtuką „Gerai“:

Gui, pridėti, mygtukas, x5 w505 h50 gSelectFile, Įkelti FileGui, Papildyti, Mygtukas, x5 w505 h50 gSelectFolder, PasirinkiteIšvestis Aplankas
Gui, pridėti, mygtukas, Numatytas x5 w505 h50 gButtonSubmit, gerai

Atsižvelgdami į tai, kas išdėstyta aukščiau, mes apibrėžiame tris mygtukus:

  • Vienas pažymėtas "Įkelti failą“, kurį spustelėjus bus paleista Pasirinkite Failas funkcija.
  • Vienas pažymėtas "Pasirinkite išvesties aplanką“, kuri veiks Pasirinkite aplanką funkcija.
  • Vienas pažymėtas "Gerai“, pasirinkta pagal numatytuosius nustatymus, „skambinant“ į Mygtukas Pateikti funkcija.

Kaip parodyti savo GUI

Mūsų grafinė sąsaja yra paruošta, bet nepasirodys mūsų ekrane, nes nesame „nusakę“ AutoHotkey, kad ji būtų rodoma arba ką kiekvienas mygtukas turėtų daryti.

Norėdami tai padaryti, po tomis, kurios apibrėžia jūsų GUI, pridėkite šias dvi eilutes:

Gui, ShowReturn

Pirmoji eilutė „liepia“ AHK parodyti GUI langą, o antroji žymi sekcijos pabaigą.

Mūsų programos funkcijos ir funkcionalumas

Nors užbaigėme GUI skyrių, jei bandysite paleisti scenarijų, jis sugenda. Taip yra todėl, kad jame nurodome neegzistuojančias funkcijas. Taigi, kitas mūsų žingsnis yra sukurti šias funkcijas.

Trys norimos funkcijos yra šios:

  • Pasirinkite įvesties failą.
  • Pasirinkite išvesties aplanką, kuriame bus saugomas perrašytas failas.
  • Sukurkite komandą, kuri visus kintamuosius „surinks“ į naudojamą „Whisper“ komandą, panašią į tai, ką patys įvestume terminale, ir tada ją paleiskite.

Įvesties failo pasirinkimas

Pirmoji funkcija, kurią jau pavadinome "Pasirinkite Failas", kai mes įtraukėme jo mygtuką prie GUI, yra:

Pasirinkite Failas:FileSelectFile, SelectedFileReturn

FileSelectFile yra AutoHotkey funkcija, kuri rodo tipišką failo užklausą, leidžiančią vartotojui pasirinkti failą. Pasirinktas failas yra mūsų scenarijaus kintamasis, kuris „laikys“ kelią į vartotojo pasirinktą failą.

Tačiau, kaip matote mūsų ekrano kopijose, mes taip pat pridėjome šią eilutę tiesiai virš funkcijos pabaigos „grįžti“:

MsgBox, %SelectedFile%

Tai turės AHK šou a Žinučių dėžutė su pasirinktu failu, kai jį pasirinksime, o tai naudinga sprendžiant scenarijaus triktis. Jei šiame pranešimų laukelyje rodomas pasirinkto failo kelias ir pavadinimas, tai nėra failo pasirinkimo mygtukas ar funkcija, kurią reikia pataisyti.

Išvesties aplanko pasirinkimas

Aplanko pasirinkimo funkcija yra beveik identiška, keičiasi tik komandos pavadinimas ir kintamasis, kad būtų parodyta, kad mes susiduriame su aplankais, o ne su failais:

SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Grįžti

Galutinė funkcija

Galutinė funkcija bus pati sudėtingiausia. Susieta su mygtuku Gerai, tai „surinks“ visas kintamųjų reikšmes iš GUI, pavers jas tinkama komanda ir paleis ją.

Pradedame nurodydami funkcijos pradžią ir pabaigą:

ButtonSubmit:Grįžti

Jei norite „patraukti“ visas GUI reikšmes, po Mygtukas Pateikti eilutė:

Gui Submit, nohide

Ši eilutė sukuria naują kintamąjį pavadinimu "Šnabždesio vėliavėlės". Tada jis prideda visus GUI kintamuosius kaip komandos Whisper vėliavėles.

WhisperFlags = --initial_prompt „%PromptText%“ --užduotis %TaskType% --modelis %SelectedModel% --kalba %SelectedLanguage% --output_format % OutputFormat% -o „%SelectedFolder%“„% SelectedFile%“

Tada mes „pasakysime“ AHK naudoti numatytąjį terminalą (CMD.exe), kad paleistumėte Whisper vykdomąjį failą (kurį apibrėžėme naudodami WhisperExecutable kintamasis) su GUI kintamaisiais (kurie dabar yra „surinkti“ single Šnabždesio vėliavėlės kintamasis).

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

Kad trikčių šalinimas būtų dar lengvesnis, kaip ir anksčiau, taip pat įtraukėme msgbox, bet taip pat pridėjome šią eilutę:

Mainų sritis = % WhisperExecutable % % Whisper Flags%

Tai nukopijuos į Iškarpinė visa komanda, išduota CMD. Taigi, jei kas nors nepavyks, užuot matę komandą tik viename iš AHK pranešimų laukelių, turėsite ją ir savo mainų srityje.

Atidarykite terminalą, įklijuokite komandą iš mainų srities ir patikrinkite iššokančias klaidas, kad surastumėte galimas problemas.

Pavyzdžiui, dirbdamas su scenarijumi iš pradžių pamiršau, kad raginimas būtų įdėtas į kabutes. Taigi komanda nepavyko, nes Whisper bandė išanalizuoti raginimą kaip vėliavėles.

Testavimas ir galutiniai patobulinimai

Tai buvo viskas – ką tik sukūrėme transkripcijos programą naudodami „AutoHotkey“ GUI kūrimo galimybes ir paruoštą naudoti AI transkripcijos sprendimą.

Pabandykite paleisti scenarijų (dukart spustelėkite jo failą) ir ekrane turėtumėte pamatyti savo GUI.

  • Pakeiskite Whisper nustatymus naudodami viršuje esančius išskleidžiamuosius sąrašus.
  • Įveskite trumpą transkripcijos aprašymą (ir kai kuriuos terminus). Raginimas lauke.
  • Spustelėkite Įkelti failą mygtuką ir pasirinkite garso failą, kurį norite perrašyti.
  • Spustelėkite Pasirinkite išvesties aplanką mygtuką ir pasirinkite, kur turėtų būti saugomas sukurtas tekstinis failas.
  • Spustelėkite Gerai kad paleistumėte Whisper, kaip sukonfigūravo jūsų GUI, pasirinktame garso faile ir išsaugotumėte jo transkripciją kaip tekstinį failą pasirinktame aplanke.

Jei viskas pavyko, grįžkite į savo scenarijų ir ištrinkite arba pakomentuokite (pridėdami „;“ jų pradžioje) visas trikčių šalinimo funkcijas (pranešimų laukelius ir kopijavimo į iškarpinę eilutes).

„Whisper“ tęsimas naudojant „AutoHotkey“.

Teisingai nustatę numatytąsias GUI reikšmes ir galbūt pridėję bendrąjį raginimą, galite paversti „Whisper“ Trijų paspaudimų transkribavimo sprendimas: nereikia mokėti už komercinius sprendimus, trečiųjų šalių paslaugas, tvarkytis su sudėtingomis sąsajomis arba įvesdami terminalą.