Efectuarea unei aplicații de transcriere cu trei clicuri, dar foarte precisă, sună greu, dar nu este. Să introducem pe Whisper 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. Deci, 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 oficial, apoi 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 cum să-ți transformi vocea în text cu Whisper de la OpenAI pentru Windows.
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, după cum veți vedea în timp ce îl utilizați, Whisper este mult mai precis (dar și 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 Nou > 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. propriul Windows Blocnotes se va face.
- Î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.
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 ca comentarii (în rânduri separate, fiecare începând cu un caracter „;” urmat de un spațiu).
; Steaguri în șoaptă:; --initial_prompt PROMPT_TEXT; --output_format txt; -o OUTPUT_FOLDER; --model MODEL_TO_USE; --sarcina TRANSCRIBE/TRADUCERE; --limba EN/EL
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.
Î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 un Format de iesire variabila pe care am setat-o la „TXT„valoare și a WhisperExecutable afirmarea variabilei 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 upgrade În șoaptă/treceți la o aplicație alternativă, putem ajusta valorile acelor variabile în acel punct unic în loc de pe tot parcursul scenariu.
OutputFormat = txtWhisperExecutable = șoaptă
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
- Fișierul audio limba
- Limba model pe care doriți să le 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 fapt, 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 tip de sarcină (transcrie sau Traduceți).
Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, mic|bază|mic||mediu|mari|
Gui, Add, DropDownList, x345 y5 w165 h100 vTaskType, transcriere||traducere|
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, ne-am setat limba la ro, SelectedModel to micși TaskType la 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 prompt, 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, Adăugați, Editați, 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ă PromptText variabil? Adăugați ceva de genul următor la Variabile secțiunea scenariului. Nu uitați să înlocuiți „Numele dvs.” cu numele dvs. real.
PromptText = Transcrierea notelor numelui tău
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 nicăieri pe GUI și apăsați introduce. Aceasta este definită prin adăugarea „Mod implicit" în secțiunea de coordonate și funcție, așa cum veți observa în butonul nostru "OK":
Gui, Adăugați, Buton, x5 w505 h50 gSelectFile, Sarcină FileGui, Adăuga, Buton, x5 w505 h50 gSelectFolder, AlegeIeșire Pliant
Gui, Adăugați, Buton, Mod implicit x5 w505 h50 gButtonSubmit, OK
Cu cele de mai sus, definim trei butoane:
- Unul etichetat „Încărcați fișierul" care, atunci când se dă clic, va rula Selectați fișierul funcţie.
- Unul etichetat „Alegeți Dosarul de ieșire", care va rula Selectați dosarul funcţie.
- Unul etichetat „Bine", selectat implicit, "apelând" la ButtonSubmit funcţie.
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 „Selectați fișierul" când am adăugat butonul său la GUI, este:
Selectați fișierul: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 avea AHK să arate a Caseta 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 comenzii și variabila schimbându-se, pentru a arăta că avem de-a face cu foldere în loc de fișiere:
SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Întoarcere
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:Întoarcere
Pentru a „prinde” toate valorile GUI, adăugați următoarele sub ButtonSubmit linia:
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%” --sarcina %TaskType% --model %SelectedModel% --limba %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 WhisperExecutable variabilă) cu variabilele GUI (care sunt acum „asamblate” în single WhisperFlags variabil).
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 se 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 Prompt camp.
- Apasă pe Încărcați fișierul butonul și alegeți fișierul audio pe care doriți să îl transcrieți.
- Apasă pe Alegeți Dosarul de ieșire butonul și selectați unde ar trebui să fie stocat fișierul text produs.
- Click pe Bine pentru a lansa Whisper, așa cum este configurat de GUI, pe fișierul audio selectat și pentru a salva 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-un soluție cu trei clicuri pentru a transcrie: nu se plătește pentru soluții comerciale, servicii de la terțe părți, se găsesc interfețe complicate sau tastând într-un terminal.