Å lage en tre-klikk-til-bruk, men svært nøyaktig transkripsjonsapp høres vanskelig ut, men det er det ikke. La oss introdusere Whisper til AutoHotkey.

OpenAIs Whisper er en av de kraftigste løsningene for å gjøre stemmen din om til tekst. Men Whisper kan også være irriterende å bruke, siden du må skrive kommandoer for å transkribere en lydfil til tekst. Men hvorfor gjøre det når vi har AutoHotkey?

Med AutoHotkey kan vi enkelt lage et grunnleggende GUI for kommandolinjeapper som Whisper. Så, la oss gjøre det og se hvordan du kan lage din egen transkripsjonsapp ved å kombinere AutoHotkeys GUI-skapende superkrefter med OpenAIs Whisper som "hjernen" bak knappene.

Legger grunnlaget for Whisper og AutoHotkey

Du kan lage kule skript med AutoHotkey, men det er ikke alt det kan gjøre. For dette prosjektet bruker vi AutoHotkey for å lage en GUI for Whisper. Dette vil tillate oss å bruke OpenAIs stemmegjenkjennings-AI-verktøy ved å klikke på knapper og tilpasse funksjonaliteten ved hjelp av menyer i stedet for å skrive kommandoer.

instagram viewer

Dette betyr imidlertid at du må ha både AutoHotkey og Whisper installert for å følge med.

For den første delen av ligningen kan du Last ned AutoHotkey fra den offisielle siden, kjør deretter installasjonsprogrammet og følg de presenterte trinnene.

Merk at vi bruker den eldre "v1"-versjonen av skriptspråket, ikke den nye v2. Det er viktig fordi de to versjonene bruker en noe forskjellig syntaks. Det vi ser her fungerer kanskje ikke hvis du bruker den nye v2.

Den andre delen er mer komplisert, men du kan lære hvordan du gjør det ved å sjekke artikkelen vår om hvordan gjøre stemmen din om til tekst med OpenAIs Whisper for Windows.

Med begge installert er handlingsplanen vår som følger:

  1. Lag en GUI med elementer for Whispers variabler og verdier.
  2. Lag funksjoner for å hente verdier fra grensesnittet, velg filer og mapper, og sett sammen alt til en brukbar Whisper-kommando.
  3. Kjør Whisper-kommandoen for å produsere resultater.

Selvfølgelig kan du alltid bruke Windows innebygd støtte for taleskriving, som vi så i artikkelen vår om hvordan starte taleskriving på Windows 11. Likevel, som du vil se mens du bruker den, er Whisper mye mer nøyaktig (men også tregere).

På en mer personlig måte, bør jeg forklare at jeg ikke er en programmerer, og dette prosjektet er en "remiks" av en løsning laget for personlig bruk.

Hvordan lage et nytt AutoHotkey-skript

Det første trinnet er å lage en ny tom skriptfil. Hold den i sin egen mappe, bare i tilfelle du bestemmer deg for å finpusse eller bygge på den, lage flere filer.

  1. Kjør favorittfilbehandlingen din (eller trykk Windows-nøkkel + E for å starte Windows Utforsker) og opprette en mappe for transkripsjonsappen din hvor som helst du vil.
  2. Høyreklikk på et tomt sted i vinduet og velg Ny > AutoHotkey-skript for å lage en tom skriptfil.
  3. Shift + Høyreklikk på filen for å få tilgang til hele kontekstmenyen og velg å åpne den med din favorittkode eller tekstredigering. Windows egne Notisblokk Vil gjøre.
  4. Til tross for at det er "et tomt skript", vil AHK-filen din allerede være forhåndsutfylt med noen "ting". Dette er nyttige AutoHotkey-variabler og flagg som definerer hvordan det skal fungere på skrivebordet ditt. Ignorer dem, la dem være som de er, og gjør all fremtidig skriving under dem.

Bli kjent med Whisper's Flags

Siden vi lager en GUI for en kommandolinjeapp, er det nyttig å ha en referanse til de viktigste variablene og flaggene som vi skal bruke i prosjektet vårt. Du kan sjekke dem ut ved å lese Whispers dokumentasjon, besøk sin offisielle Github-side, og kjøre den i terminalen din.

Vi vil liste opp de vi vil bruke i dette prosjektet for enkelhets skyld. Vi foreslår at du legger dem til i skriptet ditt som kommentarer (i separate linjer, hver begynner med et ";"-tegn etterfulgt av et mellomrom).

; Hviskeflagg:; --initial_prompt PROMPT_TEXT; --output_format txt; -o OUTPUT_FOLDER; --modell MODEL_TO_USE; --oppgave TRANSCRIBE/TRANSLATE; --språk EN/EL

Opprette GUI med AutoHotkey

Vi foreslår at du deler opp skriptet ditt i seksjoner ved å bruke kommentarer som vi gjorde for å holde det organisert. Vi starter med å definere noen variabler, fortsetter til den faktiske GUI og avslutter med å definere funksjonene.

Vi begynner med en seksjon der vi definerer variabler vi kanskje vil endre i fremtiden, men ikke så ofte at vi ønsker å eksponere dem gjennom GUI, og overkomplisere det. Du kan skrive "Variable_Name = Innhold eller verdi av variabelen" med én variabel og verdipar per linje.

For dette prosjektet har vi definert en Utgående format variabel som vi setter til "tekst"verdi og en WhisperExecutable variabel angivelse Whispers kjørbare filnavn. På denne måten, hvis vi ønsker å bruke den samme løsningen i fremtiden for å lage SRT undertekstfiler i stedet for TXT-dokumenter eller oppgradere Hvisk/bytt til en alternativ app, vi kan justere verdiene til disse variablene på det enkelte stedet i stedet for gjennom hele manus.

OutputFormat = txtWhisperExecutable = hviske

Sette opp brukeralternativene

Når du bruker Whisper på kommandolinjen, lar tre av flaggene deg definere:

  • Hvis du gjør det oversettelse eller transkripsjon
  • Lydfilen er Språk
  • Språket modell du ønsker å bruke (ulike størrelser er tilgjengelige, hver påvirker ytelsen versus kvaliteten på resultatene).

Den enkleste måten å tilby samme funksjonalitet gjennom en GUI er gjennom utprøvde rullegardinlister. Syntaksen for å legge til en rullegardinliste til en AutoHotkey GUI er som følger:

Gui, Add, DropDownList, xPosisjon yPosisjon wBredde hHøyde vVariable_that_will_hold_selected_value, optionA|optionB|default_optionC||optionD|

Basert på det, la oss legge til tre nedtrekkslister til skriptet vårt for å velge Whispers språk (mellom engelsk/en og gresk/el), modell (liten, basis, liten, middels, stor) og oppgavetype (transkribere eller oversette).

Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, tiny|base|small||middels|stor|
Gui, Add, DropDownList, x345 y5 w165 h100 vTaskType, transkriber||translate|

For å angi et alternativ som standardvalg, bruk et dobbeltrørsymbol ("|") etter det. Du kan se at i vårt eksempel har vi satt språket vårt til no, Valgt modell til liten, og TaskType til transkribere.

Hvordan veilede Whisper

Siden Whisper er AI-basert, er det ingen måte å ha absolutt kontroll over hvordan Whisper transkriberer lyd. Det er fritt å velge hva det anser som optimalt.

Men, som andre AI-løsninger, kan Whisper godta brukeroppfordringer. Ved å lage en ledetekst kan du "veilede" hvordan den transkriberer lyden din.

Mislyktes løsningen vi lager noe riktig? Du kan prøve å "forklare" til Whisper "hva stemmefilen handler om", inkludert syntaksen til ord, akronymer og fraser i ledeteksten slik du vil at de skal vises i transkripsjonen. For det legger vi til et AutoHotkey-tekstredigeringsfelt.

Syntaksen er ikke for annerledes enn det vi brukte for å legge til rullegardinlister ovenfor:

Gui, Legg til, Rediger, x5 w505 h400 vPromptText, %PromptText%

"%PromptText%" på slutten "berer" AHK å vise PromptText-variabelens innhold (hvis den allerede er tildelt en verdi) i tekstfeltet. Det vil ikke vise noe i skriptet vi lager, men betrakt det som en plassholder for når du til slutt justerer skriptet i fremtiden også for å lagre og laste inn meldinger!

Foretrekker du å tilordne en forhåndsdefinert verdi til PromptText variabel? Legg til noe sånt som følgende til Variabler delen av manuset. Husk å erstatte "Ditt navn" med ditt faktiske navn.

PromptText = Transkripsjon av ditt navns notater

Sette opp handlingsknappene

For å velge filer, mapper og kjøre Whisper etter at vi har konfigurert alt, er det bedre å bruke knapper. Du kan legge til knapper til et AHK-laget grensesnitt ved å bruke følgende:

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

Legg merke til at i motsetning til variabler i GUI-elementer, som begynner med bokstaven "v", begynner funksjonsnavn med "g", for "Gå (til dette stedet i skriptet)".

En enkelt knapp i et AHK-grensesnitt kan også betraktes som "standarden", som vil bli aktivert hvis du ikke klikker noe sted på GUI og trykker Tast inn. Dette defineres ved å legge til "misligholde" i koordinater-og-funksjon-delen, som du vil legge merke til i "OK"-knappen vår:

Gui, Add, Button, x5 w505 h50 gSelectFile, Laste FileGui, Legg til, Button, x5 w505 h50 gSelect Folder, VelgeProduksjon Mappe
Gui, Legg til, knapp, Misligholde x5 w505 h50 gButtonSubmit, OK

Med ovenstående definerer vi tre knapper:

  • En merket "Last inn fil" som, når den klikkes, vil kjøre Velg Fil funksjon.
  • En merket "Velg Utdatamappe", som vil kjøre Velg mappe funksjon.
  • En merket "OK", valgt som standard, "ringer" til ButtonSend funksjon.

Slik viser du GUI

GUI-en vår er klar, men vil ikke vises på skjermen vår fordi vi ikke har "fortalt" AutoHotkey å vise den eller hva hver knapp skal gjøre.

For det, legg til følgende to linjer under de som definerer din GUI:

Gui, ShowReturn

Den første linjen "berer" AHK å vise GUI-vinduet, mens den andre markerer delens slutt.

Funksjonene og funksjonaliteten til appen vår

Selv om vi har fullført GUI-delen, vil det krasje hvis du prøver å kjøre skriptet. Det er fordi vi refererer til ikke-eksisterende funksjoner i den. Så vårt neste trekk er å lage disse funksjonene.

De tre funksjonene vi ønsker er:

  • Velg en inndatafil.
  • Velg utdatamappen der den transkriberte filen skal lagres.
  • Lag en kommando som vil "sette sammen" alle variabler til en brukbar Whisper-kommando, i likhet med det vi selv skriver i en terminal, og deretter kjøre den.

Valg av inndatafil

Den første funksjonen, som vi allerede har kalt "Velg Fil" når vi la til knappen i GUI, er:

Velg Fil:FilVelgFil, SelectedFileReturn

FileSelectFile er en AutoHotkey-funksjon som viser en typisk filanmoder, som lar brukeren velge en fil. Valgt fil er variabelen i skriptet vårt som vil "holde" banen til filen brukeren valgte.

Men som du vil se i skjermbildene våre, har vi også lagt til følgende linje rett over funksjonen som avslutter "retur":

MsgBox, %SelectedFile%

Dette vil få AHK til å vise en Meldingsboks med den valgte filen etter at vi har valgt den, noe som er nyttig når du feilsøker skriptet ditt. Hvis denne meldingsboksen viser den valgte filens bane og navn, er det ikke filvalgsknappen eller funksjonen som må fikses.

Utgangsmappevalg

Funksjonen for å velge en mappe er nesten identisk, med bare kommandoens navn og variabel som endres, for å vise at vi har å gjøre med mapper i stedet for filer:

SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Komme tilbake

Den endelige funksjonen

Den endelige funksjonen vil være den mest kompliserte. Tilordnet til OK-knappen, vil dette "samle" alle variabelverdier fra GUI, omforme dem til en brukbar kommando, og deretter kjøre den.

Vi begynner med å angi funksjonens begynnelse og slutt:

ButtonSubmit:Komme tilbake

For å "gripe" alle GUI-verdiene, legg til følgende under ButtonSend linje:

Gui Submit, nohide

Følgende linje oppretter en ny variabel kalt "WhisperFlags". Den legger så til alle GUI-variablene som flagg for Whisper-kommandoen.

WhisperFlags = --initial_prompt "%PromptText%" --oppgave %TaskType% --modell %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%Selected Folder%""%SelectedFile%"

Deretter vil vi "fortelle" AHK å bruke standardterminalen (CMD.exe) for å kjøre Whispers kjørbare (som vi definerte med WhisperExecutable variabel) med GUIs variabler (som nå er "samlet" i singelen WhisperFlags variabel).

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

For enda enklere feilsøking har vi også lagt til en meldingsboks, som før, men også lagt til følgende linje:

Utklippstavle = %WhisperExecutable% %WhisperFlags%

Dette vil kopieres til Utklippstavle hele kommandoen utstedt til CMD. Så hvis noe feiler, i stedet for bare å se kommandoen i en av AHKs meldingsbokser, vil du også ha den tilgjengelig i utklippstavlen.

Åpne en terminal, lim inn kommandoen fra utklippstavlen, og sjekk feilene som dukker opp for å finne potensielle problemer.

For eksempel, mens jeg jobbet med manuset, glemte jeg først å ha ledeteksten i anførselstegn. Dermed mislyktes kommandoen, siden Whisper prøvde å analysere ledeteksten som flagg.

Testing og endelige tilpasninger

Det var det – vi har nettopp laget en transkripsjonsapp ved hjelp av AutoHotkeys GUI-skapende evner og en klar til bruk AI-transkripsjonsløsning.

Prøv å kjøre skriptet (dobbeltklikk på filen), og du bør se GUI-en din på skjermen.

  • Endre Whispers innstillinger ved å bruke rullegardinlistene øverst.
  • Skriv inn en kort beskrivelse av transkripsjonen din (og noen termer) i Spør felt.
  • Klikk på Last inn fil og velg lydfilen du vil transkribere.
  • Klikk på Velg Utdatamappe knappen og velg hvor den produserte tekstfilen skal lagres.
  • Klikk på OK for å slippe løs Whisper, som konfigurert av din GUI, på den valgte lydfilen, og lagre transkripsjonen som en tekstfil i mappen du valgte.

Hvis alt fungerte, gå tilbake til skriptet og enten slett eller kommenter ut (ved å legge til en ";" i begynnelsen) all feilsøkingsfunksjonaliteten (meldingsbokser og kopier-til-utklippstavle-linjer).

Tar Whisper Videre med AutoHotkey

Ved å stille inn standardverdiene til GUI-en din og kanskje legge til en generisk ledetekst, kan du gjøre Whisper om til en tre-klikk for å transkribere-løsning: Ingen betaling for kommersielle løsninger, tredjepartstjenester, fikling med kompliserte grensesnitt, eller skrive inn en terminal.