At lave en tre-klik-til-brug, men meget nøjagtig transskriptionsapp lyder svært, men det er det ikke. Lad os introducere Whisper til AutoHotkey.
OpenAI's Whisper er en af de mest kraftfulde løsninger til at omdanne din stemme til tekst. Whisper kan dog også være irriterende at bruge, da du skal skrive kommandoer for at transskribere en lydfil til tekst. Men hvorfor gøre det, når vi har AutoHotkey?
Med AutoHotkey kan vi nemt oprette en grundlæggende GUI til kommandolinje-apps som Whisper. Så lad os gøre det og se, hvordan du kan oprette din egen transskriptionsapp ved at kombinere AutoHotkeys GUI-skabende superkræfter med OpenAI's Whisper som "hjernen" bag knapperne.
At lægge grundlaget for Whisper og AutoHotkey
Du kan lave fede scripts med AutoHotkey, men det er ikke alt, den kan. Til dette projekt vil vi bruge AutoHotkey til at oprette en GUI til Whisper. Dette vil give os mulighed for at bruge OpenAIs stemmegenkendelse AI-værktøj ved at klikke på knapper og tilpasse dets funktionalitet ved hjælp af menuer i stedet for at skrive kommandoer.
Det betyder dog, at du skal have både AutoHotkey og Whisper installeret for at følge med.
For den første del af ligningen kan du download AutoHotkey fra dets officielle websted, kør derefter installationsprogrammet og følg de viste trin.
Bemærk, at vi bruger den ældre "v1"-version af scriptsproget, ikke den nye v2. Det er vigtigt, fordi de to versioner bruger en noget forskellig syntaks. Det, vi ser her, virker muligvis ikke, hvis du bruger den nye v2.
Den anden del er mere kompliceret, men du kan lære, hvordan du gør det ved at tjekke vores artikel om hvordan du forvandler din stemme til tekst med OpenAI's Whisper til Windows.
Med begge installeret er vores handlingsplan som følger:
- Opret en GUI med elementer til Whispers variabler og værdier.
- Opret funktioner til at hente værdier fra grænsefladen, vælge filer og mapper og samle alt til en brugbar Whisper-kommando.
- Kør hviskekommandoen for at producere resultater.
Du kan selvfølgelig altid bruge Windows indbygget support til stemmeskrivning, som vi så i vores artikel om hvordan man starter stemmeskrivning på Windows 11. Alligevel, som du vil se, mens du bruger det, er Whisper meget mere præcis (men også langsommere).
På en mere personlig note, skal jeg forklare, at jeg ikke er programmør, og dette projekt er et "remix" af en løsning lavet til personlig brug.
Sådan laver du et nyt AutoHotkey-script
Det første trin er at oprette en ny tom scriptfil. Opbevar den i sin egen mappe, bare hvis du beslutter dig for at finjustere eller bygge videre på den og oprette flere filer.
- Kør din foretrukne filhåndtering (eller tryk på Windows nøgle + E for at starte Windows Stifinder) og oprette en mappe til din transskriptionsapp, hvor som helst du vil.
- Højreklik på et tomt sted i vinduet og vælg Ny > AutoHotkey-script for at oprette en tom script-fil.
- Shift + Højreklik på filen for at få adgang til den fulde kontekstmenu og vælg for at åbne den med din yndlingskode eller teksteditor. Windows egne Notesblok vil gøre.
- På trods af at det er "et tomt script", vil din AHK-fil allerede være præ-udfyldt med nogle "ting". Det er nyttige AutoHotkey-variabler og flag, der definerer, hvordan det skal fungere på dit skrivebord. Ignorer dem, lad dem være som de er, og lav alle dine fremtidige skrivninger under dem.
Lær Whispers flag at kende
Da vi laver en GUI til en kommandolinje-app, er det praktisk at have en reference til de vigtigste variabler og flag, som vi vil bruge i vores projekt. Du kan tjekke dem ud ved at læse Whispers dokumentation, besøge dens officielle Github-side, og køre det i din terminal.
Vi viser dem, vi vil bruge i dette projekt for nemheds skyld. Vi foreslår, at du tilføjer dem til dit script som kommentarer (i separate linjer, hver begynder med et ";"-tegn efterfulgt af et mellemrum).
; Hviskeflag:; --initial_prompt PROMPT_TEXT; --output_format txt; -o OUTPUT_FOLDER; --model MODEL_TO_USE; --opgave TRANSCRIBE/TRANSLATE; --sprog EN/EL
Oprettelse af GUI med AutoHotkey
Vi foreslår, at du deler dit script op i sektioner ved hjælp af kommentarer, som vi gjorde for at holde det organiseret. Vi starter med at definere nogle variabler, fortsætter til den faktiske GUI og slutter med at definere dens funktioner.
Vi begynder med en sektion, hvor vi vil definere variabler, som vi måske vil ændre i fremtiden, men ikke så ofte, at vi gerne vil eksponere dem gennem GUI'en, hvilket overkomplicerer det. Du kan skrive "Variable_Name = Indhold eller værdi af variablen" med en variabel og et værdipar pr. linje.
Til dette projekt har vi defineret en OutputFormat variabel, som vi indstiller til "txt"værdi og en WhisperExecutable variabel angivelse Whispers eksekverbare filnavn. På denne måde, hvis vi ønsker at bruge den samme løsning i fremtiden til at oprette SRT-undertekstfiler i stedet for TXT-dokumenter eller opgradere Hvisk/skift til en alternativ app, vi kan justere værdierne af disse variabler på det enkelte sted i stedet for i hele manuskript.
OutputFormat = txtWhisperExecutable = hviske
Opsætning af brugerindstillinger
Når du bruger Whisper på kommandolinjen, giver tre af dens flag dig mulighed for at definere:
- Hvis du gør oversættelse eller transskription
- Lydfilens Sprog
- Sproget model du vil bruge (forskellige størrelser er tilgængelige, som hver påvirker ydeevne VS kvalitet af resultater).
Den nemmeste måde at tilbyde den samme funktionalitet gennem en GUI er gennem afprøvede drop-down lister. Syntaksen for at tilføje en rulleliste til en AutoHotkey GUI er som følger:
Gui, Tilføj, DropDownList, xPosition yPosition wWidth hHøjde vVariable_that_will_hold_selected_value, optionA|optionB|default_optionC||optionD|
Baseret på det, lad os tilføje tre rullelister til vores script til valg af Whispers sprog (mellem engelsk/da og græsk/el), model (lille, basis, lille, medium, stor) og opgavetype (transskriber eller Oversætte).
Gui, Tilføj, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Tilføj, DropDownList, x175 y5 w165 h100 vSelectedModel, lille|base|lille||medium|stor|
Gui, Tilføj, DropDownList, x345 y5 w165 h100 vTaskType, transskriber||oversæt|
For at indstille en indstilling som standardvalg, skal du bruge et dobbelt rørsymbol ("|") efter det. Du kan se, at vi i vores eksempel har sat vores sprog til da, ValgtModel til lille, og TaskType til transskribere.
Sådan guider du Whisper
Da Whisper er AI-baseret, er der ingen måde at have absolut kontrol over, hvordan Whisper transskriberer lyd. Det er frit at vælge, hvad det anser for optimalt.
Men ligesom andre AI-løsninger kan Whisper acceptere brugerprompter. Ved at lave en prompt kan du "guide", hvordan den transskriberer din lyd.
Kunne den løsning, vi laver, ikke transskribere noget korrekt? Du kan prøve at "forklare" til Whisper "hvad stemmefilen handler om", herunder syntaksen af ord, akronymer og sætninger i din prompt, som du ønsker, at de skal vises i transskriptionen. Til det tilføjer vi et AutoHotkey-tekstredigeringsfelt.
Syntaksen er ikke for anderledes end hvad vi brugte til at tilføje drop-down lister ovenfor:
Gui, Tilføj, Rediger, x5 w505 h400 vPromptText, %PromptText%
"%PromptText%" i slutningen "beder" AHK om at vise PromptText-variablens indhold (hvis den allerede er tildelt en værdi) i tekstfeltet. Det vil ikke vise noget i det script, vi laver, men betragte det som en pladsholder, når du til sidst justerer scriptet i fremtiden også for at gemme og indlæse prompter!
Vil du foretrække at tildele en foruddefineret værdi til PromptTekst variabel? Tilføj noget som følgende til Variabler afsnit af scriptet. Husk at erstatte "Dit navn" med dit faktiske navn.
PromptText = Transskription af dit navns noter
Opsætning af handlingsknapper
For at vælge filer, mapper og køre Whisper, efter at vi har sat alt op, er det bedre at bruge knapper. Du kan tilføje knapper til en AHK-lavet grænseflade ved at bruge følgende:
Gui, Add, Button, xPosition yPosition wWidth hHeight gFunction_To_Perform, Button Text
Bemærk, at i modsætning til variabler i GUI-elementer, som begynder med bogstavet "v", starter funktionsnavne med "g", for "Gå (til dette sted i scriptet)".
En enkelt knap på en AHK-grænseflade kan også betragtes som "standarden", som vil blive aktiveret, hvis du ikke klikker nogen steder på GUI'en og trykker på Gå ind. Dette defineres ved at tilføje "Standard" i koordinater-og-funktionssektionen, som du vil bemærke i vores "OK"-knap:
Gui, Add, Button, x5 w505 h50 gSelectFile, belastning FileGui, Tilføje, Knap, x5 w505 h50 gSelect Folder, VælgeProduktion Folder
Gui, Tilføj, Knap, Standard x5 w505 h50 gButtonSubmit, OK
Med ovenstående definerer vi tre knapper:
- En mærket "Indlæs fil", der, når der klikkes på, vil køre Vælg Fil fungere.
- En mærket "Vælg Output Folder", som vil køre Vælg Mappe fungere.
- En mærket "Okay", valgt som standard, "kalder" til KnapSend fungere.
Sådan viser du din GUI
Vores GUI er klar, men vises ikke på vores skærm, fordi vi ikke har "sagt" AutoHotkey til at vise det, eller hvad hver knap skal gøre.
Til det skal du tilføje følgende to linjer under dem, der definerer din GUI:
Gui, ShowReturn
Den første linje "beder" AHK om at vise GUI'ens vindue, mens den anden markerer sektionens slutning.
Funktionerne og funktionaliteten af vores app
Selvom vi har afsluttet GUI-afsnittet, vil det gå ned, hvis du prøver at køre scriptet. Det er fordi vi refererer til ikke-eksisterende funktioner i den. Så vores næste skridt er at skabe disse funktioner.
De tre funktioner vi ønsker er:
- Vælg en inputfil.
- Vælg output-mappen, hvor den transskriberede fil vil blive gemt.
- Lav en kommando, der vil "samle" alle variabler til en brugbar Whisper-kommando, svarende til det, vi selv skriver i en terminal, og kør den derefter.
Valg af inputfil
Den første funktion, som vi allerede har navngivet "Vælg Fil" da vi føjede dens knap til GUI, er:
Vælg Fil:FileVælgFil, SelectedFileReturn
FileSelectFile er en AutoHotkey-funktion, der viser en typisk filanmoder, som giver brugeren mulighed for at vælge en fil. Valgt fil er den variabel i vores script, der vil "holde" stien til den fil, brugeren valgte.
Men som du vil se på vores skærmbilleder, har vi også tilføjet følgende linje lige over den funktionsende "retur":
MsgBox, %SelectedFile%
Dette vil have AHK til at vise en Meddelelsesboks med den valgte fil, efter at vi har valgt den, hvilket er nyttigt ved fejlfinding af dit script. Hvis denne meddelelsesboks viser din valgte fils sti og navn, er det ikke din filvalgsknap eller funktion, der skal rettes.
Valg af outputmappe
Funktionen til at vælge en mappe er næsten identisk, hvor kun kommandoens navn og variabel ændres for at vise, at vi har at gøre med mapper i stedet for filer:
SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Vend tilbage
Den endelige funktion
Den endelige funktion vil være den mest komplicerede. Mappet til OK-knappen, vil dette "samle" alle variabelværdier fra GUI'en, omdanne dem til en brugbar kommando og derefter køre den.
Vi starter med at angive funktionens begyndelse og slutning:
ButtonSubmit:Vend tilbage
For at "gribe" alle GUI's værdier, skal du tilføje følgende under KnapSend linje:
Gui Submit, nohide
Den følgende linje opretter en ny variabel kaldet "WhisperFlags". Det tilføjer derefter alle GUI's variabler som flag for Whisper-kommandoen.
WhisperFlags = --initial_prompt "%PromptText%" --opgave %TaskType% --model %SelectedModel% --sprog %SelectedLanguage% --output_format %OutputFormat% -o "%Selected Folder%""%SelectedFile%"
Dernæst vil vi "fortælle" AHK at bruge standardterminalen (CMD.exe) til at køre Whispers eksekverbare (som vi definerede med WhisperExecutable variabel) med GUI'ens variabler (der nu er "samlet" i singlen WhisperFlags variabel).
RunWait, cmd.exe /c %WhisperExecutable% %WhisperFlags%
For endnu nemmere fejlfinding har vi også tilføjet en msgbox, som før, men også tilføjet følgende linje:
Udklipsholder = %WhisperExecutable% %WhisperFlags%
Dette kopieres til Udklipsholder den komplette kommando udstedt til CMD. Så hvis noget fejler, i stedet for kun at se kommandoen i en af AHK's beskedbokse, vil du også have den tilgængelig i dit udklipsholder.
Åbn en terminal, indsæt kommandoen fra udklipsholderen, og tjek de fejl, der dukker op for at finde potentielle problemer.
For eksempel, mens jeg arbejdede på manuskriptet, glemte jeg i første omgang at have prompten omgivet af anførselstegn. Således mislykkedes kommandoen, da Whisper forsøgte at analysere prompten som flag.
Test og endelige justeringer
Det var det – vi har lige lavet en transskriptionsapp ved hjælp af AutoHotkeys GUI-fremstillingsfunktioner og en klar-til-brug AI-transskriptionsløsning.
Prøv at køre dit script (dobbeltklik på dets fil), og du bør se din GUI på din skærm.
- Skift Whispers indstillinger ved hjælp af drop-down listerne øverst.
- Indtast en kort beskrivelse af din transskription (og nogle udtryk) i Hurtig Mark.
- Klik på Indlæs fil knappen og vælg den lydfil, du vil transskribere.
- Klik på Vælg Output Folder knappen og vælg, hvor den producerede tekstfil skal gemmes.
- Klik på Okay at frigive Whisper, som konfigureret af din GUI, på din valgte lydfil, og gemme dens transskription som en tekstfil i den mappe, du valgte.
Hvis alt fungerede, skal du gå tilbage til dit script og enten slette eller kommentere (ved at tilføje et ";" i begyndelsen) al fejlfindingsfunktionaliteten (meddelelsesbokse og kopier-til-udklipsholder-linjer).
Tager Whisper Videre med AutoHotkey
Ved at indstille standardværdierne for din GUI korrekt og måske tilføje en generisk prompt, kan du gøre Whisper til en tre-klik-til-transskribere-løsning: Ingen betaling for kommercielle løsninger, tredjepartstjenester, fifl med komplicerede grænseflader eller skrive i en terminal.