Whisper
OpenAI Whisper è un sistema ASR open-source che converte accuratamente la voce in testo in 99 lingue, supportando trascrizione, traduzione e identificazione della lingua per una solida automazione AI.

Comprendere OpenAI Whisper
Whisper è un Modello o un Sistema?
OpenAI Whisper può essere considerato sia un modello che un sistema, a seconda del contesto.
- Come modello, Whisper comprende architetture di reti neurali specificamente progettate per compiti ASR. Include diversi modelli di dimensioni variabili, che vanno da 39 milioni a 1,55 miliardi di parametri. I modelli più grandi offrono una maggiore accuratezza ma richiedono più risorse computazionali.
- Come sistema, Whisper comprende non solo l’architettura del modello ma anche l’intera infrastruttura e i processi che lo circondano. Questo include i dati di addestramento, i metodi di pre-processing e l’integrazione dei vari compiti che può svolgere, come l’identificazione della lingua e la traduzione.
Capacità Principali di Whisper
La funzione primaria di Whisper è trascrivere il parlato in testo. Si distingue per:
- Riconoscimento Vocale Multilingue: Supporta 99 lingue, rendendolo uno strumento potente per applicazioni globali.
- Traduzione del Parlato: È in grado di tradurre il parlato da qualsiasi lingua supportata in testo inglese.
- Identificazione della Lingua: Rileva automaticamente la lingua parlata senza specifiche preventive.
- Robustezza ad Accenti e Rumori di Fondo: Addestrato su dati diversificati, Whisper gestisce efficacemente accenti vari e ambienti rumorosi.
Come Funziona OpenAI Whisper?
Architettura Transformer
Al cuore di Whisper vi è l’architettura Transformer, nello specifico un modello encoder-decoder. I Transformer sono reti neurali eccellenti nell’elaborare dati sequenziali e comprendere il contesto su sequenze lunghe. Introdotti nell’articolo “Attention is All You Need” del 2017, i Transformer sono diventati fondamentali in molti compiti di NLP.
Il processo di Whisper prevede:
- Preprocessing dell’audio: L’audio in ingresso viene suddiviso in blocchi da 30 secondi e convertito in uno spettrogramma log-Mel, che cattura la frequenza e l’intensità dei segnali audio nel tempo.
- Encoder: Elabora lo spettrogramma per generare una rappresentazione numerica dell’audio.
- Decoder: Utilizza un modello linguistico per prevedere la sequenza di token di testo (parole o sotto-unità) corrispondenti all’audio in ingresso.
- Uso di Token Speciali: Include token speciali per gestire compiti come identificazione della lingua, timestamp e direttive specifiche (ad es. trascrivere o tradurre).
Addestramento su Dati Supervisionati Multilingue e Multitask
Whisper è stato addestrato su un enorme dataset di 680.000 ore di dati supervisionati raccolti dal web. Questo include:
- Dati Multilingue: Circa 117.000 ore dei dati sono in 99 lingue diverse, migliorando la capacità del modello di generalizzare tra lingue.
- Condizioni Acustiche Varie: Il dataset contiene audio da vari domini e ambienti, garantendo robustezza a diversi accenti, dialetti e rumori di fondo.
- Apprendimento Multitask: Addestrandosi su più compiti contemporaneamente (trascrizione, traduzione, identificazione della lingua), Whisper apprende rappresentazioni condivise che migliorano le prestazioni complessive.
Applicazioni e Casi d’Uso
Servizi di Trascrizione
- Meeting Virtuali e Appunti: Automatizza la trascrizione in piattaforme per audio generico e settori specifici come istruzione, sanità, giornalismo e servizi legali.
- Creazione di Contenuti: Genera trascrizioni per podcast, video e live streaming per migliorare l’accessibilità e fornire riferimenti testuali.
Traduzione Linguistica
- Comunicazione Globale: Traduce il parlato in una lingua in testo inglese, facilitando la comunicazione tra lingue diverse.
- Strumenti per l’Apprendimento delle Lingue: Aiuta gli studenti a comprendere pronuncia e significato in lingue diverse.
Automazione AI e Chatbot
- Chatbot Abilitati alla Voce: Integra Whisper nei chatbot per consentire interazioni vocali, migliorando l’esperienza utente.
- Assistenti AI: Sviluppa assistenti che comprendono ed elaborano comandi vocali in varie lingue.
Miglioramenti per l’Accessibilità
- Sottotitoli: Genera sottotitoli per contenuti video, aiutando chi ha difficoltà uditive.
- Tecnologie Assistive: Permette ai dispositivi di trascrivere e tradurre la voce per utenti che necessitano di supporto linguistico.
Call Center e Assistenza Clienti
- Trascrizione in Tempo Reale: Fornisce agli operatori trascrizioni in tempo reale delle chiamate per un servizio migliore.
- Analisi del Sentimento: Analizza il testo trascritto per valutare il sentiment del cliente e migliorare le interazioni.
Vantaggi di OpenAI Whisper
Supporto Multilingue
Con la copertura di 99 lingue, Whisper si distingue per la sua capacità di gestire input linguistici diversi. Questa capacità multilingue lo rende adatto ad applicazioni e servizi globali rivolti a un pubblico internazionale.
Elevata Accuratezza e Robustezza
Addestrato su una vasta quantità di dati supervisionati, Whisper raggiunge alti tassi di accuratezza nei compiti di trascrizione. La sua robustezza verso accenti, dialetti e rumori di fondo lo rende affidabile in diversi scenari reali.
Versatilità nei Compiti
Oltre alla trascrizione, Whisper può svolgere:
- Identificazione della Lingua: Rileva la lingua parlata senza input preventivo.
- Traduzione del Parlato: Traduce il parlato da una lingua al testo inglese.
- Generazione di Timestamp: Fornisce timestamp a livello di frase nelle trascrizioni.
Disponibilità Open-Source
Rilasciato come software open-source, Whisper permette agli sviluppatori di:
- Personalizzare e Ottimizzare: Adattare il modello a compiti o domini specifici.
- Integrare nelle Applicazioni: Incorporare Whisper in prodotti e servizi senza vincoli di licenza.
- Contribuire alla Comunità: Migliorare il modello e condividere aggiornamenti.
Limitazioni e Considerazioni
Requisiti Computazionali
- Intensivo in Risorse: I modelli più grandi richiedono molta potenza di calcolo e memoria (fino a 10 GB di VRAM per il modello più grande).
- Tempo di Elaborazione: La velocità di trascrizione può variare; i modelli più grandi elaborano più lentamente rispetto a quelli piccoli.
Propenso a “Allucinazioni”
- Trascrizioni Inaccurate: Whisper può talvolta produrre testo non effettivamente pronunciato, fenomeno noto come allucinazione. Questo è più frequente in alcune lingue o con audio di scarsa qualità.
Supporto Limitato per Lingue non Inglesi
- Bias nei Dati: Una parte significativa dei dati di addestramento è in inglese, il che può influire sull’accuratezza nelle lingue meno rappresentate.
- Necessità di Ottimizzazione: Potrebbe essere necessario un ulteriore addestramento per migliorare le prestazioni in lingue o dialetti specifici.
Limitazioni sull’Input
- Lunghezza Audio: Whisper elabora audio in segmenti di 30 secondi, il che può complicare la trascrizione di audio continui più lunghi.
- Restrizioni sulla Dimensione dei File: Il modello open-source può avere limitazioni sulle dimensioni e i formati dei file in ingresso.
OpenAI Whisper in Automazione AI e Chatbot
Migliorare le Interazioni Utente
Integrando Whisper in chatbot e assistenti AI, gli sviluppatori possono abilitare:
- Comandi Vocali: Permettere agli utenti di interagire tramite voce invece che testo.
- Supporto Multilingue: Soddisfare utenti che preferiscono o necessitano lingue diverse.
- Accessibilità Migliorata: Aiutare utenti con disabilità o che non possono usare metodi di input tradizionali.
Ottimizzare i Flussi di Lavoro
- Trascrizioni Automatiche: Ridurre lo sforzo manuale nella presa di appunti e nella registrazione.
- Analisi dei Dati: Convertire contenuti vocali in testo per analisi, monitoraggio e approfondimenti.
Esempi Pratici
- Bot per Meeting Virtuali: Strumenti che si uniscono alle riunioni online per trascrivere le discussioni in tempo reale.
- Bot per Assistenza Clienti: Sistemi che comprendono e rispondono a richieste vocali, migliorando l’esperienza cliente.
- Piattaforme Educative: Applicazioni che trascrivono lezioni o forniscono traduzioni agli studenti.
Alternative a OpenAI Whisper
Alternative Open-Source
- Mozilla DeepSpeech: Un motore ASR open-source che permette l’addestramento di modelli personalizzati.
- Kaldi: Un toolkit ampiamente utilizzato nella ricerca e nell’industria per il riconoscimento vocale.
- Wav2vec: Il sistema di Meta AI per l’elaborazione vocale auto-supervisionata.
API Commerciali
- Google Cloud Speech-to-Text: Offre riconoscimento vocale con un supporto linguistico completo.
- Microsoft Azure AI Speech: Fornisce servizi vocali con opzioni di personalizzazione.
- AWS Transcribe: Il servizio di riconoscimento vocale di Amazon con funzionalità come vocabolario personalizzato.
Fornitori Specializzati
- Gladia: Offre un’architettura Whisper ibrida e potenziata con funzionalità aggiuntive.
- AssemblyAI: Fornisce API da voce a testo con funzionalità come moderazione dei contenuti.
- Deepgram: Offre trascrizione in tempo reale con opzioni di addestramento personalizzato del modello.
Fattori da Considerare nella Scelta di Whisper
Accuratezza e Velocità
- Compromessi: I modelli più grandi offrono maggiore accuratezza ma richiedono più risorse e sono più lenti.
- Test: Valuta le prestazioni con dati reali rilevanti per la tua applicazione.
Volume dell’Audio
- Scalabilità: Considera i requisiti hardware e infrastrutturali per elaborare grandi volumi.
- Elaborazione a Lotti: Implementa metodi per gestire grandi dataset in modo efficiente.
Funzionalità Avanzate
- Funzionalità Aggiuntive: Valuta se sono necessarie funzionalità come trascrizione live o diarizzazione degli speaker.
- Personalizzazione: Determina lo sforzo richiesto per implementare funzionalità extra.
Supporto Linguistico
- Lingue Target: Verifica le prestazioni del modello nelle lingue rilevanti per la tua applicazione.
- Ottimizzazione: Pianifica eventuali addestramenti aggiuntivi per lingue meno rappresentate.
Competenze ed Infrastruttura
- Competenze Tecniche: Assicurati che il tuo team abbia le competenze per implementare e adattare il modello.
- Infrastruttura: Valuta i requisiti hardware e le capacità di hosting.
Considerazioni sui Costi
- Open-Source vs. Commerciale: Bilancia il risparmio iniziale dell’open-source con i possibili costi a lungo termine per manutenzione e scalabilità.
- Costo Totale di Proprietà: Considera hardware, tempi di sviluppo e costi di supporto continuativo.
Come si Usa Whisper in Python?
Whisper è implementato come libreria Python, consentendo una perfetta integrazione in progetti basati su Python. Usare Whisper in Python implica la preparazione dell’ambiente appropriato, l’installazione delle dipendenze necessarie e l’utilizzo delle funzioni della libreria per trascrivere o tradurre file audio.
Configurare Whisper in Python
Prima di utilizzare Whisper, è necessario preparare l’ambiente di sviluppo installando Python, PyTorch, FFmpeg e la libreria Whisper stessa.
Prerequisiti
- Python: Versione consigliata dalla 3.8 alla 3.11.
- PyTorch: Framework di deep learning necessario per eseguire il modello Whisper.
- FFmpeg: Strumento da linea di comando per la gestione di file audio e video.
- Libreria Whisper: Il pacchetto Python fornito da OpenAI.
Passo 1: Installa Python e PyTorch
Se non hai già Python, scaricalo dal sito ufficiale. Per installare PyTorch, usa pip:
pip install torch
In alternativa, visita il sito di PyTorch per istruzioni specifiche in base al tuo sistema operativo e versione di Python.
Passo 2: Installa FFmpeg
Whisper richiede FFmpeg per elaborare i file audio. Installa FFmpeg utilizzando il gestore pacchetti appropriato per il tuo sistema operativo.
Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg
MacOS (con Homebrew):
brew install ffmpeg
Windows (con Chocolatey):
choco install ffmpeg
Passo 3: Installa la Libreria Whisper
Installa il pacchetto Python Whisper tramite pip:
pip install -U openai-whisper
Per installare l’ultima versione direttamente dal repository GitHub:
pip install git+https://github.com/openai/whisper.git
Nota per Utenti Windows
Assicurati che la Modalità Sviluppatore sia attivata:
- Vai su Impostazioni.
- Naviga su Privacy e sicurezza > Per sviluppatori.
- Attiva la Modalità Sviluppatore.
Modelli Disponibili e Specifiche
Whisper offre diversi modelli che variano per dimensione e capacità. I modelli vanno da tiny
a large
, ciascuno con un diverso equilibrio tra velocità e accuratezza.
Dimensione | Parametri | Modello Solo Inglese | Modello Multilingue | VRAM Richiesta | Velocità Relativa |
---|---|---|---|---|---|
tiny | 39 M | tiny.en | tiny | ~1 GB | ~32x |
base | 74 M | base.en | base | ~1 GB | ~16x |
small | 244 M | small.en | small | ~2 GB | ~6x |
medium | 769 M | medium.en | medium | ~5 GB | ~2x |
large | 1550 M | N/A | large | ~10 GB | 1x |
Scegliere il Modello Giusto
- Modelli Solo Inglese (
.en
): Ottimizzati per la trascrizione in inglese, offrono prestazioni migliorate su audio in questa lingua. - Modelli Multilingue: In grado di trascrivere più lingue, adatti ad applicazioni globali.
- Dimensione del Modello: I modelli più grandi forniscono maggiore accuratezza ma richiedono più risorse computazionali. Scegli un modello compatibile con le capacità hardware e le esigenze di performance.
Usare Whisper in Python
Dopo aver configurato l’ambiente e installato i componenti necessari, puoi iniziare a utilizzare Whisper nei tuoi progetti Python.
Importare la Libreria e Caricare un Modello
Inizia importando la libreria Whisper e caricando un modello:
import whisper
# Carica il modello desiderato
model = whisper.load_model("base")
Sostituisci "base"
con il nome del modello più adatto alla tua applicazione.
Trascrivere File Audio
Whisper fornisce una funzione transcribe
semplice per convertire file audio in testo.
Esempio: Trascrivere un file audio in inglese
# Trascrivi il file audio
result = model.transcribe("path/to/english_audio.mp3")
# Stampa la trascrizione
print(result["text"])
Spiegazione
model.transcribe()
: Elabora il file audio e restituisce un dizionario contenente la trascrizione e altri metadati.result["text"]
: Accede al testo trascritto dal risultato.
Tradurre Audio in Inglese
Whisper può tradurre audio da varie lingue in inglese.
Esempio: Tradurre audio spagnolo in inglese
# Trascrivi e traduci l'audio spagnolo in inglese
result = model.transcribe("path/to/spanish_audio.mp3", task="translate")
# Stampa il testo tradotto
print(result["text"])
Spiegazione
task="translate"
: Indica al modello di tradurre l’audio in inglese invece di trascriverlo alla lettera.
Specificare la Lingua
Anche se Whisper può rilevare automaticamente la lingua, specificandola puoi migliorarne accuratezza e velocità.
Esempio: Trascrivere audio francese
# Trascrivi audio francese specificando la lingua
result = model.transcribe("path/to/french_audio.wav", language="fr")
# Stampa la trascrizione
print(result["text"])
Rilevare la Lingua di un Audio
Whisper può identificare la lingua parlata in un file audio usando il metodo detect_language
.
Esempio: Rilevamento lingua
# Carica e preelabora l'audio
audio = whisper.load_audio("path/to/unknown_language_audio.mp3")
audio = whisper.pad_or_trim(audio)
# Converti in spettrogramma log-Mel
mel = whisper.log_mel_spectrogram(audio).to(model.device)
# Rileva la lingua
_, probs = model.detect_language(mel)
language = max(probs, key=probs.get)
print(f"Detected language: {language}")
Spiegazione
whisper.load_audio()
: Carica il file audio.whisper.pad_or_trim()
: Adatta la lunghezza dell’audio ai requisiti di input del modello.whisper.log_mel_spectrogram()
: Converte l’audio nel formato atteso dal modello.model.detect_language()
: Restituisce le probabilità per ogni lingua, identificando quella più probabile.
Utilizzo Avanzato e Personalizzazione
Per maggior controllo sul processo di trascrizione, puoi usare funzioni di basso livello e personalizzare le opzioni di decodifica.
Usare la Funzione decode
La funzione decode
permette di specificare opzioni come lingua, compito e se includere i timestamp.
Esempio: Opzioni di decodifica personalizzate
# Imposta le opzioni di decodifica
options = whisper.DecodingOptions(language="de", without_timestamps=True)
# Decodifica l'audio
result = whisper.decode(model, mel, options)
# Stampa il testo riconosciuto
print(result.text)
Elaborare Audio Live dal Microfono
Puoi integrare Whisper per trascrivere input audio live da un microfono.
Esempio: Trascrivere input live dal microfono
import whisper
import sounddevice as sd
# Carica il modello
model = whisper.load_model("base")
# Registra audio dal microfono
duration = 5 # secondi
fs = 16000 # Frequenza di campionamento
print("Recording...")
audio = sd.rec(int(duration * fs), samplerate=fs, channels=1, dtype='float32')
sd.wait
Domande frequenti
- Cos'è OpenAI Whisper?
OpenAI Whisper è un avanzato sistema di riconoscimento automatico del parlato (ASR) sviluppato da OpenAI, progettato per trascrivere il linguaggio parlato in testo scritto utilizzando il deep learning. Supporta 99 lingue ed eccelle in trascrizione, traduzione e identificazione della lingua.
- Come funziona Whisper?
Whisper utilizza un'architettura encoder-decoder basata su transformer, elabora l'audio in spettrogrammi log-Mel e produce testo tramite un modello linguistico. È stato addestrato su 680.000 ore di dati multilingue e multitask per un'elevata accuratezza e robustezza.
- Quali sono le principali caratteristiche di Whisper?
Whisper supporta il riconoscimento vocale multilingue, la traduzione del parlato, l'identificazione automatica della lingua, la robustezza ad accenti e rumori, e offre accesso open-source per personalizzazione e integrazione.
- Quali sono i requisiti hardware per Whisper?
I requisiti hardware dipendono dalla dimensione del modello: i modelli più piccoli come 'tiny' richiedono circa 1GB di VRAM, mentre il più grande ne richiede circa 10GB. Whisper è più veloce su GPU ma può funzionare su CPU con tempi di elaborazione più lunghi.
- Whisper può essere integrato in progetti Python?
Sì, Whisper è implementato come libreria Python e può essere installato tramite pip. Permette una facile integrazione in progetti Python per trascrizione vocale, traduzione e applicazioni vocali in tempo reale.
- Quali sono gli utilizzi comuni di Whisper?
Gli utilizzi comuni includono trascrizione automatica di riunioni, chatbot vocali, traduzione in tempo reale, strumenti per l'accessibilità (sottotitoli e tecnologie assistive), automazione dei call center e sistemi di automazione controllati dalla voce.
- Esistono alternative a OpenAI Whisper?
Sì, le alternative includono motori open-source come Mozilla DeepSpeech, Kaldi, Wav2vec e API commerciali come Google Cloud Speech-to-Text, Microsoft Azure AI Speech e AWS Transcribe.
- Whisper è open-source?
Sì, OpenAI Whisper è open-source, consentendo agli sviluppatori di personalizzare, ottimizzare e integrare il sistema nei propri prodotti e servizi senza vincoli di licenza.
Inizia a creare con OpenAI Whisper
Integra funzionalità avanzate di conversione da voce a testo nelle tue applicazioni, automatizza i flussi di lavoro e migliora l'esperienza utente con OpenAI Whisper e FlowHunt.