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.
Cuprins
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:
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.
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.
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.
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.