Stage : gérer l'exécution du corps virtuel Unity d’un agent conversationnel

Type de contrat : Stage

Niveau de diplôme exigé : Bac + 3 ou équivalent

Fonction : Stagiaire de la recherche

Contexte et atouts du poste

Ce stage s’inscrit au sein du projet “Son-of-Sara” (suite du projet “Sara” de l’Articulab, membre du groupe-projet ALMAnaCH de l'Inria Paris - plus de details ici  : <https://articulab.hcii.cs.cmu.edu/projects/sara/>), dont l’objectif est le développement d’un nouvel agent conversationnel incarné, basé sur l’utilisation de Large Language Models (embodied chatbot). Il comprend des modules de Traitement Automatique du Langage (TAL) pour la compréhension et la génération de langage, et un module agent virtuel Unity qui ajoute au langage les comportements non verbaux du visage et du corps, conduisant à un agent conversationnel incarne capable d’interagir, de manière naturelle, avec un utilisateur humain. Dans le cadre de notre projet, cela signifie qu’il va utiliser des modèles de machine learning pour traiter, analyser et générer, en temps réel, des informations multimodales (texte, audio et comportements corporels vidéos), qui sont ensuite réalisés par les animations de son corps virtuel. En effet, le système disposera d’un microphone et d’une caméra qui permettront de percevoir l’utilisateur (voix, gestes, expressions faciales, etc), le traitement et l’analyse de ces données lui permettront d’extraire des informations précises, puis de générer une réponse vocalement, verbalement, et visuellement adaptée via son agent (voix, gestes, expressions faciales, etc).

Mission confiée

Dans le cadre de ce projet, le stagiaire aidera à faire le lien entre les modules TAL (principalement codé en Python), dont le rôle est d'utiliser des modèles d'apprentissage automatique pour générer la voix, les gestes, les expressions faciales, etc. et les modules du corps virtuel Unity de l'agent (développé en C#/Unity avec Character Controller 4) dont le rôle est d’exécuter, en temps réel, les comportements correspondants aux données des modules TAL.

Pour ce faire, les modules TAL envoient des messages de données structurés (JSON) au module du corps virtuel Unity, par l'intermédiaire du message broker. Les messages contiennent différentes informations : la modalité (texte, audio, comportements non-verbaux), les données (audio brut, geste, expression faciale, direction du regard, etc.) et le timestamp auquel l'exécution est désirée.

 

Les modules TAL et la création du corps virtuel Unity et de ses animations sont les missions d’autres membres de l’équipe. Le rôle du stagiaire est de s'assurer que le module du corps virtuel Unity reçoive les messages des modules TAL, en extrait les informations et exécute les comportements correspondants, au timestamp cible, tout en assurant la synchronisation entre les différentes modalités (ce qui signifie, par exemple, que la voix et les gestes ayant le même timestamp cible doivent être exécutés exactement au même moment et sans délai).

Principales activités

  • Développer des scripts C#/Unity pour la réception et l'envoi de messages par l'intermédiaire d'un message broker.
  • (Potentiellement) Configurer le Message Broker pour pouvoir échanger des messages en réseaux entre plusieurs ordinateurs.
  • Développer des scripts C#/Unity pour l'extraction et l'exécution des comportements du corps virtuel en temps réel (voix, geste, expression faciale, etc.).
  • Développer des scripts C#/Unity qui assurent la synchronisation des différentes modalités.

Compétences

Compétences nécessaires :

  • Unity
  • C#
  • Python
  • Langue : Les personnes parlant couramment l'anglais avec un niveau de français d'au moins B1, ou les personnes parlant couramment le français avec un niveau d'anglais d'au moins B1 sont invitées à poser leur candidature.

 

Compétences appréciées :

  • Compétences en programmation réseaux (UDP/TCP, HTTP REST, Websockets, ZeroMQ, RabbitMQ or ActiveMQ)
  • Compréhension des concepts de base de l’animation 3D : (rendering, animation, rigging, polygons/vertices/edges, et shaders).

 

(Cette liste de compétences est fournie à titre indicatif. Nous vous encourageons à postuler, même si vous ne possédez que la plupart de celles-ci.)

Avantages

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Congés: 7 semaines de congés annuels + 10 jours de RTT (base temps plein) + possibilité d'autorisations d'absence exceptionnelle (ex : enfants malades, déménagement)
  • Possibilité de télétravail (après 6 mois d'ancienneté) et aménagement du temps de travail
  • Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
  • Prestations sociales, culturelles et sportives (Association de gestion des œuvres sociales d'Inria)
  • Accès à la formation professionnelle
  • Sécurité sociale