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.