Whisper, un software open-source per il riconoscimento vocale (anche per l’italiano!)

Se siete interessati alle tematiche relative all’intelligenza artificiale, al riconoscimento vocale ed in generale a tutte quelle tecnologie che fanno spalancare la bocca quando si vedono in azione, vi farà piacere conoscere Whisper, un software di riconoscimento vocale (Automatic Speech RecognitionASR) per giunta open-source.

Istruito e rilasciato dal progetto OpenAI ciò che fa Whisper, almeno sulla carta, è molto semplice: dato un file audio in ingresso, ne restituisce a console il testo dei dialoghi.

Ci sono due grandi motivi per cui vale la pena testare questo progetto. Il primo è che funziona su una svariata serie di linguaggi compreso, udite udite, l’italiano. Questo significa che sì, potrete usarlo in contesti, per così dire, nostrani. Il secondo è che è open-source, con una documentazione molto ampia che consente di essere operativi in tempi davvero, davvero veloci.

Noi lo abbiamo testato creando un virtualenv Python (la code base è strutturata su Python 3.9.9 e PyTorch 1.10.1) ed installandoci il tool ffmpeg oltre che i sorgenti del repository Git https://github.com/openai/whisper.git:

rasca@catastrofe [~]> sudo apt update && sudo apt install ffmpeg

rasca@catastrofe [~]> python3 -m virtualenv Whisper

rasca@catastrofe [~]> source Whisper/bin/activate

(Whisper) rasca@catastrofe [~]> pip install git+https://github.com/openai/whisper.git
Collecting git+https://github.com/openai/whisper.git
...
...

Da questo momento in poi il tool whisper è utilizzabile. Al primo utilizzo verranno scaricati i file “modello”, ossia il cervello dell’intelligenza artificiale, istruito per l’appunto dal progetto OpenAI con 680.000 ore di dati multilingue e multitasking scelti e raccolti dal web.

Il tipo di invocazione dipende dal “modello” scelto, il nostro test ha previsto l’utilizzo di “tiny”, in questo semplice modo:

(Whisper) rasca@catastrofe [~]> whisper sample.flac --language it --fp16 False --model tiny
[00:00.000 --> 00:10.000]  prova di registrazione per dare impasto a whisper, questo favoloso tool per il riconoscimento vocale, un file

È interessante notare alcune cose:

  • Il testo riflette esattamente quanto avevo registrato nel file sample.flac, riconoscendo addirittura le pause che ho compiuto nel parlare, trasformandole in virgole.
  • Ho dovuto specificare quel --fp16 False poiché il sistema pare non andar d’accordo con le schede NVidia.
  • Così come esiste l’eseguibile whisper è possibile anche integrare il tutto in uno script Python, andando ad aprire le potenzialità di utilizzo di questo software in maniera sensibile.

In conclusione, quello che è stato dimostrato è che l’uso di un set di dati così ampio e diversificato delle sorgenti iniziali con cui istruire il modello porta a una maggiore robustezza degli accenti, della gestione del rumore di fondo e del linguaggio tecnico. Inoltre, consente la trascrizione in più lingue, nonché la traduzione da tali lingue in inglese.

Testato su più parti, per quanto riguarda l’italiano, il software ha dato riscontri impressionanti su testo “secco” inteso come voce che parla ad un microfono, mentre se si parla di canzoni italiane, allora i risultati sono un filo più… Pittoreschi, ma ricordiamolo: il software ed il modello nascono come riferiti alla lingua inglese, le lingue alternative rimangono un di cui.

In ogni caso già solo così, se si pensa alle applicazioni di questa tecnologia nel day by day i casi d’uso sono tantissimi, vedi prendere appunti a voce e vederli trascritti, piuttosto che intercettare dialoghi dall’audio proveniente dalle telecamere di sorveglianza.

Ah no, questo mi sa che non dovevo scriverlo.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

Tags: , , , ,