Archivi categoria: Intelligenza Artificiale

Tutorial: clonare una voce con l’intelligenza artificiale usando Real Time Voice Cloning

Negli ultimi anni i progressi nel campo dell’intelligenza artificiale hanno reso possibile numerose applicazioni per quanto riguarda le immagini (riconoscimento degli oggetti, generazione di foto) e dei testi (bot, elaborazione del linguaggio naturale NLP, generazione di articoli).

Lo stesso vale anche per i dati sonori. Si pensi per esempio a quanto il riconoscimento vocale è migliorato, come nel caso degli assistenti vocali, capaci di distinguere le parole che vengono pronunciate in maniera molto più chiara rispetto al passato. Stessa cosa per la sintesi vocale.

Il discorso risultava più complesso per la generazione o la modificazione di file audio, ad esempio la clonazione di una voce.

Qualche tempo fa, una startup chiamata Lyrebird aveva messo sù un sistema per clonare voci, e aveva avuto discreto successo. Ne avevo parlato anche io in questo articolo. Per quanto il risultato fosse lontano dalla perfezione (timbro semi robotico, dizione da sintetizzatore vocale), la direzione intrapresa era quantomeno incoraggiante.

Ecco come funziona Lyrebird: vengono mostrate all’utente una trentina di frasi da pronunciare, quasi degli scioglilingua, tipo: A loyal warrior will rarely worry why we rule. Trenta è il numero minimo degli scioglilingua da pronunciare, e viene espressamente detto all’utente che più registrazioni il sistema ha a disposizione e migliore sarà il risultato.

Il problema di Lyrebird è che, di fatto, è possibile clonare solo la propria voce, perchè bisogna convincere qualcuno a pronunciare le 30 frasi indicate dal computer. Diversamente sarebbe stato molto più interessante poter clonare qualsiasi voce a partire da una registrazione.

Poi, finalmente, a novembre del 2019, è stato rilasciato Real Time Voice Cloning, un’implementazione di questo articolo pubblicata su Github. In sostanza, questo algoritmo permette di clonare una voce a partire da una registrazione audio di pochi secondi.

E’ possibile testare Real Time Voice Cloning usando questo notebook precompilato di Google Colab:

https://colab.research.google.com/github/ak9250/Real-Time-Voice-Cloning/blob/master/Real_Time_Voice_Cloning.ipynb

Per farlo funzionare bisogna accedere al proprio account di Google.

Una volta aperto il link vi troverete davanti ad alcune celle di codice, bisognerà eseguirle tutte, una per una, cliccando sul tasto play alla sinistra di ogni singola cella.

 

Arrivati all’ultima cella di codice, il sistema chiede di inserire il file audio contenente la voce da clonare. Per questo tutorial prenderemo come esempio la voce di Berlusconi.

Per il momento Real Time Voice Cloning è stato allenato solamente con voci in lingua inglese, e quindi funziona male in italiano. Per questo, sono andato a trovarmi un piccolo video, circa 10 secondi, dove Berlusconi parla in inglese. Ho salvato l’audio in un file mp3 e l’ho caricato su Google Colab. Per caricare un file su Colab, cliccare sul tasto upload nella sidebar laterale della pagina, come in immagine.

Dopo di che va inserito il l’indirizzo del file nell’ultima cella di codice, e poi si può premere invio.

A questo punto, viene chiesto di scrivere una frase da far dire alla voce clonata. Circa una ventina di parole.

Dopo pochi secondi viene prodotto un file audio wav “demo_output_00.wav”, salvato nella sidebar, all’interno della cartella Real-Time-Voice-Cloning. Il file può essere scaricato e riprodotto. Se non compare nessun file audio, cliccare su refresh.

Il risultato , nel caso della voce di Berlusconi, non è proprio brillante. Ma, provato invece con voci di persone inglesi/americane è notevolmente migliore, e in alcuni casi perfettamente uguale. Il motivo sta nel fatto che Real Time Voice Cloning copia lo spettro della voce sorgente impostandola su una voce di destinazione sintetica pre-confezionata.

 

Esempio con la voce di Emilia Clarke:

 

**********

Aggiornamento 08/04/2020: Tensorflow 2.2.0 ha introdotto alcune modifiche incompatibili con la versione predente 1.14.0. Per fare funzionare il notebook di Colab bisogna aggiungere la seguente cella di codice ed eseguirla prima delle altre:

%tensorflow_version 2.x
!pip uninstall -y tensorflow
!pip install tensorflow-gpu==1.14.0

 

 

 

 

 

 

 

Generare testi con l’intelligenza artificiale: un tutorial su GPT-2

Nel febbraio 2019 OpenAI, l’organizzazione fondata da Elon Musk dedicata allo studio dell’intelligenza artificiale, rilasciava il modello GPT-2 (Generative Pretrained Transformer-2). Tramite un complesso sistema di reti neurali, dopo essere stato “allenato” con milioni e milioni di testi scritti, l’algoritmo era capace di generare testi leggibili sia in maniera condizionale (cioè dandogli una traccia, un suggerimento sull’argomento di cui deve scrivere), sia non-condizionale (ovvero generando un testo a caso).

Del modello furono pubblicate 4 versioni: una small, conosciuta come 117M, una medium (345M), un modello large (774M) e infine il modello XL, detto anche 1.5B o 1558M. Questi acronimi corrispondono al numero di testi con cui l’algoritmo è stato allenato: si va dai 117 milioni del modello small fino ai 1.5 miliardi dell’ XL.

In particolare, quest’ultimo modello, si diceva, non sarebbe stato rilasciato perchè considerato troppo potente e possibilmente usato in modi non leciti (vedi fake news,..). Appena un mese fa invece, il 9 novembre scorso, OpenAI lo ha reso pubblico, ed in pochi giorni erano disponibili dei demo per testare la potenza del 1.5B.

Per provarlo voi stessi, potete visitare il sito web Talk to transformer, creato dall’ingegnere canadese Adam King. Vi viene chiesto di inserire una frase o uno spunto per la generazione del testo e l’algoritmo farà da sè. Se siete indecisi su cosa chiedere, potete scegliere tra 9 suggerimenti (ricette di cucina, viaggio spaziale, html e perfino Il Signore degli Anelli).

In via generale, funziona solo in lingua inglese. Se provate a chiedergli qualcosa in italiano, molto probabilmente non capirà, per la semplice ragione che è stato allenato solo su testi anglosassoni. Inoltre, risponde alle domande ed è capace di parlare più o meno di qualsiasi cosa: da un argomento di fisica fino a tematiche riguardanti la società.

Gli ho chiesto per esempio chi fosse Napoleone Bonaparte. Ecco come ha risposto:

In pratica, apparte il suggerimento che ho dato (parlare di Napoleone), tutto il resto è stato scritto dall’intelligenza artificiale e risulta sintatticamente leggibile. L’unico problema è che alcuni dei fatti raccontati non sono veritieri o non hanno senso: ad esempio, viene menzionato il fatto che Napoleone sia nato a Boulogne, ma in realtà è nato ad Ajaccio.

Il testo generato si ferma a 150 parole: tale è il limite permesso dal sito web. E’ una limitazione comprensibile dal momento che per far funzionare un modello GPT-2 serve una scheda video con almeno 11 GB di RAM.

Tuttavia, Google offre Tesla K80 e T4 nel suo ambiente di sviluppo Colab, una piattaforma dove chiunque può testare il proprio codice e usufruire gratuitamente di accelerazione GPU.

Proprio per questo, è stato creato un notebook jupiter pre-compilato dove testare il modello GPT-2:

https://colab.research.google.com/github/ilopezfr/gpt-2/blob/master/gpt-2-playground_.ipynb#scrollTo=tI-HVDbQS9dF

Usarlo non è difficile. Il primo passo è quello di cliccare sul pulsante play, nella prima cella di codice: (rimuovendo le cellette prima dei modelli 117M e 345M).

Google chiede l’autorizzazione prima di procedere. Una volta che l’installazione inizia, ci vorrà qualche minuto prima che si concluda.

Una volta fatto, siamo pronti a generare i primi testi. Basterà andare un po’ più’ giù fino al prossimo paragrafo: Unconditional sample generation.

Anche qui si tratta esclusivamente si cliccare il pulsante play. Eventualmente se lo desiderate potete cambiare le impostazioni per la generazione del testo, aggiungendo rimuovendo o modificando le flag indicate nella descrizione.

Con –model_name è indicato il tipo di modello da utilizzare (è preimpostato l’XL da 1558M). –nsamples indica invece il numero di testi da generare, mentre top_k e temperature indicano dei valori relativi alla diversità e casualità del testo.

Clicco anche io play. Aspetto qualche minuto, ed ecco che dopo un elenco interminabile di comandi e variabili, appaiono i miei primi 2 testi generati.

Il primo inizia con quello che sembra un articolo di giornale riguardo la presentazione di un libro, salvo che poi il testo generato collassa su se stesso e ripete per dieci volte la stessa frase.

Il secondo testo invece risulta più coerente. Sembrerebbe parlare di argomenti governativi statunitensi: non si tratta di un articolo di giornale ma piuttosto di un report, una specie di pamplet ministeriale. Anche questo testo, comunque, presenta dei “sintomi” di collassamento, in quanto dopo le prime due righe alterna frasi che iniziano tutte allo stesso modo, anche se si concludono diversamente.

In generale, dopo aver provato questo modello (non-condizionale) per diversi giorni, posso ben dire che esso produce il 70% delle volte manuali di istruzioni o articoli di giornale riguardanti notizie fantasiose o semi-inventate, mentre un 10% produce dialoghi, e un ulteriore 10% testi di saggistica su vari argomenti.

Sicuramente più coerente è però la generazione di testi condizionati. Nel pre-compilato di Colab, si può trovare subito dopo quella non-condizionata. In particolare ci riferiamo al paragrafo “text-completion”.

Anche questa volta, bisogna cliccare play per avviare la cella di codice, dopo di chè il modello chiede la traccia da suggerire:

Inserisco la domanda, premo il tasto invio della tastiera, e aspetto che i testi compaiano.

 

Il testo numero 1 sembra un saggio storico. E’ come se l’autore (l’intelligenza artificiale) si chiedesse chi fosse veramente Napoleone. Se fosse un genio, se avesse le capacità di diventare imperatore. E segue tutta un’argomentazione degna di nota.

Il testo numero 2 invece, pur risultando sintatticamente valido, tende a perdere di senso e racconta una storia romanzata della vita del generale francese.

Il modello condizionale di GPT-2 può essere utilizzato con qualunque input: potete chiedergli della Seconda Guerra Mondiale, come pure della Fusione nucleare, e così via. Se non centra l’argomento al primo tentativo, lo fa solitamente al secondo, e questo fa di GPT-2 un valido strumento di scrittura automatica di articoli e testi di vario tipo, ovviamente da controllare, perchè i dati prodotti tendono a non essere veritieri.

 

 

 

 

 

Come impostare StyleGAN su Colab per generare immagini con l’intelligenza artificiale

Questo tutorial spiega come usare il tool di generazione di immagini StyleGAN per mezzo dell’ambiente di sviluppo Google Colab, dotato di accelerazione GPU e TPU gratuita. Colab, abbreviazione di Colaboratory, è messo a disposizione da parte di Google per piccole ricerche che richiedano hardware non sempre alla portata di tutti (Tesla K80/ Tesla T4). Colab può essere usato per 12 ore, al termine delle quali il runtime si disconnette e i dati vengono cancellati.

Allenare StyleGAN richiede giorni di training, e cioè necessita più sessioni di Colab. Bisognerà quindi, prima dello scadere delle 12 ore del runtime, salvare i dati per poter poi far ripartire il calcolo dal punto in cui lo avevano precedentemente fermato.

Detto ciò, il primo passo da fare è quello di collegarci a Google Colab:

https://colab.research.google.com

Selezioniamo File>New Python 3 Notebook dal menù in cima alla pagina:

 

Abbiamo quindi creato il notebook su cui far partire StyleGAN. Si dovrebbe presentare come in immagine:

 

StyleGAN richiede accelerazione GPU, cioè una scheda grafica su cui distribuire numerose operazioni di calcolo. Selezioniamo quindi dal menù in cima alla pagina Edit>Notebook settings.

Si dovrebbe aprire una finestra come questa, dalla quale selezioniamo la voce GPU come acceleratore hardware. Clicchiamo su ‘Save’ per salvare l’opzione selezionata.

A questo punto tutto è pronto per installare StyleGAN. Scriviamo quindi il codice seguente nella cella di codice (rettangolo grigio) e clicchiamo il tasto play. Questo passo provvede a clonare il programma da Github.

!git clone https://github.com/NVlabs/stylegan.git

 

Passiamo ora al dataset, cioè all’insieme di immagini che forniremo all’algoritmo per imparare a generarne altre simili.

Carichiamo quindi tutte le nostre immagini su Google Drive, all’interno di una cartella che chiamiamo “dataset”. Per accedere alle immagini su Google Colab, dobbiamo montare collegare Google Drive, cioè importare tutti i contenuti all’interno del nostro Colab. Clicchiamo quindi su “Mount drive” nella sidebar laterale di Colab, come in immagine:

Apparirà quindi una cella di codice nello spazio di lavoro. Eseguiamola. Una volta terminato avremo importato i contenuti di Google Drive, i quali saranno visibili

nella sezione “Files” della sidebar a sinistra, all’interno della cartella “drive”.

 

 

StyleGAN richiede che tutte le immagini siano dello stesso formato e abbiano le stesse dimensioni. Per assicurarci di questo installiamo Augmentor, il quale provvederà a ritagliare tutte le foto nella dimensione 512×512, o, in alternativa, a quella che specificherete.

Prima di farlo, creiamo però una cartella dove contenere le immagini ritagliate. Copiate ed eseguite questo codice in una nuova cella. Esso provvederà a creare una cartella apposita all’interno di Stylegan.

import os
if not os.path.exists('/content/stylegan/immagini'):
    os.makedirs('/content/stylegan/immagini')

 

Passiamo quindi all’installazione di Augmentor. Apriamo una nuova cella e incolliamo questo codice. Al posto di “path/to/images” inserite l’indirizzo della cartella “dataset” che abbiamo importato da Google Drive (dovrebbe apparire più o meno così: “/content/drive/My Drive/dataset“). L’altro indirizzo da specificare è quello di destinazione delle immagini, ovvero come precedemente specificato “/content/stylegan/immagini”.

!pip install Augmentor
 p = Augmentor.Pipeline("/path/to/images", "/content/stylegan/immagini", save_format="JPEG")
 p.resize(probability=1.0, width=512, height=512)
 p.random_color(probability=1.0,min_factor=0.5,max_factor=0.9)
 p.process()
 p.sample(3000)

 

In particolare il comando p.sample(numero) stabilisce a quante immagini allargare il dataset. Nel machine learning infatti servono molti elementi con cui effettuare il training e quindi, nel caso le immagini a disposizione non fossero di numero sufficiente (almeno 1000), Augmentor ne creerà 3000, modificando piccoli parametri come rotazione e colore ad ogni singola foto in modo da ottenere da ogni singola immagine più copie con cui far allenare StyleGAN.

Una volta fatto ciò indichiamo al programma la cartella dove si trovano le immagini, affinché lui le configuri come dataset. Il codice seguente fa partire il file dataset_tool.py, e crea un nuovo dataset chiamato smalls a partire dalla cartella immagini.

!python /content/stylegan/dataset_tool.py create_from_images datasets/smalls/ /content/stylegan/immagini/

 

A questo punto, va fatta un’ultima modifica al file train.py per impostare alcuni parametri, ovvero specificare quale dataset di immagini utilizzeremo (un data “custom”, cioè personalizzato, che abbiamo chiamato smalls nel passaggio precedente), e quante GPU utilizzeremo nel calcolo (in questo caso 1, cioè quella che Colab ci mette a disposizione).

Colab non permette di modificare i file tramite un editor, quindi sarà necessario scaricare train.py dalla cartella stylegan, quindi cancellarlo da Colab una volta scaricato (tasto destro del mouse sul file e clic su “Delete”), e poi effettuare l’upload della versione modificata.

Per settare un parametro va rimosso il cancelletto # di fronte alla riga corrispondente. Le righe,già modificate secondo i nostri parametri, sono quelle mostrate nell’immagine seguente.

Per spostare i file all’interno di Colab, può ritornare utile usare questo codice in python:

import shutil
shutil.move('/content/cartelladovesitrovailfile', '/content/cartelladovespostareilfile')

 

Una volta modificato il file train.py, è possibile fare partire il training vero e proprio:

!python /content/stylegan/train.py

 

StyleGAN provvederà a salvare una copia del lavoro svolto ogni 10 tick, ovvero all’incirca ogni 1000 iterazioni. La copia viene salvata con il nome di network_snapshot_numero dell’iterazione corrispondente.pkl

tick 1     kimg 140.3    lod 7.00  minibatch 256  time 16m 19s      sec/tick 418.8   sec/kimg 2.99    maintenance 560.3  gpumem 3.8 
network-snapshot-000140        time 4m 57s       fid50k 411.7487  
tick 2     kimg 280.6    lod 7.00  minibatch 256  time 30m 44s      sec/tick 348.9   sec/kimg 2.49    maintenance 515.8  gpumem 3.8 
tick 3     kimg 420.9    lod 7.00  minibatch 256  time 36m 34s      sec/tick 347.7   sec/kimg 2.48    maintenance 2.8    gpumem 3.8 
tick 4     kimg 561.2    lod 7.00  minibatch 256  time 42m 26s      sec/tick 348.7   sec/kimg 2.49    maintenance 3.3    gpumem 3.8 
tick 5     kimg 681.5    lod 6.87  minibatch 128  time 52m 00s      sec/tick 570.3   sec/kimg 4.74    maintenance 3.0    gpumem 4.2 
tick 6     kimg 801.8    lod 6.66  minibatch 128  time 1h 03m 16s   sec/tick 673.2   sec/kimg 5.60    maintenance 3.4    gpumem 4.2 
tick 7     kimg 922.1    lod 6.46  minibatch 128  time 1h 14m 37s   sec/tick 677.9   sec/kimg 5.63    maintenance 2.8    gpumem 4.2 
tick 8     kimg 1042.4   lod 6.26  minibatch 128  time 1h 25m 58s   sec/tick 677.5   sec/kimg 5.63    maintenance 3.1    gpumem 4.2 
tick 9     kimg 1162.8   lod 6.06  minibatch 128  time 1h 37m 22s   sec/tick 681.0   sec/kimg 5.66    maintenance 3.1    gpumem 4.2 
tick 10    kimg 1283.1   lod 6.00  minibatch 128  time 1h 48m 37s   sec/tick 672.1   sec/kimg 5.59    maintenance 2.8    gpumem 4.2 
network-snapshot-001283        time 5m 03s       fid50k 331.6563  

 

È necessario ricordarsi di salvare l’ultimo snapshot prima dello scadere delle 12 ore concesse da Google Colab. La creazione e il download del file è molto lenta (circa 300 MB di peso) e possono essere necessarie alcune decine di minuti.

Per riprendere il training al punto in cui si era rimasti, creiamo una nuova sessione su Colab, cliccando su Runtime > Reset all runtimes dal menù in cima alla pagina. Ricordiamoci di selezionare nuovamente un’accelerazione GPU per il nostro lavoro. Carichiamo il file pkl  precedentemente scaricato e, e rieseguiamo nuovamente ogni punto di questo tutorial.

Prima di avviare il training nuovamente sarà però necessario modificare il file training_loop.py all’interno della cartella options di StyleGAN, specificando dove si trova il file pkl, e da quale iterazione riprendere, come mostrato nell’immagine successiva.

Come creare un deepfake: tutorial introduttivo per chi non lo ha mai fatto

Fino a qualche anno fa, il fotoritocco era un’arte nella quale si cimentavano solo gli esperti del settore, e che spesso comportava ore e ore di controlli manuali per curare ogni particolare e realizzare un falso più autentico possibile.

Oggi, più precisamente da qualche anno a questa parte, i progressi nel machine learning hanno consentito di fare grandi passi in avanti, e modificare una foto è diventato un processo quasi automatico. È possibile compiere operazioni di face-swapping (cioè mettere la faccia di una persona nel corpo di un’altra) in maniera che il risultato appaia quasi indistinguibile agli occhi di un osservatore: i prodotti di queste operazioni si chiamano deepfake e nell’ultimo anno sono diventati estremamente popolari.

Quale dei due è quello vero?

Per realizzarli non servono grandi competenze: può farli chiunque, scaricando un semplice tool da usare nel proprio computer. La creazione di un deepfake richiede però tempo (da alcune ore ad alcuni giorni per la realizzazione di un video, a seconda della scheda grafica che si usa) e si consiglia l’uso di una scheda grafica da almeno 2GB di RAM.

Maggiore è la RAM della scheda grafica in uso, minore sarà il tempo impiegato per creare il video. Nella media, servono 72 ore per creare un deepfake con una GPU da 8 GB, ma il tutto dipende dai casi e dalla precisione che si vuole ottenere.

Un buon deepfake è considerato tale se il training ha impiegato almeno 100 -300 mila iterazioni. Ma in alcuni casi si ottengono risultati accettabili anche dopo le prime 30-50 mila iterazioni. In generale questi sono i tempi necessari per una singola iterazione a seconda della quantità di RAM della scheda grafica in uso:

2 GB  → 10-15 secondi a iterazione

8 GB → 2-3 secondi a iterazione

11 GB→ 1-2 secondi a iterazione

16 GB → 0.5-0.8 secondi a iterazione

Volendo si può usare anche la propria CPU, cioè il processore del proprio computer, ma ci vorrebbero settimane di attesa per la creazione del video.

*****

Per fare un deepfake online: Google offre gratuitamente una Tesla K80 da 11 GB nel suo ambiente di sviluppo online Colab. Questo il link del notebook precompilato per creare deepfake (con DeepFaceLab): 
https://colab.research.google.com/github/chervonij/DFL-Colab/blob/master/DFL_Colab_1-0.ipynb

*****

Chi ha una scheda grafica NVIDIA si ricordi di scaricare ed installare il toolkit CUDA prima di iniziare a creare il proprio deepfake. Link al download: https://developer.nvidia.com/cuda-downloads

Il primo passo è quello di scaricarsi i tool: i più usati sono FakeApp, DeepFaceLab e OpenFaceSwap. DeepFaceLab viene solitamente preferito agli altri due per la facilità d’uso, oltre per il fatto che permette di creare deepfake anche con schede grafiche diverse dalle NVIDIA.

Per scaricarlo cliccate questo link:

mega.nz/#!eGRk0KpQ!pwLhNEf3zTuyquO2kZIGICrVc_iSv-ZwrswQah5YYKU

Una volta estratto l’archivio, troverete al suo interno questo contenuto:

Ci sono due cartelle, e un gran numero di file eseguibili. A noi interessa solamente la cartella “workspace” e alcuni di questi file eseguibili.

Andiamo quindi dentro la cartella workspace:

Al suo interno sono presenti due file video: “data_dst” e “data_src”. Essi sono i video sorgente e il video destinazione per la creazione dei deepfake. Il “video_src” è quello dove c’è la faccia che volete traslare mentre “video_dst” è il video in cui volete inserire la faccia.

Se ad esempio volete fare un deepfake dove Di Maio parla nel corpo di Salvini, “video_src” dovrà contenere un video di Di Maio, mente “video_dst” dovrà contenerne uno di Salvini.

Potete quindi cancellare i “data_dst” e “data_src” che trovate nella cartella e rimpiazzarli con i vostri nuovi “data_dst” e “data_src” da impiegare per la creazione del deepfake.

Il prossimo passo è ritornare nella cartella “DeepFaceLab” e cliccare sul file eseguibile “extract images from video data src“. Questo file estrarrà tutti i fotogrammi del video sorgente.

Il file eseguibile si presenterà a voi in questo modo. Vi chiede in quale formato volete salvare le immagini: cliccate invio e il programma inizierà ad estrarre le immagini.

– Se all’inizio non compare nessuna scritta, basta aspettare qualche secondo.-

Una volta compiuta questa operazione, noterete che tutti i fotogrammi estratti sono raccolti nella cartella “data_src” contenuta in “workspace”.

Come secondo passo, fate partire il file eseguibile “data_src extract faces MT best GPU“: questo programma estrarrà i volti dai fotogrammi raccolti nell’operazione precedente.

Tali volti saranno salvati nella sottocartella “aligned” della cartella “data_src” contenuta in workspace.

Successivamente, eseguire i file  data_src sort by similar histogram e data_src check result.

A questo punto recatevi nella cartella aligned, contenente tutti i volti estratti, e cancellate quelli che non rappresentano la faccia interamente, o sono stati estratti male (ad esempio al contrario).

Fatto questo, abbiamo raccolto un dataset con tutti i volti della faccia da translare.

Facciamo quindi lo stesso per il video di destinazione. Cliccare quindi sul file eseguibile “extract PNG from video data_dst FULL FPS“: saranno estratti, come nel caso precedente, tutti i fotogrammi del video.

Successivamente, il file data_dst extract faces MT (or DLIB) best GPU permetterà a sua volta di estrarre i volti dai fotogrammi precedentemente ricavati.

Infine, clicchiamo su data_dst sort by similar histogram data_dst check results. Quest’ultimo aprirà un programma, chiamato XNViewMP, che mostrerà tutti i volti estratti con tanto di landmark facciali. Controllateli ed eliminate quelli che non sono ben allineati con i tratti visivi.

In questo caso si può notare che il volto non è stato estratto correttamente.

Una volta controllati i volti estratti dai video sorgente e destinazione, la preparazione dei nostri dataset sarà terminata.

Potremo quindi iniziare ad allenare il nostro programma e creare il deepfake. Questa operazione viene detta training, che per l’appunto vuol dire “allenamento” in lingua inglese.

Troverete vari file eseguibili per fare questo: DF, H64, H128, LIAEF128, SAE

H64 e SAE funzionano con schede grafiche da 2GB di RAM o superiore.

H128: 3GB di RAM o superiore.

DF e LIAEF128: 5GB di RAM o superiore

Noi usiamo il più semplice tra tutti, l’H64, presente, oltre che in DeepFaceLab, anche in FakeApp.

Clicchiamo quindi su “train H64“.

Vi verrà chiesto quale scheda grafica usare. Se cliccate invio il programma sceglierà automaticamente quella dalle migliori prestazioni.

Successivamente, vi saranno alcune preferenze tra cui scegliere. Potete tranquillamente skipparle cliccando invio a ogni passo (in questo modo verrà impostato il valore predefinito).

Una volta iniziato il training, potrete notare la comparsa di una finestra dove verranno mostrate le anteprime dei progressi fatti nella creazione del vostro deepfake, oltre che al numero di interazioni compiute. Maggiore sarà il numero di interazioni, migliore è il risultato che otterrete.

Solitamente, i primi cambiamenti delle anteprime si iniziano a vedere dopo il primo migliaio di iterazioni.

Quando terminerà il training? A deciderlo siete soltanto voi. Quando le anteprime vi sembreranno abbastanza autentiche, allora potrete cliccare invio e chiudere il file H64.

A questo punto, per creare il file video, ovvero il deepfake vero e proprio, tornate nella cartella principale di DeepFaceLab aprite il file eseguibile “convert H64” ( o “convert SAE” se avete usato il training SAE).

L’ultimo file eseguibile su cui cliccare è “converted to mp4”, o “converted to avi” nel qual caso avrete un video in formato .avi. Nella cartella workspace verrà quindi creato il video, denominato “result.mp4”.

 

7 divertenti tool online di Intelligenza Artificiale (2019)

Negli ultimi tempi l’Intelligenza Artificiale è un topic in netta ascesa. Quello che spesso si sente dire, e cioè che i sistemi automatici finiranno per sostituire l’uomo a livello lavorativo, non è lontano dal vero. Il punto è che, nella nostra esperienza quotidiana, computer e smartphone si limitano ad eseguire operazioni piuttosto semplici: scrivere in Word, navigare su internet: tutte operazioni statiche di tipo input/output mediate da linguaggi di programmazione.

Nelle applicazioni di Intelligenza Artificiale invece, vengono usati modelli computazionali che ricalcano la mente umana, di cui sono esempio le reti neurali. I computer imparano quindi a fare da sé. E le applicazioni pratiche di questo tipo di sistemi non si sono fatte attendere: andiamo a vederne alcune diventate popolari sul web:

1. This Person does not exist

Che cosa hanno in comune tutte le persone mostrate nell’immagine qui sopra? Una sola, e cioè che nessuna esiste veramente. Sono state tutte generate automaticamente dall’Intelligenza Artificiale, usando StyleGan, l’ultimo modello di Reti Antagoniste Generative (GAN) rilasciato a febbraio 2019. Le GAN sono basate su due reti neurali: una propone l’immagine, l’altra la contesta finché le due non trovano un accordo. In questo modo si creano delle foto che risultano autentiche all’occhio umano.

Per generare una foto, ecco il link a This Person Does Not Exist.

 

2. Lyrebird

Mandare messaggi vocali su Whatsapp vi stanca troppo? Nessun problema. Sappiate che esiste un tool che fa al caso vostro. Si tratta di Lyrebird, un sito web che permette di generare una copia della vostra voce usando l’Intelligenza Artificiale.

Lyrebird (termine inglese per Menura) è un genere di uccelli canori, denominati anche Uccelli Lira. Essi sono capaci di emulare i suoni che sentono. Il suo omonimo nel web fa altrettanto. Una volta creato l’account, basterà leggere un minimo di 28 frasi per generare la vostra voce virtuale. Attualmente è disponibile solo il modello di voce anglosassone, quindi potrete generare la vostra voce in lingua inglese.

 

3. IBM Watson Text to Speech

Implementato con Watson, l’intelligenza artificiale di IBM, il servizio di text-to-speech del colosso americano del tech offre un’ottima qualità di voce e la possibilità di inserire pause e velocità di dizione per mezzo dell’Expressive SSML. Per ora disponibile solo una voce in lingua italiana.

 

4. Google Autodraw

Se vi piace disegnare ma non siete dei Giotto, Google ha pensato a una soluzione per voi. Usando Autodraw sarà possibile creare dei veri e propri capolavori, dal momento che a correggervi c’è niente-poco-di-meno che l’Intelligenza Artificiale.

Il tool funziona così: voi provate a disegnare qualcosa, e Autodraw tenta di capire che cos’è e lo perfeziona. Ovviamente potete aiutarlo anche voi, dandogli un piccolo suggerimento.

 

5. Lobe

Non tutti si accontentano di vedere applicazioni di Intelligenza Artificiale fatte da altri: alcuni vogliono esserne parte attiva e sviluppare qualcosa di innovativo. Spesso però la mole di conoscenze, software e attrezzature necessarie per iniziare con il machine learning costituisce un ostacolo. Proprio per questo siti come Lobe.ai sono estremamente utili.

Tramite questo tool sarà possibile costruire e allenare i propri modelli di deep learning tramite un’interfaccia semplice ed intuitiva.

 

6. Google Photoscan

Le nostre foto. Le nostre amate foto. Oggi, si sa, i nostri album sono in formato digitale e spesso in cloud, ma cosa ne sarà di tutti i vecchi scatti del passato? Google ha pensato a una soluzione, e ha creato Photoscan. Questa app usa l’Intelligenza Artificiale per correggere, ritagliare e migliorare la qualità delle vecchie foto per poterle salvare negli album digitali.

Link download Google Play

Link download Apple Store

 

7. This Rental does not exist

Creato sulla scia di This Person does not exist e degli altri tool composti con le reti GAN, This Rental does not exist genera annunci immobiliari di appartamenti che non esistono. A differenza delle persone finte, qui però possiamo sperimentare maggiormente la potenza dell’Intelligenza Artificiale, in quanto ad essere finte non sono solo le foto dell’appartamento, ma anche il titolo, il testo dell’annuncio, oltre al nome e la foto del proprietario. Per sviluppare This Rental does not exist , i creatori hanno allenato i loro algoritmi con oltre 40 milioni di annunci immobiliare provenienti da AirBnb.