Creare un'app di trascrizione con tre clic ma estremamente accurata sembra difficile, ma non lo è. Introduciamo Whisper in AutoHotkey.

Whisper di OpenAI è una delle soluzioni più potenti per trasformare la tua voce in testo. Tuttavia, Whisper può anche essere fastidioso da usare, poiché devi digitare dei comandi per trascrivere un file audio in testo. Ma perché farlo quando abbiamo AutoHotkey?

Con AutoHotkey, possiamo creare facilmente una GUI di base per app da riga di comando come Whisper. Quindi, facciamolo e vediamo come puoi creare la tua app di trascrizione combinando i superpoteri di creazione della GUI di AutoHotkey con Whisper di OpenAI come "cervello" dietro i pulsanti.

Gettare le basi per Whisper e AutoHotkey

Puoi creare fantastici script con AutoHotkey, ma non è tutto ciò che può fare. Per questo progetto, useremo AutoHotkey per creare una GUI per Whisper. Questo ci consentirà di utilizzare lo strumento AI di riconoscimento vocale di OpenAI facendo clic sui pulsanti e personalizzando la sua funzionalità utilizzando i menu invece di digitare i comandi.

instagram viewer

Tuttavia, ciò significa che dovrai avere installato sia AutoHotkey che Whisper per seguirlo.

Per la prima parte dell'equazione, puoi scarica AutoHotkey dal suo sito ufficiale, quindi esegui il suo programma di installazione e segui i passaggi presentati.

Nota che useremo la vecchia versione "v1" del linguaggio di scripting, non la nuova v2. Questo è importante perché le due versioni usano una sintassi un po' diversa. Quello che vedremo qui potrebbe non funzionare se si utilizza il nuovo v2.

La seconda parte è più complicata, ma puoi imparare come farlo consultando il nostro articolo su come trasformare la tua voce in testo con Whisper per Windows di OpenAI.

Con entrambi installati, il nostro piano d'azione è il seguente:

  1. Crea una GUI con elementi per le variabili e i valori di Whisper.
  2. Crea funzioni per acquisire valori dall'interfaccia, selezionare file e cartelle e assemblare tutto in un comando Whisper utilizzabile.
  3. Eseguire il comando Whisper per produrre risultati.

Naturalmente, puoi sempre utilizzare il supporto integrato di Windows per la digitazione vocale, come abbiamo visto nel nostro articolo su come avviare Digitazione vocale su Windows 11. Tuttavia, come vedrai mentre lo usi, Whisper è molto più preciso (ma anche più lento).

Su una nota più personale, dovrei spiegare che non sono un programmatore, e questo progetto è un "remix" di una soluzione fatta per uso personale.

Come creare un nuovo script AutoHotkey

Il primo passaggio consiste nel creare un nuovo file di script vuoto. Conservalo nella sua cartella, nel caso decidessi di modificarlo o crearlo, creando più file.

  1. Esegui il tuo file manager preferito (o premi Chiave Windows + E per avviare Windows Explorer) e creare una cartella per la tua app di trascrizione ovunque tu voglia.
  2. Fare clic con il tasto destro su un punto vuoto della finestra e selezionare Nuovo > Script AutoHotkey per creare un file di script vuoto.
  3. Maiusc + clic destro sul file per accedere al menu contestuale completo e selezionare per aprirlo con il codice o l'editor di testo preferito. proprio di Windows Bloc notes andrà bene.
  4. Nonostante sia "uno script vuoto", il tuo file AHK sarà già precompilato con alcune "cose". Quelle sono utili variabili e flag AutoHotkey che definiscono come dovrebbe funzionare sul desktop. Ignorali, lasciali così come sono e fai tutto il tuo futuro digitando sotto di loro.

Conoscere le bandiere di Whisper

Dal momento che stiamo creando una GUI per un'app a riga di comando, è utile avere un riferimento alle sue principali variabili e flag che useremo nel nostro progetto. Puoi controllarli leggendo la documentazione di Whisper, visitando la sua pagina Github ufficiale, ed eseguirlo nel tuo terminale.

Elencheremo quelli che useremo in questo progetto per comodità. Ti suggeriamo di aggiungerli al tuo script come commenti (in righe separate, ciascuna che inizia con un carattere ";" seguito da uno spazio).

; Bandiere sussurrate:; --initial_prompt PROMPT_TEXT; --output_format txt; -o OUTPUT_FOLDER; --model MODEL_TO_USE; --task TRASCRIVERE/TRADURRE; --lingua EN/EL

Creazione della GUI con AutoHotkey

Ti suggeriamo di dividere il tuo script in sezioni usando i commenti come abbiamo fatto noi per mantenerlo organizzato. Inizieremo definendo alcune variabili, continueremo con la GUI vera e propria e finiremo definendo le sue funzioni.

Iniziamo con una sezione in cui definiremo le variabili che potremmo voler modificare in futuro, ma non così spesso da esporle attraverso la GUI, complicandola eccessivamente. Puoi digitare "Nome_Variabile = Contenuto o valore della variabile" con una coppia di variabile e valore per riga.

Per questo progetto, abbiamo definito a Formato di output variabile che impostiamo su "TXT" valore e a WhisperExecutable dichiarante variabile Nome del file eseguibile di Whisper. In questo modo, se vogliamo utilizzare la stessa soluzione in futuro per creare file di sottotitoli SRT invece di documenti TXT o aggiornare Whisper/passa a un'app alternativa, possiamo regolare i valori di quelle variabili in quel singolo punto invece che in tutto il copione.

OutputFormat = txtWhisperExecutable = bisbiglio

Impostazione delle opzioni utente

Quando si utilizza Whisper sulla riga di comando, tre dei suoi flag consentono di definire:

  • Se stai facendo traduzione O trascrizione
  • Il file audio è lingua
  • La lingua modello che si desidera utilizzare (sono disponibili varie dimensioni, ognuna delle quali influisce sulle prestazioni VS sulla qualità dei risultati).

Il modo più semplice per offrire la stessa funzionalità attraverso una GUI è tramite elenchi a discesa collaudati. La sintassi per aggiungere un elenco a discesa a una GUI di AutoHotkey è la seguente:

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

Sulla base di ciò, aggiungiamo tre elenchi a discesa al nostro script per selezionare la lingua di Whisper (tra inglese/en e greco/el), modello (tiny, base, small, medium, large) e tipo di attività (trascrivere o tradurre).

Gui, Add, DropDownList, x5 y5 w165 h50 vSelectedLanguage, en||el
Gui, Add, DropDownList, x175 y5 w165 h100 vSelectedModel, tiny|base|small||medium|large|
Gui, Aggiungi, DropDownList, x345 y5 w165 h100 vTaskType, trascrivi||translate|

Per impostare un'opzione come selezione predefinita, utilizzare un simbolo di doppia barra verticale ("|") dopo di essa. Puoi vedere che, nel nostro esempio, abbiamo impostato la nostra lingua su it, Modello selezionato a piccoloe TaskType a trascrivere.

Come guidare Whisper

Poiché Whisper è basato sull'intelligenza artificiale, non c'è modo di avere il controllo assoluto su come Whisper trascrive l'audio. È libero di scegliere ciò che considera ottimale.

Tuttavia, come altre soluzioni AI, Whisper può accettare i prompt degli utenti. Creando un prompt, puoi "guidare" il modo in cui trascrive il tuo audio.

La soluzione che stiamo realizzando non è riuscita a trascrivere correttamente qualcosa? Puoi provare a "spiegare" a Whisper "di cosa tratta il file vocale", includendo la sintassi di parole, acronimi e frasi nel tuo prompt così come vuoi che appaiano nella trascrizione. Per questo, aggiungeremo un campo AutoHotkey Text Edit.

La sintassi non è troppo diversa da quella che abbiamo usato per aggiungere gli elenchi a discesa sopra:

Gui, Aggiungi, Modifica, x5 w505 h400 vPromptText, %PromptText%

Il "%PromptText%" alla fine "dice" ad AHK di mostrare il contenuto della variabile PromptText (se è già stato assegnato un valore) all'interno del campo di testo. Non mostrerà nulla nello script che stiamo realizzando, ma consideralo un segnaposto per quando alla fine modificherai lo script in futuro anche per salvare e caricare i prompt!

Preferisci assegnare un valore predefinito al file PromptText variabile? Aggiungi qualcosa di simile al seguente al file Variabili sezione della sceneggiatura. Ricorda di sostituire "Your Name's" con il tuo vero nome.

PromptText = Trascrizione delle note del tuo nome

Impostazione dei pulsanti di azione

Per scegliere file, cartelle ed eseguire Whisper dopo aver impostato tutto, è meglio usare i pulsanti. Puoi aggiungere pulsanti a un'interfaccia creata da AHK utilizzando quanto segue:

Gui, Aggiungi, Pulsante, xPosition yPosition wWidth hHeight gFunction_To_Perform, Button Text

Si noti che a differenza delle variabili negli elementi della GUI, che iniziano con la lettera "v", i nomi delle funzioni iniziano con "g", per "Vai (in questo punto dello script)".

Un singolo pulsante di un'interfaccia AHK può anche essere considerato "quello predefinito", che verrà attivato se non si fa clic in un punto qualsiasi della GUI e si preme accedere. Questo è definito aggiungendo "predefinito" nella sezione coordinate e funzioni, come noterai nel nostro pulsante "OK":

Gui, Aggiungi, Pulsante, x5 w505 h50 gSelectFile, Carico FileGui, Aggiungere, Pulsante, x5 w505 h50 gSelectFolder, ScegliereProduzione Cartella
Gui, Aggiungi, Pulsante, Predefinito x5 w505 h50 gButtonSubmit, OK

Con quanto sopra, stiamo definendo tre pulsanti:

  • Uno etichettato "Carica file" che, una volta cliccato, eseguirà il file Seleziona il file funzione.
  • Uno etichettato "Scegli Cartella di output", che eseguirà il file Seleziona cartella funzione.
  • Uno etichettato "OK", selezionato per impostazione predefinita, "chiamando" il file Pulsante Invia funzione.

Come mostrare la tua GUI

La nostra GUI è pronta ma non apparirà sullo schermo perché non abbiamo "detto" ad AutoHotkey di mostrarla o cosa dovrebbe fare ogni pulsante.

Per questo, aggiungi le seguenti due righe sotto quelle che definiscono la tua GUI:

Gui, ShowReturn

La prima riga "dice" ad AHK di mostrare la finestra della GUI, mentre la seconda segna la fine della sezione.

Le funzioni e la funzionalità della nostra app

Sebbene abbiamo completato la sezione della GUI, se provi a eseguire lo script, andrà in crash. Questo perché stiamo facendo riferimento a funzioni inesistenti in esso. Quindi, la nostra prossima mossa è creare quelle funzioni.

Le tre funzioni che vogliamo sono:

  • Seleziona un file di input.
  • Selezionare la cartella di output in cui verrà archiviato il file trascritto.
  • Crea un comando che "assembli" tutte le variabili in un comando Whisper utilizzabile, simile a quello che digiteremmo noi stessi in un terminale, quindi lo eseguiamo.

Selezione del file di input

La prima funzione, che abbiamo già chiamato "Seleziona il file" quando abbiamo aggiunto il suo pulsante alla GUI, è:

Seleziona il file:FileSelezionaFile, SelectedFileReturn

FileSelezionaFile è una funzione AutoHotkey che visualizza un tipico richiedente di file, consentendo all'utente di selezionare un file. File selezionato è la variabile nel nostro script che "manterrà" il percorso del file selezionato dall'utente.

Tuttavia, come vedrai nei nostri screenshot, abbiamo anche aggiunto la seguente riga proprio sopra la fine della funzione "return":

MsgBox, %SelectedFile%

Questo farà sì che AHK mostri a Casella dei messaggi con il file selezionato dopo averlo scelto, utile per la risoluzione dei problemi dello script. Se questa finestra di messaggio mostra il percorso e il nome del file selezionato, non è il pulsante o la funzione di selezione del file che richiede la correzione.

Selezione della cartella di output

La funzione per selezionare una cartella è quasi identica, con solo il nome del comando e la variabile che cambiano, per mostrare che abbiamo a che fare con cartelle invece che con file:

SelectFolder: FileSelectFolder, SelectedFolderMsgBox, %SelectedFolder%Ritorno

La funzione finale

La funzione finale sarà la più complicata. Associato al pulsante OK, questo "raccoglierà" tutti i valori delle variabili dalla GUI, li trasformerà in un comando utilizzabile e quindi lo eseguirà.

Iniziamo affermando l'inizio e la fine della funzione:

ButtonSubmit:Ritorno

Per "catturare" tutti i valori della GUI, aggiungi quanto segue sotto il file Pulsante Invia linea:

Gui Invia, nohide

La riga seguente crea una nuova variabile chiamata "WhisperFlags". Quindi aggiunge ad esso tutte le variabili della GUI come flag per il comando Whisper.

WhisperFlags = --initial_prompt "%PromptText%" --task %TaskType% --model %SelectedModel% --language %SelectedLanguage% --output_format %OutputFormat% -o "%Cartella Selezionata%""%File Selezionato%"

Successivamente, "diremo" ad AHK di utilizzare il terminale predefinito (CMD.exe) per eseguire l'eseguibile di Whisper (che abbiamo definito con il WhisperExecutable variabile) con le variabili della GUI (che ora sono "assemblate" nel singolo WhisperFlags variabile).

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

Per una risoluzione dei problemi ancora più semplice abbiamo anche aggiunto un msgbox, come prima, ma abbiamo anche aggiunto la seguente riga:

Appunti = %WhisperExecutable% %WhisperFlags%

Questo verrà copiato nel file Appunti il comando completo impartito a CMD. Quindi, se qualcosa fallisce, invece di vedere solo il comando in una delle finestre di messaggio di AHK, lo avrai anche disponibile negli Appunti.

Apri un terminale, incolla il comando dagli Appunti e controlla gli errori visualizzati per individuare potenziali problemi.

Ad esempio, mentre lavoravo allo script, inizialmente ho dimenticato di inserire il prompt tra virgolette. Pertanto, il comando non è riuscito, poiché Whisper ha tentato di analizzare il prompt come flag.

Test e ritocchi finali

Ecco fatto: abbiamo appena creato un'app di trascrizione utilizzando le funzionalità di creazione della GUI di AutoHotkey e una soluzione di trascrizione AI pronta all'uso.

Prova a eseguire il tuo script (fai doppio clic sul suo file) e dovresti vedere la tua GUI sullo schermo.

  • Modifica le impostazioni di Whisper utilizzando gli elenchi a discesa in alto.
  • Digita una breve descrizione della tua trascrizione (e alcuni termini) nel file Richiesta campo.
  • Clicca il Carica file e scegli il file audio che vuoi trascrivere.
  • Clicca il Scegli Cartella di output e selezionare dove deve essere memorizzato il file di testo prodotto.
  • Clicca su OK per scatenare Whisper, come configurato dalla tua GUI, sul file audio selezionato e salvarne la trascrizione come file di testo nella cartella selezionata.

Se tutto ha funzionato, torna al tuo script ed elimina o commenta (aggiungendo un ";" all'inizio) tutte le funzionalità di risoluzione dei problemi (caselle di messaggio e righe di copia negli Appunti).

Andare oltre Whisper con AutoHotkey

Impostando correttamente i valori predefiniti della tua GUI e magari aggiungendo un prompt generico, puoi trasformare Whisper in un file soluzione con tre clic per trascrivere: nessun pagamento per soluzioni commerciali, servizi di terze parti, armeggiare con interfacce complicate o digitando un terminale.