M. Malcangi, R. de Tintis Sincronizzazione Labiale e Modellazione Facciale SINCRONIZZAZIONE LABIALE E MODELLAZIONE FACCIALE IN TEMPO REALE PER L’ ANIMAZIONE DI PERSONAGGI VIRTUALI MARIO MALCANGI1, RAFFAELE DE TINTIS2 1 Dipartimento di Scienze dell'Informazione,Università degli Studi di Milano Via Comelico 39, 20135 Milano, Italia [email protected] 2 DSPengineering, Milano, Italia [email protected] Nel seguente contributo viene presentato un approccio innovativo alla animazione facciale di personaggi virtuali. Tutte le informazioni necessarie al controllo automatico del volto di modelli 3-D virtuali vengono ottenute in tempo reale a partire dall’analisi di flussi di parlato continuo. Utilizzando l’analisi numerica dei segnali congiuntamente con metodologie del soft computing (logica fuzzy e reti neurali), è stato possibile realizzare un sistema flessibile e a basso costo per l’estrazione delle informazioni inerenti le posizioni labiali e di alcune delle caratteristiche utili per la modellazione del volto. Il principale vantaggio nell’impiego di tecnologie basate sull’analisi di flussi di parlato continuo è rappresentato dalla non invasività, dal momento che il segnale può essere acquisito mediante un semplice microfono e nessun dispositivo deve essere applicato sul corpo dello speaker limitandone le possibilità di movimento (nessuna presenza di sensori magnetici o marker rilevabili da telecamere). In una prima fase dello sviluppo è stato realizzato il sistema (LipSync) dedicato alla sincronizzazione labiale, in seguito, l’automazione è stata estesa ad alcune delle espressioni facciali di base. INTRODUZIONE Un sistema per la sincronizzazione labiale basato sull’analisi del parlato, richiede l’impiego di diverse tecniche di analisi e d’identificazione. L’analisi continua di Fourier (STFT) è necessaria ma non sufficiente per pervenire ad un livello di modellazione abbastanza accurato. E’ dunque necessaria l’estrazione di altre caratteristiche specificamente distintive della voce come il pitch, lo zero-crossing rate e l’inviluppo d’ampiezza. Tutto l’insieme delle carateristiche vocali estratte necessita di un meccanismo di elaborazione a logica sfumata per ottenere dati di sincronizzazione labiali che consentano di conferire naturalezza al personaggio virtuale durante la fonazione. Il core del sistema di sincronizzazione labiale deve necessariamente essere basato sul riconoscimento fonemico. L’approccio fonemico è fondamentale per operare direttamente sulla base del segnale vocale, senza alcuna dipendenza semantica. Le reti neurali si sono dimostrate molto efficienti nella classificazione fonemica. La soluzione neurale non è sufficente da sola per la realizzazione del sistema di sincronizzazione labiale. I dati di ingresso necessari alla rete neurale derivano da un processo di “segmentazione intelligente” del segnale vocale. La segmentazione del segnale vocale è necessaria in quanto intrinseca del meccanismo di elaborazione della rete neurale, ma non può essere triviale, in quanto è necessario, ad esempio, 1 tenere separate le fasi di parlato da quelle di assenza di parlato. Essendo l’assenza di parlato non necessariamente silenzio, è evidente che, per evitare movimenti impropri delle labbra, ogni segmento di segnale, prima di essere trasformato in dati di ingresso per la rete neurale, deve essere preventivamente classificato come parlato o assenza di parlato. La disponibilità della trascrizione alfabetica del parlato rende il meccanismo di sincronizzazione labiale più preciso. La trascrizione fonemica, confrontata con la classificazione fornita dalla rete neurale, consente la realizzazione di un meccanismo automatico di correzzione degli errori di sincronizzazione. 1 DESCRIZIONE GENERALE Il segnale vocale viene acquisito mediante microfono, convertito in segnale digitale ed inviato al computer sul quale vengono eseguiti gli algoritmi di analisi e di riconoscimento. L’analisi del segnale vocale è di natura stazionaria. Il parlato deve essere segmentato in finestre della durata di pochi millisecondi, utilizzando l’approccio overlap-add, in modo da non avere perdita di informazioni tra frames adiacenti. Una stima e successiva modellazione del rumore di fondo si rende necessaria per facilitare il compito del processore del segnale vocale e migliorarne le prestazioni. M. Malcangi, R. de Tintis Sincronizzazione Labiale e Modellazione Facciale In fase di analisi la trasformata di Fourier (STFT) fornisce la stima delle caratteristiche spettrali, mentre, la predizione lineare (LPC) fornisce la modellazione del sistema di generazione vocale ed una stima del pitch. Per migliorare l’identificazione dei frames con assenza di parlato all’interno di parole, è stato sviluppato un identificatore dei punti di inizio/fine (EPD - end-point detector) delle parole basato su logica fuzzy. Il processore fuzzy valuta dinamicamente le caratteristiche del segnale vocale e le confronta con il modello del rumore di fondo. Le regole fuzzy possono anche essere definite facendo uso dell’esperienza e delle informazioni che si hanno a priori sulle caratteristiche del segnale vocale nel parlato continuo. E’ stato implementato anche un classificatore basato su rete neurale con il compito di catalogare, dopo le operazioni di finestratura ed analisi, i frames di parlato posti al suo layer di ingresso. L’addestramento della rete neurale è stato realizzato utilizzando un vasto database contenente fonemi organizzati in classi. Dopo l’addestramento, il sistema è in grado di classificare senza limiti di semantica (vocabulary independency) e indipendentemente dal parlatore (speaker independency). Speech Signal EPD Analysis Softimage (fraw) Neural Net Classification Maya (mov) Live Virtual Sets & Automation (MIDI) Fig.1: Il framework di automazione di LipSync. La rete neurale utilizzata (BPN) è di natura stazionaria. Nella fase di transizione tra fonemi adiacenti (coarticolazione), genera una classificazione indefinita. Queste situazioni di non riconoscimento, rappresentano importanti informazioni trasmesse al modello virtuale durante l’animazione [10] e possono essere utilizzate come dati per il modello d’interpolazione tra posizioni labiali consecutive. 2 RILEVAMENTO DEGLI END-POINT All’ingresso del classificatore fonemico devono essere posti i dati provenienti dall’analisi di frames relativi alla presenza di emissione effettiva di parlato. Questo compito, tuttavia, non può essere affrontato efficacemente con le tecniche classiche di separazione 2 voce/silenzio (Voice Activity Detectors - VAD), utilizzate nelle applicazioni di comunicazione telefonica cellulare. Un rilevatore di inizio/fine dell’attività vocale, deve essere in grado di identificare frames con assenza di produzione vocale anche durante il parlato (ad es. all’interno di una parola prima di un fonema plosivo, oppure nella fase di raddoppio della consonante). A questo scopo, è necessario disporre di un modello del rumore di fondo che consenta di disporre della necessaria parametrizzazione di segnale per l’identificazione dei parametri dei frames in assenza di produzione vocale. Confrontando i parametri del segnale in ingresso con quelli appartenenti al modello del rumore, è possibile evitare risultati errati nel processo di classificazione. Nel sistema implementato, il modello per il rumore di fondo viene definito attraverso i seguenti parametri: • • • QN = Energia media del rumore ZN = Zero-crossing rate medio del rumore PN = Energia spettrale media del rumore nel range 100-4000 Hz (banda vocale) Per una corretta rappresentazione, i parametri di rumore vengono calcolati in fase di inizializzazione oppure ad intervalli regolari, se il rumore di fondo non può considerarsi stazionario. I parametri di segnale sono invece calcolati in fase di esecuzione e definiscono vettori con i quali si modella l’informazione vocale: • • • • • • • QS(t) = Energia del segnale (RMS) ZS (t) = Zero-crossing rate PS (t) = Energia spettrale nella banda 100-4000 Hz (banda vocale) S(t) = Intervallo di codifiche “assenza di parlato” consecutive al tempo attuale PDim(t) = Intervallo dei frame di parlato validi DP(t) = Rapporto tra l’energia della parola e l’energia calcolata al frame attuale PDist(t) = Intervallo misurato tra frame valido di parlato e l’ultima parola rilevata La valutazione dei punti di inizio/fine della parola viene aggiornata ad ogni frame di analisi, mediante regole fuzzy, attraverso i seguenti parametri: • • • • • • • Input[0] = QS (t) / QN Input[1] = ZS (t) / ZN Input[2] = PS (t) / PN Input[3] = S(t) Input[4] = PDim(t) Input[5] = DP(t) Input[6] = PDist(t) M. Malcangi, R. de Tintis In Fig.2 viene mostrato un esempio di definizione delle regole fuzzy, nell’editor grafico. Fig.2: L’editor delle regole fuzzy 3 DATI DI ANALISI DEL PARLATO I dati di analisi costituiscono l’input per le regole fuzzy. Calcolati ogni 20 msec, stimano informazioni sia nel dominio del tempo che in quello delle frequenze. Il primo passo è la rimozione dell’offeset del segnale dovuto alla componente continua (DC). Segue la normalizzazione effettuata da un algoritmo di controllo automatico del volume (AGC - Automatic Gain Control). Dopo la finestratura, viene applicata una operazione di pre-enfasi del segnale mediante filtraggio passa alto con lo scopo di rimuovere la componente continua ed eventuali frequenze molto basse. L’analisi LPC (algoritmo Levison-Durbin) e STFT vengono quindi applicate per il calcolo dei parametri di segnale. L’energia spettrale, viene accumulata all’interno delle seguenti bande: • • • Primo intervallo di frequenze: 100-800 Hz Secondo intervallo di frequenze: 800-2000 Hz Terzo intervallo di frequenze: 2000-4000 Hz. I dati di analisi, in ingresso alla rete neurale ad ogni frame, sono: • • • • • • • • 3 Zero-crossing rate Energia complessiva del segnale Primo intervallo di frequenze Secondo intervallo di frequenze Terzo intervallo di frequenze Pitch Primo coefficiente LPC Secondo coefficiente LPC Sincronizzazione Labiale e Modellazione Facciale L’utilizzo di vettori di analisi multidimensionali è necessario in quanto le distribuzioni dei singoli dati si presentano sovrapposte tra classi fonemiche differenti. 4 CLASSIFICATORE FONEMICO NEURALE Una rete neurale Back Propagation è stata utilizzata per la classificazione dei fonemi. Questa riceve in ingresso (input layer) le caratteristiche estratte dal segnale vocale continuo e le processa attraverso gli strati interni (hidden layers). Questi sono stati precedentemete addestrati per il riconoscimento dei singoli fonemi. Il livello di uscita (output layer) produce il grado di appartenenza di ogni fonema ad ognuna delle classi fonemiche definite in fase di addestramento. La classificazione con il maggior livello di appartenenza, viene valutata da una logica di conferma (in accordo, quando disponibile, con la trascrizione fonemica). Durante la fase di addestramento del sistema, è stata impiegata un’ampia base di dati fonemici ottenuta utilizzando parlatori differenti e appartenenti ad aree geografiche diverse. In questo modo, il riconoscimento è di tipo indipendente dal parlatore. Inoltre, la scelta fonemica consente di operare il riconoscimento senza limiti di semantica (vocabolario illimitato). Due diverse reti neurali Back Propagation sono state addestrate per il riconoscimento rispettivamente di vocali e di consonanti. L’impiego di due reti neurali piccole e specializzate invece di un’unica rete di grosse dimensioni, ha consentito di ottenere risultati migliori oltre a consentire una ridotta occupazione di memoria. La commutazione tra le due reti è controllata da una variabile logica derivata dalla stima della presenza/assenza del pitch nel segnale vocale (voiced/unvoiced) 5 IL SITEMA DI SINCRONIZZAZIONE LABIALE Il sistema di riconoscimento fonemico viene utilizzato per l’identificazione delle posizioni labiali corrispondenti al segnale vocale utilizzato. Ad ogni frame di analisi, il fonema identificato viene codificato e trasmesso al sistema di modellazione grafica 2-D/3-D (es. Softimage, Maya, 3D Studio MAX, etc.) attraverso il protocollo MIDI, oppure mediante il passaggio di file contenenti i dati di controllo. Il sistema può essere connesso a dispositivi esterni tramite l’interfaccia MIDI, rendendolo indipendente dall’ambiente di modellazione grafica. In questo modo i dati di sincronismo labiale possono essere anche trasmessi contemporaneamente a più sistemi e piattaforme di tipo diverso. Si possono, inoltre, utilizzare le capacità di visualizzazione dei dati MIDI di sequencers ed editors per la visualizzazione e l’editing dei dati di sincronismo. E’ possibile aggiungere M. Malcangi, R. de Tintis automazioni ed effetti audio/video pilotati in sincrono dal riconoscimento di eventi all’interno del flusso di parlato. Questa caratteristica si può rivelare particolarmente utile in applicazioni multimediali con integrazione di sistemi audio/video dotati di interfaccia MIDI. Sincronizzazione Labiale e Modellazione Facciale Se il modello virtuale è costruito in modo adeguato, in modo cioè da poter ricevere ed impiegare queste informazioni, alcune delle espressioni facciali possono essere automatizzate. Un corretto impiego dell’energia per modulare il grado di apertura della bocca, produce anche movimenti più naturali nel complesso. La modulazione continua, determina differenze in ogni istanza dello stesso fonema, in accordo con quanto avviene in un parlato fluido e naturale. 7 Fig.3: Il pannello principale di LipSync 1.5 6 EVENTI CORRELATI CON LA POSIZIONE LABIALE I modelli fin qui proposti per l’animazione del parlato sono diversi, ognuno con vario grado di complessità e costo computazionale [8] [1]. EVENTI CORRELATI CON FATTORI EMOTIVI Alcuni degli stati emotivi possono essere stimati attraverso l’analisi del parlato e impiegati per la modellazione di alcune caratteristiche facciali. Uno stato di collera, ad esempio, è spesso caratterizzato da pitch medio elevato ma con ampie variazioni. Anche il volume si presenta alto nella media e con ampie fluttuazioni. Al contrario, uno stato di tristezza, è spesso caratterizzato da pitch e volume bassi con variazioni ridotte. In conseguenza di queste considerazioni, le grandezze correlate con aspetti emotivi calcolate dal sistema sono: • • • • Gli eventi riconosciuti da LipSync sono i seguenti: Ampiezza del segnale vocale (RMS) Frames con assenza di parlato Vocali Consonanti Le vocali vengono riconosciute in modo indipendente e corrispondono a posizioni labiali differenti: a, e, i, o, u. Le consonanti vengono raggruppate in 5 classi corrispondenti a posizioni labiali simili [(l, n, r), (b, m, p), (v, f), (d, t), (c, s, z, g)]. Qui, le differenze spettrali sono in gran parte prodotte da una diversa posizione della lingua all’interno della bocca, che tuttavia non modifica la posizione delle labbra. L’ampiezza viene rilevata in modo continuo e può essere impiegata per controllare il grado di apertura della bocca insieme ad altri attributi facciali. Ad esempio, in presenza di volume alto e voce gridata, è possibile utilizzare le regole seguenti: • • • 4 I muscoli facciali e del collo si tendono Le sopracciglia si aggrottano Le narici si dilatano • Volume medio del parlato (RMS medio) Frequenza ed intensità delle fluttuazioni nel volume Pitch medio Frequenza ed intensità delle fluttuazioni nel pitch Durata media delle pause Un corretta valutazione dell’energia media, ci consente di capire se il flusso di parlato è sussurrato oppure urlato e di trasmettere opportune variazioni nella modellazione facciale. L’energia non è una grandezza stazionaria. I frame non vocalizzati, corrispondenti a consonanti o a coarticolazione, possono avere durate fino a pochi millisecondi e presentare livelli di energia notevolmente inferiori a quelli riscontrabili nei frame corrispondenti a vocali. Nel parlato continuo, questo risulta in rapide variazioni del volume. Per il tracking degli inviluppi di ampiezza, viene utilizzata la funzione dell’energia media. Se N è la durata del frame di analisi, la funzione viene calcolata sotto forma di RMS: (1) RMS(t) = Σn | s(n) | n = 0,…,N Come visto, sia le emozioni che l’intonazione producono variazioni del pitch. In ogni caso, un calcolo rigoroso di questo parametro non è necessario e metodi meno costosi dal punto di vista computazionale possono essere adottati. M. Malcangi, R. de Tintis Lo zero-crossing rate medio e le sue fluttuazioni medie sono variabili significative che possono essere utilizzate. Lo zero-crossing rate è una stima del pitch molto approssimativa in segnali a larga banda. Nel segnale vocale tuttavia è sempre correlato con il valore medio del pitch. Analisi rigorose del range mostrano come il valore medio nella voce di uomo, in frame di analisi di 10 msec, sia 14 per i fonemi vocalizzati e 49 per quelli non vocalizzati [5]. Nel sistema implementato, si è deciso di tracciare lo zero-crossing rate solo per i frame di analisi corrispondenti a fonemi vocalizzati. Questi ultimi si considera corrispondano ai frame di analisi con zerocrossing rate minore di 15 e con valori di energia (RMS) non superiore alla metà dell’energia media (RMS medio). In questo modo, vengono eliminati gli errori dovuti alla sovrapposizione dei range nei valori di zerocrossing rate per classi di fonemi vocali e consonanti. Infine, un filtraggio passa basso viene applicato in modo da ottenere profili non bruschi negli inviluppi dell’energia. 8 l’ottenimento dei dati di controllo mediante tecnologie ottiche o magnetiche. Le operazione di calibrazione o di posizionamento di markers sul viso dello speaker sono ritenute troppo dispendiose di tempo nella maggior parte delle esigenze di produzione, sia in studio che nei live set virtuali. I processori ed i display attualmente impiegati nella telefonia mobile o nei computer palmari, sono lenti e non consentono applicazioni pesanti. Inoltre sono richiesti dati di controllo leggeri e facilmente trasmissibili. Per questi motivi, il progetto descritto, è stato basato su tecnologie di riconoscimento fonemico. Il sistema sviluppato, consente un riconoscimento indipendente dallo speaker e dalla lingua, non rendendo necessarie neanche le fasi di addestramento della rete neurale. Per le applicazioni che richiedono costo computazionale ridotto, i dati di analisi nello spazio di Fourier, insieme allo zero-crossing rate, possono ritenersi sufficienti. Il numero delle classi di fonemi riconosciuti, può essere ulteriormente ridotto. In questo modo le due reti neurali distinte, possono anche essere sostituite da una rete neurale unica alleggerendo sia il costo di calcolo che quello di trasmissione dei dati di controllo. SPECIFICHE DI TRASMISSIONE Il sistema sviluppato (LipSync) calcola e trasmette sempre i dati di sincronizzazione in tempo reale. Vengono utilizzati i primi 12 controlli continui del protocollo MIDI sul canale di trasmissione 1 per la sincronizzazione in tempo reale. Quando è possibile operare in tempo differito, i dati di sincronizzazione sono salvati su file in formato FRAW (Softimage, XSI) oppure MOV (Alias/Wavefront). Fig.4: LipSync durante il controllo di un modello su XSI sviluppato da Made in Pixel (Milano) 9 APPLICATIONI EMBEDDED L’impiego di agenti virtuali nella industria dell’intrattenimento, nella comunicazione Internet mobile o in nuove applicazioni come i lettori/visualizzatori di SMS, non consente 5 Sincronizzazione Labiale e Modellazione Facciale 10 DIREZIONI FUTURE Il sistema sviluppato, fa parte di un progetto più ampio dedicato allo sviluppo di tecnologie di facile impiego per la sostituzione di parte della attuale comunicazione elettronica basata su testo (e-mails, SMS, etc.), con tecnologie di comunicazione audio/visiva maggiormente interattive. Gli standard futuri per la prossima generazione di applicazioni Internet e di telefonia mobile, sono attualmente in fase di definizione ma l’impiego futuro di agenti virtuali sembra ampiamente confermato. Sempre più le nuove tecnologie richiederanno sistemi di facile impiego e protocolli di trasmissione dei dati di controllo leggeri. Attualmente, al contrario, i costi per l’animazione di personaggi virtuali è talmente alto che solo poche aziende operanti nel settore del cinema di animazione o nella pubblicità possono affrontarli. Il motivo dell’alto costo di questi sistemi va anche ricercato nella assenza di tecnologie in grado di rendere il processo di animazione dei personaggi virtuali completamente automatico. Mentre molti passi avanti sono stati compiuti nei sistemi di tracking dei movimenti del corpo, è ancora necessario migliorare le capacità dei sistemi di estrazione e modellazione di aspetti emotivi in grado di rendere automatico non solo il processo di sincronizzazione labiale ma anche quello di modellazione facciale. La possibilità di migliorare il riconoscimento delle caratteristiche prosodiche, ad esempio l’identificazione del registro di voce, così come di alcuni degli aspetti M. Malcangi, R. de Tintis Sincronizzazione Labiale e Modellazione Facciale emotivi (rabbia, tranquillità, etc.), aumenterebbero il grado di automatismo nei processi di modellazione, abbassando drasticamente i costi di produzione. La comunicazione visuale mobile e la TV digitale, saranno tra i maggiori e più interessanti settori di impiego di queste tecnologie. REFERENCES [1] M.Malcangi, R. de Tintis, “LipSync 1.0: A System for Real-Time Virtual Characters LipSynching and Facial Modeling”, XIII Colloquium on Musical Informatics proceedings, L'Aquila, Italy, 2000 [2] M.Malcangi, “An SDK for Biometric Applications”, Real-Time and Embedded Expo & Conference proceedings, Milan, Italy, 2001 [3] M.Malcangi, “A non-invasive Software Methoology for Lips and Facial Movements Capturing”, MTAC 2001 – Multimedia Technology and Application Conference proceedings, Unversity of California, Irvine, November 7th-9th 2001. [4] J.C. Junqua, B. Mak, B. Reaves, “A robust algorithm for word boundary detection in presence of noise”, IEEE Trans. Speech and Audio Processing, Vol. 2, No. 3, July 1994. [5] Y. Cao, S. Sridharan, M. Moody, “Voiced/Unvoiced/Silence Classification of Noisy Speech in Real Time Audio Signal Processing”, 5th Australian Regional Convention, April, 1995, Sydney, (AES Preprint N. 4045) [6] T. W. Parsons, “Voice and speech processing”, McGraw-Hill, 1986. [7] L.R. Rabiner, R.W. Schafer, “Digital Processing of Speech Signals”, Prentice Hall Inc., Englewood Cliffs, New Jersey, 1978. [8] F.I.Parke, K.Waters, "Computer Animation", A K Peters, Ltd., 1996. [9] M.Cohen and D.Massaro. “Synthesis of visible speech” in Behavioral Research Methods and Instrumentation, 22(2):260-263, 1990. [10] M.Cohen and D.Massaro. “Modeling coarticulation in synthetic visual speech” in N.M.Thalman and D.Thalman editors, Models and Techniques in Computer Animation, pp.141155. Springer-Verlag, Tokyo, 1993. 6 Facial [11] J.Cassell, et al. Editors, “Embodied Conversational Agents”, MIT Press, 2000 [12] M.Cohen and D.Massaro. “Development and experimentation with synthetic visual speech”, Behavioral Research Methods, Instrumentation and Computers, 26:260-265, 1994. [13] A.T.Dittman. “The body movement-speech rhythm relationship as a cue to speech encoding”. In “Nonverbal Communications”, Oxford University Press, Oxford, 1974 [14] W.S.Condon and W.D.Osgton.”Speech and body motion synchrony of the speaker-hearer” in “The perception of Language”. Horton and Jenkins, 1971.