All Projects → nagyrajmund → gesturebot

nagyrajmund / gesturebot

Licence: GPL-3.0 license
The official code for our paper "A Framework for Integrating Gesture Generation Models into Interactive Conversational Agents", published as a demonstration at AAMAS 2021.

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to gesturebot

openEMSstim
openEMSstim: open-hardware module to adjust the intensity of EMS/TENS stimulators.
Stars: ✭ 90 (+210.34%)
Mutual labels:  human-computer-interaction
eye-tracker-setup
👀 Tobii Eye Tracker 4C Setup
Stars: ✭ 24 (-17.24%)
Mutual labels:  human-computer-interaction
apispots-extension
Chrome extensions for discovering and interacting with Open APIs
Stars: ✭ 41 (+41.38%)
Mutual labels:  human-computer-interaction
geog595
Humanistic GIS @ UW-Seattle
Stars: ✭ 33 (+13.79%)
Mutual labels:  human-computer-interaction
dev-slang
How to pronounce special characters and symbols used in programming languages
Stars: ✭ 19 (-34.48%)
Mutual labels:  human-computer-interaction
V2R
Code for our IJCAI 2020 paper: "Keep It Real: a Window to Real Reality in Virtual Reality".
Stars: ✭ 20 (-31.03%)
Mutual labels:  human-computer-interaction
Awesome Hand Pose Estimation
Awesome work on hand pose estimation/tracking
Stars: ✭ 2,196 (+7472.41%)
Mutual labels:  human-computer-interaction
Deepgaze
Computer Vision library for human-computer interaction. It implements Head Pose and Gaze Direction Estimation Using Convolutional Neural Networks, Skin Detection through Backprojection, Motion Detection and Tracking, Saliency Map.
Stars: ✭ 1,552 (+5251.72%)
Mutual labels:  human-computer-interaction
Alphapose
Real-Time and Accurate Full-Body Multi-Person Pose Estimation&Tracking System
Stars: ✭ 5,697 (+19544.83%)
Mutual labels:  human-computer-interaction
WearableIntelligenceSystem
Wearable computing software framework for intelligence augmentation research and applications. Easily build smart glasses apps, relying on built in voice command, speech recognition, computer vision, UI, sensors, smart phone connection, NLP, facial recognition, database, cloud connection, and more.
Stars: ✭ 16 (-44.83%)
Mutual labels:  human-computer-interaction
rosecho
Tianbot Rosecho (Tianecho),中文语音人机交互模块,支持ROS即插即用
Stars: ✭ 28 (-3.45%)
Mutual labels:  human-computer-interaction
Touche-Experiments
Interaction studies with a homemade Touché (swept-frequency capacitive) sensor
Stars: ✭ 20 (-31.03%)
Mutual labels:  human-computer-interaction
ProbQA
Probabilistic question-asking system: the program asks, the users answer. The minimal goal of the program is to identify what the user needs (a target), even if the user is not aware of the existence of such a thing/product/service.
Stars: ✭ 43 (+48.28%)
Mutual labels:  human-computer-interaction
CrowdTruth-core
CrowdTruth framework for crowdsourcing ground truth for training & evaluation of AI systems
Stars: ✭ 45 (+55.17%)
Mutual labels:  human-computer-interaction
py-msa-kdenlive
Python script to load a Kdenlive (OSS NLE video editor) project file, and conform the edit on video or numpy arrays.
Stars: ✭ 25 (-13.79%)
Mutual labels:  human-computer-interaction
AVO2
Reciprocal Collision Avoidance with Acceleration-Velocity Obstacles (C++)
Stars: ✭ 24 (-17.24%)
Mutual labels:  virtual-agents
HRVO
The Hybrid Reciprocal Velocity Obstacle (C++)
Stars: ✭ 90 (+210.34%)
Mutual labels:  virtual-agents

This repo contains the official implementation for the paper A Framework for Integrating Gesture Generation Models into Interactive Conversational Agents, published as a demonstration at the 20th International Conference on Autonomous Agents and Multiagent Systems (AAMAS),

by Rajmund Nagy, Taras Kucherenko, Birger Moëll, André Pereira, Hedvig Kjellström and Ulysses Bernardet.


We present a framework for integrating recent data-driven gesture generation models into interactive conversational agents in Unity. Our video demonstration is available below:

video demonstration

Instructions for running the demo

This branch contains the Blenderbot version of our implementation with a built-in chatbot and TTS. You may visit the dialogflow_demo branch for an alternative version that integrates DialogFlow to the project for speech generation.

Please follow the instructions in INSTALLATION.md to install and run the project.

Architecture

Our framework is designed to be fully modular therefore it can be applied to different voices, chatbot backends, gesture generation models and 3D characters. However, using it in a new project will require some coding for which we provide guidance below.

Unity integration

The source code of the Unity scene with DialogFlow integration is available on this link, while the Blenderbot version is available here. The relevant C# scripts are found in the Assets/Scripts/ folder. The entry point of the python code is the main.py file, while the bulk of the implementation is found in gesture_generator_service.py.

  • The C# and the python scripts comunicate over ActiveMQ, as implemented in the ActiveMQClient.cs and the messaging_server.py files.
  • Once the generated motion arrives to the 3D agent, the MotionVisualizer.cs file animates its model by modifying the localRotation values of each joint.
    • There is no clear convention of how 3D models handle joint rotations in Unity. The 3D joint angles generated by Gesticulator follow the BVH format; applying them to new character models will require Unity knowledge and some tinkering.

Chatbot backend

Gesture generation

  • We use the Gesticulator model in both demonstrations, which generates motion as 3D joint angles using speech text and audio as input.
  • In order to use other models, the following have to be considered:
    • 3D joint angles are necessary to animate the 3D model in Unity, therefore the gesture generation model must return the motion in that format.
    • For any model, an interface must be implemented for getting the generated gestures for any speech. The GesturePredictor class shows how we implemented that for Gesticulator.
  • StyleGestures is a good alternative model with a compatible codebase.

Acknowledgements

The authors would like to thank Lewis King for sharing the source code of his JimBot project with us.

Citation

If you use this code in your research, then please cite it:

@inproceedings{Nagy2021gesturebot,
author = {Nagy, Rajmund and Kucherenko, Taras and Moell, Birger and Pereira, Andr\'{e} and Kjellstr\"{o}m, Hedvig and Bernardet, Ulysses},
title = {A Framework for Integrating Gesture Generation Models into Interactive Conversational Agents},
year = {2021},
isbn = {9781450383073},
publisher = {International Foundation for Autonomous Agents and Multiagent Systems},
address = {Richland, SC},
booktitle = {Proceedings of the 20th International Conference on Autonomous Agents and MultiAgent Systems},
location = {Virtual Event, United Kingdom},
series = {AAMAS '21}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].