DAE Talking Generazione di un volto parlante ad alta fedeltà guidata dalla voce con un Diffusion Autoencoder

DAE Talking Generazione volto parlante alta fedeltà, guida voce Diffusion Autoencoder

Modelli di diffusione + Un sacco di dati = Generazione di facce parlanti praticamente perfetta

Oggi parleremo di un nuovo articolo e probabilmente del modello deepfake audio-driven di più alta qualità che ho trovato. Proveniente da Microsoft Research, DAE-talker è un modello a testa intera specifico per persona che si basa sul Diffusion Auto-Encoder (DAE). Sebbene il modello venga mostrato solo su un singolo dataset, i risultati sono molto impressionanti.

Video dimostrativo dalla pagina del progetto DAE-talker (https://daetalker.github.io/).

La chiave del successo di questo articolo è duplice. In primo luogo, viene eliminata la dipendenza da caratteristiche realizzate manualmente come landmark o coefficienti 3DMM. Nonostante il fatto che i 3DMM, in particolare, siano molto utili per i modelli specifici delle persone, sono comunque restrittivi e non sono espressivi come potrebbero essere. Gli autori riescono comunque a trarre vantaggio dalla separazione di una posa da altri attributi, utilizzando però la modellazione della posa. Il secondo motivo del successo di questo modello è l’uso dei modelli di diffusione. I modelli di diffusione sono la forza trainante di modelli come Stable Diffusion, che hanno portato l’IA generativa nel mainstream.

Il Diffusion Auto-Encoder

I modelli di diffusione sono ben noti per la loro capacità di produrre immagini di altissima qualità con un’eccellente diversità. Questi modelli utilizzano un vettore latente di rumore della stessa forma dell’immagine e lo denoisano attraverso più passaggi. Tuttavia, una delle limitazioni ben note dei modelli di diffusione è che i vettori latenti mancano di significato semantico. Nei GAN o nei VAE (i concorrenti usuali dei modelli di diffusione) è possibile eseguire modifiche nello spazio latente che portano a cambiamenti prevedibili nelle immagini di output. I modelli di diffusione, d’altra parte, non possiedono questa qualità. Gli auto-encoder di diffusione superano questo problema utilizzando invece due vettori latenti, un codice semantico e un vettore latente standard delle dimensioni dell’immagine.

Il diffusion auto-encoder. Immagine tratta dall'articolo originale (Preechakul et. al.)

DAE è un modello di autoencoding, il che significa che è composto da un encoder e un decoder ed è addestrato in modo auto-regressivo. L’encoder del DAE codifica un’immagine in una rappresentazione semantica di quell’immagine. Il decoder prende poi il vettore latente semantico e un’immagine di rumore e esegue il processo di diffusione per ricostruire l’immagine.

Il vantaggio è che ciò consente la generazione di immagini di qualità a livello di diffusione con controllo semantico

Nel caso di DAE-Talker, viene addestrato un modello DAE su circa 10 minuti di dati dell’attore target.

Controllo dello spazio latente

Lo spazio latente viene manipolato utilizzando il parlato, ciò consente al modello DAE di produrre il video finale (https://daetalker.github.io/)

Con il DAE addestrato che permette il controllo sulle immagini generate attraverso l’uso di vettori latenti semantici, diventa possibile generare video manipolando solo i vettori latenti. Questo è l’obiettivo del componente speech2latent di questo articolo. Dato l’audio in input, produce una sequenza di vettori latenti che vengono successivamente decodificati dal DAE.

Un punto importante da notare qui è che l’immagine di rumore casuale è fissa per ogni frame nel video generato. Ciò riduce il rumore casuale che creerebbe inconsistenze temporali nel video finale.

L'architettura del modello speech2latent. (https://daetalker.github.io/)

Il componente speech2latent è composto da diversi livelli. Il primo di questi è un estrattore di caratteristiche congelato dal modello Wav2Vec2. Wav2Vec2 è un modello basato su transformer che viene utilizzato per il riconoscimento del parlato. L’utilizzo dell’estrattore di caratteristiche permette l’estrazione di ricche caratteristiche latenti del parlato; ciò è fatto da diversi articoli che cercano di generare segnali dal parlato, ad esempio, FaceFormer o Imitator. Questo set di caratteristiche viene elaborato ulteriormente utilizzando blocchi di convoluzione e conformer (una combinazione di livelli CNN e transformer). Dopo questo, viene applicato uno strato di adattamento della posa (ne parleremo tra poco), prima di un ultimo insieme di livelli conformer e una proiezione lineare sullo spazio latente del DAE.

Adattatore di posa

Il problema dell’animazione guidata dalla voce è un problema uno-a-molti. Questo è particolarmente vero nel caso della posa della testa, dove la stessa registrazione audio può facilmente corrispondere a molte posizioni diverse. Per alleviare questo problema, gli autori propongono l’aggiunta di un componente specifico nella rete speech2latent che modella la posa. Un predittore di posa predice la posa dalla voce, mentre un proiettore di posa aggiunge la posa alle caratteristiche intermedie della rete. Aggiungendo una perdita di posa in questa fase, la posa viene modellata in modo migliore. Poiché la posa viene proiettata nelle caratteristiche, è possibile utilizzare posizioni predette o posizioni reali.

Discussione

Anche se questo non è il primo metodo nella generazione di facce parlanti che fa uso di modelli di diffusione, sembra aver trovato un modo molto efficace per farlo. I risultati sono, secondo me, della migliore qualità rispetto a qualsiasi altro modello esistente. Inoltre, la capacità di controllare o generare la posa rende il modello particolarmente flessibile.

Tuttavia, va detto che il modello non è perfetto. Questo metodo porta la specificità delle persone all’estremo. Il modello è addestrato su 12 minuti di dati provenienti da un singolo speaker, senza variazioni di sfondo, illuminazione o telecamera. Questo è un ordine di grandezza di dati superiore rispetto alla maggior parte degli altri metodi. Forse per questa ragione, gli esperimenti sono limitati a un solo dataset. Senza vedere esperimenti su persone diverse da Obama, è difficile verificare che il modello funzionerà per la maggior parte delle persone. Inoltre, questo non è un modello facile da addestrare. La sola componente DAE è stata addestrata per tre intere giornate su 8 V100 GPU, mentre speech2latent richiede ancora più tempo. Secondo i prezzi correnti di GCP, questo potrebbe costare oltre $1500 per l’addestramento! Anche l’inferenza richiederà molto tempo, in quanto sono necessari 100 passaggi di denoising per frame.

Conclusioni

In generale, questo è un metodo estremamente promettente che mostra i migliori risultati attualmente disponibili, se non ti importa delle enormi spese necessarie per l’addestramento. Se qualcuno riuscisse a sviluppare una versione generica delle persone di questo modello (e se potesse permetterselo), penso che potremmo avvicinarci alla risoluzione del problema della generazione di facce parlanti in modo completo.