Mi chiama un caro amico e mi domanda se posso dargli un suggerimento per un software open source che gli permettesse di trascrivere una registrazione di una riunione su testo.
Che bellezza..... un software open source e poi su PC Linux!!!! Perchè l'amico userà un notebook con Linux Mint, goduria....
Io: "Beh si non ce ne sono molti, ma ci si può lavorare! i risultati dipendono dal software e dalla qualità della registrazione quindi per prima cosa ti consiglio di dotarti di un buon sistema di registrazione, va bene anche il cellulare ma purchè collegato ad un buon microfono"
Lui: "Ma con l'AI?"
Partiamo....
Aggiornamento del 13/04/2026 - Repo GitHub
Potete scaricare WhisperGUI direttamente da questo mio Repositori GitHub: https://github.com/dado70/Whisper-GUI
si, con l'AI perchè effettivamente per questo scopo mi sembra che Whisper di OpenAI (purtroppo) per questo scopo funzioni discretamente bene,
Ovviamente quando si parla di AI si pensa subito alla potenza del computer che andremo ad utilizzare, ed in particolare alla GPU. Quindi in questo progetto, per non avere problemi, ho cercato di andare ad ottimizzare l'utilizzo per la CPU anche non proprio recenti. In fondo all'articolo metterò i benchmark sul mio Intel i5 8th Gen.
Cos'è OpenAI-Whisper
Il progetto Whisper di OpenAI (si, purtroppo è di loro), "è un sistema di riconoscimento vocale automatico (ASR) addestrato su 680.000 ore di dati multilingue e multitasking supervisionati, raccolti dal web. Dimostriamo che l'utilizzo di un set di dati così ampio e diversificato porta a una maggiore robustezza agli accenti, al rumore di fondo e al linguaggio tecnico. Inoltre, consente la trascrizione in più lingue, nonché la traduzione da tali lingue all'inglese. Stiamo rendendo open source modelli e codice di inferenza per fungere da base per la creazione di utili", questo è quanto riportato sul sito del progetto https://openai.com/index/whisper/ mentre il codice è disponibile su github qui: https://github.com/openai/whisper
Vibe Coding
Ebbene si, per fare questo progetto mi sono fatto aiutare dall'AI, e nello specifico ho deciso di farmi aiutare da Claude di Anthropic, paradossale che abbia utilizzato Anthropic su un progetto di OpenAI vero?! Comunque ho utilizzato Claude per controllare il Codice, per darmi suggerimenti, debuggare e correggermi errori. L'ho utilizzato anche per scrivermi la traccia di questa guida.
Utilizzo
All'unizio avevo semplicemente pensato di utilizzarlo da terminale, ma pensando che potrebbe andare in mano ad utilizzatori meno tecnici ho deciso di scrivere una UI. La base non è altro che un comdando Python passando le varie opzioni. L'interfaccia grafica (UI) non fa altro che proporre i menu di scelta.
E' possibile caricare un file Audio o un Video, ffmpeg provvederà ad estrarre e normalizzare l'audio.
E i file audio/video dove li trovo?
Questo è un aspetto diverso, lo aggiungo a questa guida più tardi, dico solo che i file possono essere:
- registrati da un cellulare o da un registratore digitale
- registrati dal pc con vari programmi (OBS, Kazam, vlc...)
- scaricati da internet
- essere estratti da un video youtube
- basta abbiate in mano un file audio o video salvato sul PC (cfr "Te lo mando con airdrop!" - Condividere file tra dispositivi)
Fate solo attenzione ad avere i diritti per farlo e a rispettare il GDPR.
Partiamo!
Parte 1 — Installazione CLI (terminale)
Nei passi successivi do per scontato che si sappia quantomeno districarsi nell'interfaccia grafica di Linux e nel menù, che si sappia cos'è un terminale e come si eegue un comando dal terminale ... chiedo troppo? non credo dai...comunque, ciò che è preceduto da:
- # è un commento
- $ è un comando da compiare nel terminale
Step 1 — Software e dipendenze di sistema
Apriamo il terminale e digitiamo
$ apt update$ sudo apt install python3 python3-pip python3-venv ffmpeg
il primo comando aggiorna i repository ed il secondo installa i pacchetti necessari: python e ffmpeg obbligatoria per decodificare i file audio
Step 2 — Creare e attivare il venv
Adesso dobbiamo creare l'ambiente virtuale per il progetto.
Cos’è un ambiente virtuale (venv)
Un ambiente virtuale è una directory che contiene:
- una copia “privata” di Python
- pip , il gestore dei pacchetti Python
- tutte le librerie installate solo per quel progetto
Ciò che viene installato lì dentro non va a modificare l'installazione Python di sistema e quindi non rischia di creare conflitti con altri progetti. Con venv:
- ogni progetto ha le sue versioni
- puoi riprodurre l’ambiente identico su un altro computer
- niente conflitti, niente sorprese
python bashcd ~/Documenti # o dove preferisci
# adesso creo lo spazio venv di nome .spaziowhisper$ python3 -m venv .spaziowhisper
adesso lo attivo$ source .spaziowhisper/bin/activate
Step 3 — Installare Whisper
Adesso è il momento di installare whisper, il programma vero e proprio che gestirà la trascrizione. l'AI...come direbbero i più. Lo facciamo all'interno dello spazio virtuale utilizzando il comando pip (Python Package Index), il gestore di pacchetti standard per Python, utilizzato per installare, aggiornare e rimuovere librerie di terze parti dal repository PyPI .
(whisper_env) dado@X390:~$ pip install --upgrade pip(whisper_env) dado@X390:~$ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu(whisper_env) dado@X390:~$ pip install openai-whisper
Dato che vogliamo utilizzare il programma anche su computer senza GPU, installiamo anche la vesione ottimizzato per CPU Intel
(whisper_env) dado@X390:~$ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
Gia adesso saremo in grado di trascrivere il testo estraendolo dall'audio, da riga di comando come segue
Opzioni di comando
dal più veloce al più preciso per Intel 8th + 16GB, come il mio Intel(R) Core(TM) i5-8365U CPU @ 1.60GHz (thinkpad X390)
| Profilo | Comando | Tempo/ora audio stimato | RAM |
| ⚡ Ultrarapido | --model tiny --beam_size 1 | ~2 min | ~1 GB |
| ⭐ Consigliato | --model small --beam_size 1 | ~8 min | ~2 GB |
| 🎯 Alta qualità | --model medium --beam_size 1 | ~25 min | ~5 GB |
Comando consigliato (miglior compromesso):
(whisper_env) dado@X390:~$ bashwhisper audio.mp3 \ --model small \ --language it \ --device cpu \ --fp16 False \ --output_format txt \ --output_dir . \ --task transcribe \ --beam_size 1 \ --condition_on_previous_text True
L'output sarà audio.txt nella directory specificata.
potete scrivere tutto su un unica linea, ma per una miglior lettura utilizziamo il carattere \ per andare a capo
Dove:
--fp16 False → obbligatorio su CPU (evita crash)
--beam_size 1 → dimezza i tempi con minima perdita di qualità
--language it → evita il costoso auto-rilevamento della lingua
Per disattivare il venv quando abbiamo terminato il lavoro:
(whisper_env) dado@X390:~$ deactivate
Parte 2 — GUI grafica
Pur essendo gia utilizzabile da command-line dentro il terminale, creare una GUI per renderlo maggiormente user-friendly mi è sembrato d'obbligo. L'interfaccia grafica, comunque da lanciare da command line permette di:
- Caricare il file audio o video da trascrivere (sbobinare come termine mi piace sempre di più)
- Scegliere la directory di output del file di testo contenente la trascrizione
- Scegliere le varie opzioni (parametri) da passare al comando whisper (per default quelle sopra consigliate per CPU Intel 8th senza GPU: modello, lingua, formato, beam size, task)
- Barra di avanzamento con stato in tempo reale
- Log output completo con scroll automatico
- Pulsante Interrompi che termina il processo in modo pulito
Per facilitare il tutto ho creato anche un file eseguibile che:
- verifica la presenze e/o installa tutti i pacchetti neessari (da python in poi)
- installa whisper
- installa la gui
Download files
clicca qui per scaricare lo zip con i 2 file:
- install_whispergui.sh
- whisper_gui.py
Il file e protetto da una password solo per ottenerla utilzza il form in fondo alla pagina.... mi serve solo per monitore quanti lo utilizzeranno
Note
Quando selezioni un file, la GUI riconosce automaticamente il tipo e mostra un badge colorato sotto il campo:
🎵 verde → file audio, trascrizione diretta
🎬 giallo → file video, estrazione automatica prima della trascrizione
🎬 rosso → file video ma ffmpeg non trovato (con istruzioni)
Per i video la pipeline è in due step visibili nel log:
- ffmpeg estrae l'audio in un .mp3 temporaneo (16kHz mono, ottimale per Whisper) salvato nella cartella di output
- Whisper trascrive quell'audio
- Il file .mp3 temporaneo viene cancellato automaticamente alla fine
Formati video supportati
Sono supportati i seguenti tipi di file video: mp4, mkv, avi, mov, webm, flv, ts, m2ts, wmv, 3gp, mpeg.
Installazione GUI (Linux Mint)
Hai scaricato il file zip, richiesto la password e decompresso i due file: whisper_gui.py e install_whispergui.sh. Mettili nella stessa cartella e poi:
# Rendi eseguibile lo script
$ chmod +x install_whispergui.sh
# Lancia l'installazione$ ./install_whispergui.sh
Lo script installerà tutto automaticamente: dipendenze di sistema, venv .spaziowhisper, PyTorch CPU e openai-whisper. Al termine trovi WhisperGUI nel menu applicazioni di Linux Mint (ma non funziona :( devo sistemarlo) quindi lancialo da terminale con il comando:
$ python3 ~/.local/share/whispergui/whisper_gui.py
Versione windows
L'università di bologna ha creato una GUI per windows disponibiel qui https://whisper.ditlab.it/
Da sistemare
Il lanciatore del programma dal menù di Mint-Cinnamon non mi funziona
altre mille cose, perchè io non amo le interfacce grafiche e solitamente lanciavo il comdando da terminale, ma me lo hanno chiesto, ed in qualche modo ho cercato di accontare la richiesta
questo articolo