Cum să vă creați propria aplicație de transcriere Windows cu Whisper și AutoHotkey

Whisper de la OpenAI este una dintre cele mai puternice soluții pentru a vă transforma vocea în text. Cu toate acestea, Whisper poate fi, de asemenea, enervant de utilizat, deoarece trebuie să tastați comenzi pentru a transcrie un fișier audio în text. Dar de ce facem asta când avem AutoHotkey?

Cu AutoHotkey, putem crea fără efort o interfață grafică de bază pentru aplicații de linie de comandă precum Whisper. Așadar, haideți să facem asta și să vedem cum vă puteți crea propria aplicație de transcriere combinând superputerile AutoHotkey de a crea GUI cu Whisper de la OpenAI ca „creier” din spatele butoanelor.

Punerea bazelor pentru Whisper și AutoHotkey

Puteți face scripturi interesante cu AutoHotkey, dar asta nu este tot ce poate face. Pentru acest proiect, vom folosi AutoHotkey pentru a crea o interfață grafică pentru Whisper. Acest lucru ne va permite să folosim instrumentul AI de recunoaștere a vocii de la OpenAI făcând clic pe butoane și personalizându-i funcționalitatea folosind meniuri în loc să tastăm comenzi.

Cu toate acestea, aceasta înseamnă că va trebui să aveți atât AutoHotkey, cât și Whisper instalate pentru a urma.

Pentru prima parte a ecuației, puteți descărcați AutoHotkey de pe site-ul său oficialapoi rulați programul de instalare al acestuia și urmați pașii prezentați.

Rețineți că vom folosi versiunea mai veche „v1” a limbajului de scripting, nu noua versiune v2. Acest lucru este important deoarece cele două versiuni folosesc o sintaxă oarecum diferită. Ceea ce vom vedea aici ar putea să nu funcționeze dacă folosiți noua versiune v2.

A doua parte este mai complicată, dar puteți învăța cum să o faceți verificând articolul nostru despre cum să vă transformați vocea în text cu Whisper pentru Windows de la OpenAI.

Cu ambele instalate, planul nostru de acțiune este următorul:

  • Creați o interfață grafică cu elemente pentru variabilele și valorile lui Whisper.
  • Creați funcții pentru a prelua valori din interfață, selectați fișiere și foldere și asamblați totul într-o comandă Whisper utilizabilă.
  • Rulați comanda Whisper pentru a produce rezultate.
  • Desigur, puteți utiliza întotdeauna suportul încorporat Windows pentru tastarea vocală, așa cum am văzut în articolul nostru despre cum să porniți tastarea vocală pe Windows 11. Totuși, așa cum veți vedea în timp ce îl utilizați, Whisper este mult mai precis (dar de asemenea mai lent).

    Pe o notă mai personală, ar trebui să explic că nu sunt programator, iar acest proiect este un „remix” al unei soluții făcute pentru uz personal.

    Cum să creați un nou script AutoHotkey

    Primul pas este să creați un nou fișier script gol. Păstrați-l în propriul folder, doar în cazul în care decideți să îl modificați sau să construiți pe el, creând mai multe fișiere.

  • Rulați managerul de fișiere preferat (sau apăsați tasta Windows + E pentru a lansa Windows Explorer) și creați un folder pentru aplicația de transcriere oriunde doriți.
  • Faceți clic dreapta pe un loc liber al ferestrei și selectați New > AutoHotkey Script pentru a crea un fișier script gol.
  • Shift + Faceți clic dreapta pe fișier pentru a accesa meniul contextual complet și selectați pentru a-l deschide cu codul sau editorul de text preferat. Notepad-ul propriu al Windows va fi bine.
  • În ciuda faptului că este „un script gol”, fișierul AHK va fi deja pre-populat cu câteva „lucruri”. Acestea sunt variabile și semnalizatoare AutoHotkey utile care definesc cum ar trebui să funcționeze pe desktop. Ignoră-le, lasă-le așa cum sunt și tastați-le pe viitor.
  •   Cum să setați o aplicație implicită după tipul de fișier pe Windows 10 1803

    Cunoașterea steagurilor lui Whisper

    Deoarece realizăm o interfață grafică pentru o aplicație de linie de comandă, este la îndemână să avem o referință la variabilele și steagurile sale majore pe care le vom folosi în proiectul nostru. Le puteți verifica citind documentația lui Whisper, vizitând pagina sa oficială Githubși rulați-l în terminalul dvs.

    Le vom enumera pe cele pe care le vom folosi în acest proiect pentru comoditate. Vă sugerăm să le adăugați în script-ul dvs. ca comentarii (în rânduri separate, fiecare începând cu un caracter „;” urmat de un spațiu).

     ; Whisper Flags:;  

    Crearea interfeței grafice cu AutoHotkey

    Vă sugerăm să vă împărțiți scriptul în secțiuni folosind comentarii așa cum am făcut noi pentru a-l menține organizat. Vom începe prin a defini unele variabile, vom continua cu GUI-ul propriu-zis și vom încheia prin a-i defini funcțiile.

    Stabilirea variabilelor ascunse

    Începem cu o secțiune în care vom defini variabilele pe care ar putea dori să le schimbăm în viitor, dar nu atât de des încât am dori să le expunem prin GUI, complicând-o prea mult. Puteți introduce „Variable_Name = Conținutul sau valoarea variabilei” cu o pereche de variabilă și valoare pe linie.

    Pentru acest proiect, am definit o variabilă OutputFormat pe care o setăm la valoarea „txt” și o variabilă WhisperExecutable care indică numele fișierului executabil al lui Whisper. În acest fel, dacă dorim să folosim aceeași soluție în viitor pentru a crea fișiere de subtitrare SRT în loc de documente TXT sau să facem upgrade Whisper/switch la o aplicație alternativă, putem ajusta valorile acelor variabile în acel punct unic și nu în tot scriptul. .

     OutputFormat = txtWhisperExecutable = whisper 

    Configurarea opțiunilor utilizatorului

    Când utilizați Whisper pe linia de comandă, trei dintre steaguri vă permit să definiți:

    • Dacă faci traducere sau transcriere
    • Limba fișierului audio
    • Modelul de limbă pe care doriți să îl utilizați (sunt disponibile diferite dimensiuni, fiecare afectând performanța VS calitatea rezultatelor).

    Cel mai simplu mod de a oferi aceeași funcționalitate printr-o interfață grafică este prin listele derulante încercate și testate. Sintaxa pentru adăugarea unei liste derulante la o GUI AutoHotkey este următoarea:

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

    Pe baza acestui lucru, să adăugăm trei liste derulante la scriptul nostru pentru a selecta limba lui Whisper (între engleză/en și greacă/el), model (mic, de bază, mic, mediu, mare) și tipul de sarcină (transcrie sau traduce) .

     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|

    Pentru a seta o opțiune ca selecție implicită, utilizați un simbol de conductă dublă (“|”) după ea. Puteți vedea că, în exemplul nostru, am setat limba noastră la en, SelectedModel la mic și TaskType pentru a transcrie.

    Cum să ghidezi Whisper

    Deoarece Whisper se bazează pe inteligență artificială, nu există nicio modalitate de a avea control absolut asupra modului în care Whisper transcrie sunetul. Este liber să aleagă ceea ce consideră optim.

      Cum să excludeți un fișier, un folder sau un proces din Windows Defender în Windows 10

    Cu toate acestea, ca și alte soluții AI, Whisper poate accepta solicitările utilizatorului. Prin crearea unui prompt, puteți „ghida” modul în care acesta vă transcrie sunetul.

    Soluția pe care o facem nu a reușit să transcrie ceva corect? Puteți încerca să „explicați” la Whisper „despre ce este vorba în fișierul vocal”, inclusiv sintaxa cuvintelor, acronimelor și expresiilor din promptul dvs., așa cum doriți să apară în transcriere. Pentru asta, vom adăuga un câmp AutoHotkey Text Edit.

    Sintaxa nu este prea diferită de ceea ce am folosit pentru adăugarea listelor derulante de mai sus:

     Gui, Add, Edit, x5 w505 h400 vPromptText, %PromptText% 

    „%PromptText%” de la sfârșit „spune” lui AHK să arate conținutul variabilei PromptText (dacă i s-a atribuit deja o valoare) în câmpul de text. Nu va afișa nimic în scriptul pe care îl realizăm, dar consideră-l un substituent pentru atunci când în cele din urmă modificați scriptul în viitor și pentru a salva și încărca solicitările!

    Ați prefera să atribuiți o valoare predefinită variabilei PromptText? Adăugați ceva de genul următor la secțiunea Variabile a scriptului. Nu uitați să înlocuiți „Numele dvs.” cu numele dvs. real.

     PromptText = Transcription of Your Name's notes 

    Configurarea butoanelor de acțiune

    Pentru a alege fișiere, foldere și pentru a rula Whisper după ce am configurat totul, este mai bine să folosiți butoanele. Puteți adăuga butoane la o interfață creată de AHK utilizând următoarele:

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

    Observați că, spre deosebire de variabilele din elementele GUI, care încep cu litera „v”, numele funcțiilor încep cu „g”, pentru „Mergeți (în acest loc al scriptului)”.

    Un singur buton al unei interfețe AHK poate fi, de asemenea, considerat „cel implicit”, care va fi activat dacă nu faceți clic pe nicăieri pe GUI și nu apăsați Enter. Acest lucru este definit prin adăugarea „implicit” în secțiunea de coordonate și funcții, așa cum veți observa în butonul nostru „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

    Cu cele de mai sus, definim trei butoane:

    • Unul etichetat „Încărcare fișier” care, atunci când se face clic, va rula funcția SelectFile.
    • Unul etichetat „Choose Output Folder”, care va rula funcția SelectFolder.
    • Unul etichetat „OK”, selectat implicit, „apelând” funcția ButtonSubmit.

    Cum să vă arătați GUI

    GUI-ul nostru este gata, dar nu va apărea pe ecran deoarece nu am „spus” AutoHotkey să o arate sau ce ar trebui să facă fiecare buton.

    Pentru aceasta, adăugați următoarele două linii sub cele care vă definesc GUI:

     Gui, ShowReturn 

    Prima linie „spune” lui AHK să arate fereastra GUI, în timp ce a doua marchează sfârșitul secțiunii.

    Funcțiile și funcționalitatea aplicației noastre

    Deși am finalizat secțiunea GUI, dacă încercați să rulați scriptul, acesta se va bloca. Asta pentru că ne referim la funcții inexistente în el. Deci, următoarea noastră mișcare este să creăm acele funcții.

    Cele trei funcții pe care le dorim sunt:

    • Selectați un fișier de intrare.
    • Selectați folderul de ieșire în care va fi stocat fișierul transcris.
    • Creați o comandă care va „asambla” toate variabilele într-o comandă Whisper utilizabilă, asemănătoare cu ceea ce am introduce noi înșine într-un terminal, și apoi am rula-o.
      Cum se montează imagini ISO pe Windows 10

    Selectarea fișierului de intrare

    Prima funcție, pe care am numit-o deja „SelectFile” când am adăugat butonul său la GUI, este:

     SelectFile:FileSelectFile, SelectedFileReturn 

    FileSelectFile este o funcție AutoHotkey care afișează un solicitant de fișier tipic, permițând utilizatorului să selecteze un fișier. SelectedFile este variabila din scriptul nostru care va „reține” calea către fișierul selectat de utilizator.

    Cu toate acestea, după cum veți vedea în capturile noastre de ecran, am adăugat și următoarea linie chiar deasupra „return” care se încheie cu funcția:

     MsgBox, %SelectedFile% 

    Acest lucru va face ca AHK să arate o casetă de mesaje cu fișierul selectat după ce îl alegem, ceea ce este util atunci când depanați scriptul. Dacă această casetă de mesaj afișează calea și numele fișierului selectat, nu este butonul sau funcția de selectare a fișierului care necesită reparare.

    Selectarea folderului de ieșire

    Funcția de selectare a unui folder este aproape identică, doar numele și variabila comenzii se schimbă, pentru a arăta că avem de-a face cu foldere în loc de fișiere:

     SelectFolder:FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Return 

    Funcția finală

    Funcția finală va fi cea mai complicată. Mapat la butonul OK, acesta va „aduna” toate valorile variabile din GUI, le va transforma într-o comandă utilizabilă și apoi o va rula.

    Începem prin a menționa începutul și sfârșitul funcției:

     ButtonSubmit:Return 

    Pentru a „prinde” toate valorile GUI, adăugați următoarele sub linia ButtonSubmit:

     Gui Submit, nohide 

    Următoarea linie creează o nouă variabilă numită „WhisperFlags”. Apoi adaugă la el toate variabilele GUI ca steaguri pentru comanda Whisper.

     WhisperFlags = --initial_prompt "%PromptText%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%SelectedFolder%" "%SelectedFile%" 

    Apoi, îi vom „spune” lui AHK să folosească terminalul implicit (CMD.exe) pentru a rula executabilul lui Whisper (pe care l-am definit cu variabila WhisperExecutable) cu variabilele GUI (care sunt acum „asamblate” în singura variabilă WhisperFlags).

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

    Pentru o depanare și mai ușoară, am adăugat și un msgbox, ca înainte, dar am adăugat și următoarea linie:

     Clipboard = %WhisperExecutable% %WhisperFlags% 

    Aceasta va copia în Clipboard comanda completă emisă către CMD. Deci, dacă ceva nu reușește, în loc să vedeți comanda doar într-una dintre casetele de mesaje ale AHK, o veți avea disponibilă și în Clipboard.

    Deschideți un terminal, inserați comanda din Clipboard și verificați erorile care apar pentru a localiza eventualele probleme.

    De exemplu, în timp ce lucram la scenariu, inițial am uitat să am promptul inclus între ghilimele. Astfel, comanda a eșuat, deoarece Whisper a încercat să analizeze promptul ca steaguri.

    Testare și modificări finale

    Asta a fost tot – tocmai am creat o aplicație de transcriere folosind capabilitățile de creare a GUI ale AutoHotkey și o soluție de transcriere AI gata de utilizat.

    Încercați să rulați scriptul (faceți dublu clic pe fișierul său) și ar trebui să vedeți interfața grafică pe ecran.

    • Schimbați setările lui Whisper folosind listele derulante din partea de sus.
    • Introdu o scurtă descriere a transcripției (și a unor termeni) în câmpul Prompt.
    • Faceți clic pe butonul Încărcare fișier și alegeți fișierul audio pe care doriți să îl transcrieți.
    • Faceți clic pe butonul Alegeți folderul de ieșire și selectați unde ar trebui să fie stocat fișierul text produs.
    • Faceți clic pe OK pentru a lansa Whisper, așa cum este configurat de GUI, pe fișierul audio selectat și salvați transcrierea acestuia ca fișier text în folderul pe care l-ați selectat.

    Dacă totul a funcționat, reveniți la scriptul dvs. și ștergeți sau comentați (adăugând un „;” la începutul lor) toate funcționalitățile de depanare (casete de mesaje și linii de copiere în Clipboard).

    Ducând șoapta mai departe cu AutoHotkey

    Setând corect valorile implicite ale interfeței grafice și, poate, adăugând un prompt generic, puteți transforma Whisper într-o soluție de trei clicuri pentru a transcrie: nu plătiți pentru soluții comerciale, servicii de la terți, nu vă ocupați de interfețe complicate sau introduceți text. un terminal.