Automatic Cued Speech / LfPC automatisée

La réalité augmentée au service des personnes sourdes



Livrable WP4 - L2 : Position des voyelles

Introduction

Objectifs

Dans le cadre du développement d'un système de génération automatique du codage, la troisième étape consiste à modéliser la trajectoire de la main. Cette modélisation repose sur la prédiction de sa position, de son angle et de sa taille par rapport au visage du locuteur, image par image, dans la vidéo. Ce livrable porte sur l'étude de la position des voyelles et leur implémentation dans le système SPPAS.

Approche globale

Dans un premier temps, des experts ont défini les positions des voyelles en fonction d'un visage théorique. Ces positions ont ensuite été exprimées en fonction des 68 points de repère faciaux extraits grâce au système de détection Face landmarks de SPPAS.

Aucune variabilité n'a été introduite dans l'estimation de ces coordonnées. Lorsqu’une position doit être atteinte, l’extrémité du doigt cible (index ou majeur, selon la forme de la main) est directement assignée aux coordonnées préétablies dans l'image correspondante. De même, la taille de la main est toujours proportionnelle à la hauteur du visage et reste constante. La trajectoire suivie entre ces positions est une ligne droite à vitesse constante. En revanche, différents modèles d’angle ont été implémentés (voir WP4 - L1).

Ce livrable analyse les coordonnées observées dans des données annotées et décrit les modèles proposés pas SPPAS.

Nomenclatures

Dans ce document, les coordonnées dans le plan 2D sont exprimées selon les axes des abcisses x et ordonnées y, comme cela est conventionnellement fait dans une image :

                      |---------------------> x
                      |
                      |
                      |
                      \/
                      y
       

Le visage du locuteur est représenté par un ensemble de 68 points dont les coordonnées sont obtenues automatiquement avec SPPAS en utilisant successivement les annotations "Face detection", "Face Identity" et "Face landmarks", comme illustré ci-dessous :

Illustration de la détection du visage ("Face detection") et des points de repère faciaux ("Face landmarks").

Dans la suite de ce document, nous utilisons la nomenclature suivante pour désigner les différentes positions des voyelles :

Il est à noter que la position neutre, utilisée lorsque les codeurs ne parlent pas, ne fait pas partie de cette étude.

Image de référence

Une image de référence d'un visage "neutre" a été créée afin d'y reporter les coordonnées observées, de les rendre comparables et de les analyser. Il s'agit d'une image de 1000x1000 pixels, sur laquelle sont placés les 68 points de repère du "Face landmarks". Ces coordonnées permettent de situer précisément les points de repère du visage, comme illustré ci-dessous :

Coordonnées (x,y) des 68 points de repère faciaux utilisés dans SPPAS.
Index x y
00165
12300
215435
340570
490695
5170805
6260905
7375980
85001000
9625980
10760905
11830805
12910695
13960570
14985435
15998300
161000165
179970
1817015
192500
2033020
2141055
2259055
2368020
247500
2582015
2691070
27500150
28500240
29500330
30500420
31390480
32445500
33500510
34555500
35620480
36200160
37255132
38315132
39370170
40255185
41315185
42630170
43685132
44745132
45800160
46745185
47685185
48302633
49375610
50445600
51500605
52555600
53625610
54698633
55625705
56555745
57500750
58445745
59375705
60328635
61445645
62500650
63555645
64672635
65555677
66500682
67445677
Représentation imagée des 68 points de repères faciaux utilisés dans SPPAS.

Données utilisées pour l'étude

Pour plus d’informations sur les annotations effectuées, voir le livrable WP1 - L4 de ce projet. En résumé, les transitions de position des quatre sessions impliquant cinq locutrices-codeuses ont été annotées manuellement. De plus, pour chaque vidéo du corpus, nous avons automatiquement extrait :

  1. les 68 points de référence du visage,
  2. les 21 points de référence de la main (voir WP4 - L1).

Etat de l'art

Dans la thèse de V. Attina (2005), le recueil du corpus a été effectué en collant des pastilles sur la main codeuse et sur le visage afin de servir de repères pour l'analyse des positions des voyelles. Nous reportons ci-après la figure représentant la capture et la figure obtenue pour l'analyse. Il est dit dans cette thèse : "Nous pouvons voir sur la Figure 55 les ellipses de dispersion des positions cibles pour les deux types de transition [i#y] et [i#a]. La position « côté » du [a], qui n’a pas de support fixe sur le visage, est beaucoup plus dispersée que la position « cou » du [y]."

Attina (2005), Figure 19, page 107 Attina (2005), Figure 55, page 176
Figures 19 page 107, et figure 55 page 176 de la thèse Attina (2005)

N. Aboutabit (2008) a étendu ce travail d'analyse des positions des voyelles dans le but de créer un système de classification automatique. Il a obtenu les positions illustrées par la figure que nous reportons ci-après (à noter : les positions correspondent à un codage de la main gauche), sans en effectuer d'analyse.

Aboutabit (2008), Figure 6.2, page 124

Différents modèles des positions des voyelles

Modèle 1 : positions théoriques

Description

Les positions de ce modèle ont été établies en s'appuyant sur l'illustration des clés du code de l'ALPC . Les positions des voyelles de cette illustration ont ensuite été reportées sur l'image du visage de référence. Nous avons ainsi obtenu les coordonnées des positions qui ont ensuite été exprimées relativement aux 68 points de repères faciaux. De cette manière, ces positions peuvent être justement estimées sur des visages de forme et de taille différentes de celle de référence.

Jusqu'à la version 4.24 de SPPAS, ces coordonnées correspondaient à celles du système prototype (c.f. article publié à la conférence JEP'24). Ces valeurs ont ensuite été vérifiées et ajustées, notamment pour la bouche, car les experts avaient noté des erreurs de placement dans les vidéos générées.

Positions des voyelles

Position 'm'

Cette position se situe près du coin de la bouche. Pour l'axe des abscisses (x), la distance entre le point cible et la bouche doit tenir compte de l'orientation gauche/droite du visage. Cela est fait en utilisant un point du bord du visage (x4). Il faut aussi tenir compte de l'ouverture (largeur) de la bouche, ce qui est fait en utilisant le point le plus à droite (x48). Pour les ordonnées, il faut simplement tenir compte de la position de la bouche dans le visage et de son ouverture (en hauteur), ce qui peut être fait avec un seul point (y60).

Position 'b'

Cette position est située sur la pommette. L'axe des abscisses (x) est calculé à partir d'un point du bord du visage (x4) et du coin de l'oeil (x36), pour garantir un positionnement stable en cas d'orientation gauche/droite du visage. L'axe des ordonnées (y) est basé sur les bords du visage pour éviter une trop grande variation verticale.

Position 'c'

Cette position correspond au menton. L'axe des abscisses (x) est directement donné par le centre du menton. L'axe des ordonnées (y) est ajusté en fonction de la distance entre le menton et la bouche, ce qui permet d'avoir une position cohérente indépendamment de la taille de la mâchoire.

Position 's'

Cette position est située sur le côté du visage. L'axe des abscisses (x) est déterminé à partir du bord du visage, avec une correction basée sur sa largeur. L'axe des ordonnées (y) prend en compte la hauteur du visage entre le point de référence de la mâchoire et un point légèrement plus bas, pour obtenir une position stable lors d'une inclinaison du visage.

Position 't'

Cette position correspond à la gorge, à la pomme d'Adam. L'axe des abscisses (x) est directement donné par le centre du menton. L'axe des ordonnées (y) est calculé à partir de la distance entre le menton et la bouche, de manière à garder une cohérence avec la morphologie du visage, et/ou une inclinaison du visage vers le bas.

Représentation imagée des 5 positions des voyelles utilisées dans le modèle 1 de SPPAS

Synthèse du modèle 1

Ce premier modèle de positionnement des voyelles dans le cadre de la Langue française Parlée Complétée (LfPC) repose sur une approche théorique, s'inspirant directement de l'illustration des clés du code fournie par l'ALPC. L'objectif principal est de proposer un cadre de référence stable et adaptable, permettant de positionner les voyelles de manière cohérente sur différents visages, indépendamment de leur forme ou de leur taille.

L'utilisation des 68 points de repère faciaux fournis par SPPAS est cruciale pour atteindre cet objectif. Ces points permettent de définir une géométrie faciale précise, servant de base au calcul des coordonnées des voyelles. En exprimant les positions des voyelles relativement à ces points de repère, nous nous assurons que le modèle s'adapte dynamiquement aux variations individuelles des visages.

Les formules de calcul des positions des voyelles, bien que basées sur des observations théoriques, ont été conçues pour être robustes et intuitives. Elles prennent en compte des éléments clés de la morphologie faciale, tels que la position et la largeur de la bouche, la distance entre les yeux et le menton, ou encore la hauteur du visage. Cette approche permet de minimiser les variations dues aux différences de morphologie et d'assurer une certaine stabilité dans le positionnement des voyelles. Cependant, il est important de noter que ce modèle théorique présente certaines limitations. Les positions des voyelles sont basées sur une interprétation visuelle de l'illustration de l'ALPC, qui peut être subjective. Dans les versions antérieures de SPPAS, ce modèle a servi de base au système prototype, mais des ajustements ont été nécessaires suite aux retours d'experts. Ces ajustements, notamment pour la position de la bouche, soulignent l'importance de confronter le modèle théorique à des données empiriques et de l'affiner en conséquence.

Modèle 2 : faible variation

Après visionnage des vidéos générées par le premier modèle, les experts du projet ont proposé les ajustements suivants des positions, par rapport au modèle 1 :

Les ajustements apportés par les experts au modèle 1 se concentrent sur les positions 'b' (pommette) et 's' (côté du visage), car ces positions étaient les plus problématiques dans le modèle initial. L'ajustement de l'axe des abscisses (xb) réduit la distance entre le point de la pommette et le bord du visage. Les experts ont également jugé que la position verticale de ces voyelles étaient trop haute. En résumé, le modèle 2 représente une version affinée du modèle 1, intégrant les retours d'expérience des experts pour améliorer la précision du positionnement des voyelles.

Nous avons également défini une "zone acceptable" plus ou moins étendue selon la position, bien qu'elle ne soit pas utilisée par SPPAS.

Représentation imagée des 5 positions des voyelles utilisées dans le modèle 2 de SPPAS

Modèle 3 : coordonnées mesurées dans un échantillon

Comme pour le modèle 3 de l'angle de la main, les coordonnées de ce modèle ont été établies en sélectionnant des images extraites des vidéos du corpus CLeLfPC. Trois images par position, représentant différentes codeuses et différentes formes de la main, ont été sélectionnées par les experts du projet.

Comme pour le modèle 1, les coordonnées ont été manuellement transposées en calcul relatif par rapport aux points du visage de référence. La valeur retenue est la moyenne (arrondie). Les valeurs relevées puis transposées sont indiquées dans le tableau ci-après.

Coordonnées observées sur une sélection de 25 images et transposées
Forme Position x y
1 b 64 375
2 b 141 425
6 b 60 370
7 b 145 339
8 b -15 397
3 c 349 836
4 c 461 967
5 c 393 944
6 c 499 927
7 c 488 904
1 m 309 710
4 m 215 742
5 m 233 653
6 m 213 656
8 m 304 713
2 s -337 753
3 s -622 726
4 s -453 667
6 s -331 774
7 s -415 370
1 t 543 1429
3 t 339 1305
4 t 505 1382
5 t 448 1272
6 t 434 1573

Ces valeurs permettent d'obtenir les coordonnées (x,y) moyennes, les écart-types ci-dessous :

  • b : moyenne (79, 381), écart-type (66, 32)
  • c : moyenne (438, 916), écart-type (65, 50)
  • m : moyenne (255, 695), écart-type (48, 39)
  • s : moyenne (-432, 658), écart-type (118, 166)
  • t : moyenne (454, 1392), écart-type (78, 119)
Représentation imagée des 5 positions des voyelles utilisées dans le modèle 3 de SPPAS

Le modèle 3 s'appuie ainsi sur des mesures directes effectuées sur un échantillon d'images sélectionnées du corpus CLeLfPC, offrant une perspective empirique par rapport aux modèles théoriques précédents. Les coordonnées moyennes obtenues à partir de cet échantillon révèlent des différences notables par rapport au modèle 2, affiné par les experts.

La position 'b' (pommette) est globalement plus éloignée du centre du visage en abcisses tandis que la hauteur est abaissée par rapport à celle du modèle 2. La position 'c' (menton) est un peu plus haute et plus excentrée par rapport au modèle 2. La position 'm' (bouche) est légèrement plus basse que dans le modèle 2. La position 's' (côté du visage) quant à elle est significativement plus éloignée du visage, et un peu plus haute. Enfin, la position 't' (gorge) s'avère plus basse que dans le modèle 2, se rapprochant de la pomme d'Adam.

En résumé, le modèle 3, basé sur des observations empiriques, tend à placer les voyelles plus basses, à l'exception de la position 's', qui est plus haute. Ces différences soulignent l'écart potentiel entre les modèles théoriques ou ajustés par des experts et les données issues d'observations directes, quand bien même celles-ci ont été sélectionnées par les experts.

Résultats des modèles 1 à 3

Exemples de vidéos codés

Modèle 1
Video preview
Modèle 2
Video preview
Modèle 3
Video preview

Analyse des positions observées dans le corpus

Nous avons collecté et analysé un grand nombre de données pour déterminer comment les codeurs indiquent les voyelles. Nous avons extrait 3769 valeurs et, après avoir filtré les données aberrantes, nous avons conservé 3752 valeurs pour notre analyse.

Statistiques sur l'ensemble des données

Position Nombre Moyenne Écart-type
b 230 (144, 397) (70, 92)
c 529 (425, 888) (112, 76)
m 676 (260, 682) (79, 91)
s 1750 (-193, 635) (241, 233)
t 584 (435, 1419) (143, 223)
Statistiques par position pour toutes les données
Positions cibles
Positions cibles (3752 coordonnées)

Les figures suivantes illustrent chacune des positions, avec une ellipse représentant l'écart-type et une autre ellipse correspondant à deux fois l'écart-type, cette dernière couvrant généralement environ 95 % des valeurs.

Positions cibles position 'b'
Positions cible 'b' (pommette)
Positions cibles position 'c'
Positions cible 'c' (menton)
Positions cibles position 'm'
Positions cible 'm' (bouche)
Positions cibles position 's'
Positions cible 's' (côté)
Positions cibles position 't'
Positions cible 't' (gorge)
Representation des coordonnées par position

En comparant ces statistiques avec les modèles précédents, on observe que les positions 'c', 'm' et 't' convergent vers des valeurs similaires. En revanche, les positions 'b' et 's' présentent des variations plus importantes, soulignant la complexité de leur modélisation. La grande variation de la position 's' indique une forte disparité dans les productions.

Statistiques par condition d'enregistrement

La session "syllabes"
Position Nombre Moyenne Écart-type
b 34 (133, 391) (58, 45)
c 24 (467, 923) (51, 37)
m 38 (263, 676) (47, 54)
s 35 (-472, 656) (218, 125)
t 25 (478, 1381) (61, 138)
Statistiques par position pour la session "syllabes"
Positions cibles des syllabes
Positions cibles de la session des syllabes (156 coordonnées)
La session "mots et expressions"
Position Nombre Moyenne Écart-type
b 45 (127, 385) (62, 53)
c 96 (409, 890) (81, 87)
m 145 (253, 676) (57, 54)
s 279 (-253, 722) (253, 248)
t 135 (441, 1421) (95, 250)
Statistiques par position pour la session "mots"
Positions cibles des mots
Positions cibles de la session des mots et expressions (695 coordonnées)
La session "phrases"
Position Nombre Moyenne Écart-type
b 76 (147, 392) (72, 54)
c 164 (423, 878) (95, 53)
m 223 (272, 684) (85, 102)
s 704 (-200, 595) (214, 213)
t 231 (455, 1360) (142, 204)
Statistiques par position pour la session "phrases"
Positions cibles des phrases
Positions cibles de la session des phrases (1395 coordonnées)
La session "texte"
Position Nombre Moyenne Écart-type
b 112 (151, 422) (77, 118)
c 239 (432, 890) (132, 85)
m 267 (258, 683) (83, 100)
s 698 (-167, 649) (241, 240)
t 199 (405, 1478) (170, 226)
Statistiques par position pour la session "texte"
Positions cibles du texte
Positions cibles de la session du texte (1506 coordonnées)

Les conditions "texte" et "phrases" montrent des écart-types plus élevés, tandis que "mots" et "syllabes" sont plus bas. Cela indique une plus grande dispersion des données, suggérant une moins grande précision ou une plus grande variabilité dans le positionnement des voyelles lors de tâches plus complexes. Cela suggère que la condition influence la précision de la position, probablement car le débit plus rapide affecte la précision du mouvement. Le débit et l'intention pédagogique semblent donc influencer la précision de la position des voyelles.

Nous observons en effet que :

Les tâches ayant pour consigne une lecture la plus naturelle possible, impliquent un débit de parole plus rapide, ce qui peut entraîner une moins grande précision dans les mouvements de la main. L'intention pédagogique, présente dans les conditions "mots" et "syllabes", pourrait également contribuer à une plus grande précision. Lorsque les codeurs sont invités à montrer le code comme s'ils l'enseignaient, ils peuvent être plus attentifs à la précision de leurs mouvements.

Dans tous les cas, la position sur le côté est très variable, ce qui indique qu'elle est la plus difficile à stabiliser, comme V. Attina (2005) y faisait déjà référence. On observe en outre que la position à la gorge est elle-aussi très variable sur les ordonnées, ce qui indique que la hauteur de la main est difficile à stabiliser.

L'analyse des données par condition révèle des variations intéressantes dans le positionnement des voyelles, suggérant que la nature de la tâche influence la précision et la variabilité des mouvements.

Statistiques par locuteur

La locutrice-codeuse 'CH'
Position Nombre Moyenne Écart-type
b 35 (84, 424) (48, 195)
c 105 (308, 916) (97, 76)
m 106 (200, 684) (45, 123)
s 365 (-230, 775) (190, 209)
t 90 (409, 1419) (152, 363)
Statistiques par position pour la locutrice "CH"
Positions cibles de CH
Positions cibles de CH (689 coordonnées)
La locutrice-codeuse 'VT'
Position Nombre Moyenne Écart-type
b 67 (180, 365) (51, 33)
c 137 (487, 892) (114, 83)
m 129 (260, 709) (61, 70)
s 375 (26, 601) (163, 198)
t 105 (466, 1341) (64, 160)
Statistiques par position pour la locutrice "VT"
Positions cibles de VT
Positions cibles de VT (806 coordonnées)
La locutrice-codeuse 'AM'
Position Nombre Moyenne Écart-type
b 32 (34, 379) (46, 69)
c 91 (363, 905) (52, 44)
m 129 (186, 698) (42, 70)
s 221 (-294, 791) (197, 218)
t 113 (385, 1582) (60, 126)
Statistiques par position pour la locutrice "AM"
Positions cibles de AM
Positions cibles de AM (582 coordonnées)
La locutrice-codeuse 'ML'
Position Nombre Moyenne Écart-type
b 31 (225, 371) (53, 38)
c 92 (499, 845) (64, 42)
m 152 (347, 654) (47, 34)
s 448 (-253, 470) (213, 149)
t 148 (537, 1242) (83, 105)
Statistiques par position pour la locutrice "ML"
Positions cibles de ML
Positions cibles de ML (871 coordonnées)
La locutrice-codeuse 'LM'
Position Nombre Moyenne Écart-type
b 46 (168, 454) (32, 38)
c 104 (452, 870) (68, 47)
m 140 (286, 669) (53, 126)
s 379 (-210, 629) (292, 230)
t 129 (354, 1538) (200, 131)
Statistiques par position pour la locutrice "LM"
Positions cibles de LM
Positions cibles de LM (695 coordonnées)
Interprétation des résultats

L'analyse des données par locuteur révèle une variabilité significative dans le positionnement des voyelles, confirmant l'hypothèse de différences inter-individuelles. Bien que la structure fondamentale du code LfPC reste stable, la manière dont chaque codeur l'applique présente des variations notables.

Les écarts-types, en particulier pour les positions 's' (côté du visage) et 't' (gorge), montrent une dispersion importante des données, indiquant une hétérogénéité dans la manière dont chacun des codeurs codent ces deux positions. Les moyennes varient également d'un codeur à l'autre, bien que dans une moindre mesure, ce qui suggère que chaque codeur a sa propre interprétation du code LfPC.

L'analyse des données par locuteur met en évidence la stabilité du code LfPC, qui se traduit par une cohérence globale dans le positionnement des voyelles. Cependant, elle révèle également des variations inter-individuelles significatives, en particulier pour les positions 's' et 't'.

Nouveau modèle possible

Sur la base des analyses faites précédemment, il est possible de définir les valeurs à utiliser pour le modèle 4.

  • xb = x4 + | (x36 - x0) / 3.7 |
  • yb = y1 + | (y2 - y1) / 1.4 |
  • xc = x8 - | (x8 - x6) / 3.2 |
  • yc = y8 - | (y8 - y57) / 2.2 |
  • xm = x48 - | (x48 - x4) / 5 |
  • ym = y60 + | (y60 - y4) * 0.8 |
  • xs = x0 - | (x8 - x0) / 2.6 |
  • ys = y4 - | (y4 - y3) / 2 |
  • xt = x8 - | (x8 - x6) / 3.6 |
  • yt = y8 + | (y8 - y33) * 0.85 |
Représentation imagée des 5 positions des voyelles utilisées dans le modèle 4 de SPPAS

En résumé, le modèle 4, basé sur une analyse statistique exhaustive, confirme certaines tendances observées dans les modèles précédents, tout en révélant des variations significatives, notamment pour la position 's'.

Exemple de vidéo codée avec ce modèle

Video preview

Accès et utilisation du système

Les modèles proposés sont distribués sous les termes de la licence GNU GPL v3. Ils font partie du logiciel SPPAS. Les modèles 1 et 2 sont disponibles depuis la version 4.22, tandis que les modèles 3 et 4 ont été intégrés dans la version 4.25 : https://sppas.org/.

Pour obtenir le codage de ce système sur la démo proposée dans SPPAS, il est possible d'utiliser l'interface graphique de SPPAS, ou la commande en ligne suivante :

             > python sppas/bin/cuedspeech.py -I demo/demo.mp4 -l fra --createvideo=true --handsset=brigitte
       

Il faut ajouter l'option "facepos" pour choisir le numéro du modèle comme décrit dans ce document. Cette commande permet de créer trois fichiers : deux fichiers de description au format XML qui contiennent l'ensemble des informations prédites par le système, ainsi que la vidéo codée automatiquement.

Contributeurs

Développement logiciel : Brigitte Bigi (LPL)

Analyse des données : Brigitte Bigi (LPL)

Expertise du codage : Datha

À propos