Skip to content

Latest commit

 

History

66 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MMS Player - Procedural Animation of Sign Language Avatars

The MMS Player is a sign language animation generator based on 3D avatars. It is able to read an MMS file and produce a SL animation in different formats (MP4, FBX, BVH, JSON animation data, blender scene).

MMS stands for "Multimodal SignStream", and it is a machine-and-human-readable format to represent sign languages.

The MMS format can be considered as "glosses on steroids": it is a sequence glosses + timing information + inflections.

Examples

  1. Timing. The MMS can declare a sequence of glosses (like INDEX) and the timing about their execution, transition, and holds.

    Preview of the INDEX sign animated with different durations and transitions source MMS

  2. Inflection of hands position. Here, the sign INDEX is relocated procedurally from its original citation form into anothr 8 versions.

    Preview of the INDEX sign with hands relocated into 8 versions source MMS

  3. Simultaneous inflection of hands and torso. Helps to more naturally refer to other locations in space and to implement role-taking.

    Preview of the INDEX sign with simultaneous hands and torso inflection for role-taking source MMS

  4. Stretching hands trajectories. Together with torso control, can trnsform the sign for NICHT (nothing) from its citation form into a "wishpered" or a more "screamed" versions.

    Preview of the NICHT sign stretched from a whispered to a screamed version source MMS

  5. Finger spelling. Just to show the in the dictionary we have some basics, like letters and numbers.

    Preview of finger spelling animation source MMS

For more information and examples on the MMS, please refer to the included MMS description

Architecture

The implementation is based on the Python language, and it is meant to be executed through the Blender 3D editor. For more details on the implementation, please consult the developers' docs.

This software is distributed under the GPL 3 license.

IMPORTANT DISCLAIMER

This software is a research prototype!

At its current stage, it DOES NOT represent whatsoever an application ready for the production of intelligible and quality approved sign language videos. (Notably, facial animation is still missing and under development.)

This repository offers to the research community a baseline for further investigation, collaborations, and improvements in Sign Language synthesis.

Collaborators are welcome

We are looking forward for international research collaborations through several means:

  • International public research projects (e.g., HORIZON EU);
  • Applied research with industrial partners;
  • Applied research with public institutional bodies;
  • Master theses.

Native signers pursuing a master in computer science or digital art are particularly welcome to collaborate.

Non-profit organizations for Deaf communities are particularly welcome to try the software and give us feedback.

Universities and research centers are welcome to contact us for possible collaborations.

If interested, please contact Dr. Fabrizio Nunnari, or one of the other developers.

Documentation

An overview video tutorial is available on YouTube.

Other documents:

  • The MMS format description: the input defining the glosses, their timing, and their inflections.
  • A set of MMS examples, showing the capabilities of the animation system.
  • The Developer's docs, for people interested in contributing to the code.

The development of the MMS Player was part of Shailesh Mishra's master thesis at the German Research Center for Artificial Intelligence (DFKI).

Usage

Prerequisites

  • Blender 4.2.23 LTS

    • (Blender 4.2.1 is known to have a problem with background video rendering)
    • Download and extract the tar.xz, or tar.gz, or zip file from the blender website https://www.blender.org/download/lts/4-2/.
    • Take note of the path to the main executable file. For example:
        # On macOS
        /Applications/blender-4.2.23/Blender.app/Contents/MacOS/Blender
        # On Ubuntu
        /home/<user>/blender-4.2.23-linux64/blender
      
  • A release of the Dictionary of signs. DictionaryGeneration-deploy-YYMMDD.zip

Optionally, for debugging, install:

  • An Environment with Python 3.11
  • The bpy namespace
    • pip install bpy==4.2.23

Command line invokation

Basic usage is possible through the command line interface.

First, set important directories as env variables. For example, in a Terminal:

export DICTIONARY_DIR=path/to/DictionaryGeneration-deploy-260811
export BLENDER_EXE=/Applications/blender-4.2.23/Blender.app/Contents/MacOS/Blender

Now you are ready to go!

Generate your first animation (it uses the Python interpreter embedded in Blender):

$BLENDER_EXE --background --python main.py -- --source-mms-file MMS-examples/HandReloc-INDEX-X9.mms.csv \
  --corpus-generated-directory $DICTIONARY_DIR \
  --use-relative-time \
  --export-mp4 HandReloc-INDEX-X9.mp4

An MP4 video file is generated with the several inflected versions of the INDEX sign.

If you want to keep Blender open and watch through the animation of the sign on the timeline, remove the --background and --export-mp4 options and use:

$BLENDER_EXE --python main.py -- --source-mms-file MMS-examples/HandReloc-INDEX-X9.mms.csv \
  --corpus-generated-directory $AVASAG_CORPUS_DIR/generated/ \
  --use-relative-time

The Blender window will open, and you can explore the armature and its animation curves.

Additional options

The script supports many options. Here a few explained.

If you manually create an MMS, you are likely going to use the duration and transition columns to specify the time. Then, you should add the option --use-relative-time.

If you want to export a video use the --export-mp4 <path/to/output.mp4> option.

If you want to specify the dimensions of the video, use this:

--res-x 1920
--res-y 1080

If you want to reduce the size of the video, to speed-up rendering, use for example:

--render-size-pct 50

If you don't want inflections, use: --without-inflection

If you want to export to another 3D format, for example for further motion analysis, or import in a game engine, you can use:

--export-bvh <skeleton_file.bvh>
--export-fbx <model_file.fbx>

Web server

The framework provides a Flask HTTP server that can be used to remotely convert MMS instances.

To use the server, make sure you install the Flask package:

pip install Flask==3.0.3

and then you can run the server.

export AVASAG_CORPUS_DIR=path/to/MyCorpusExtract
export BLENDER_EXE=/Applications/blender-4.2.2/Blender.app/Contents/MacOS/Blender
python RunServer.py

GET /api/corpus/sentence/animation/<number>

Animates the sentence with the given number already present in the corpus and returns it. For example:

wget localhost:5000/api/sentence/animation/0022

POST /api/mms/animation

Animates the MMS file posted with key "file" into a JSON animation data and returns it.

Parameters:

  • file: the MMS instance

Example:

curl --request POST  -F file=@MMS-examples/HandReloc-INDEX-X9.mms.csv http://localhost:5000/api/mms/animation

References

If you use this work for academic purposes, please cite using at least one of the following entries (first in the list is preferred):

Paper at the SLTAT 2025 workshop: https://dl.acm.org/doi/10.1145/3742886.3756710. Describing the latest developments of the MMS Player after its publication as open source software (GPL3).

@inproceedings{nunnari_mms_2025,
	address = {Berlin Germany},
	title = {{MMS} {Player}: an open source software for parametric data-driven animation of {Sign} {Language} avatars},
	isbn = {979-8-4007-1996-7},
	shorttitle = {{MMS} {Player}},
	url = {https://dl.acm.org/doi/10.1145/3742886.3756710},
	doi = {10.1145/3742886.3756710},
	language = {en},
	urldate = {2025-10-15},
	booktitle = {Adjunct {Proceedings} of the 25th {ACM} {International} {Conference} on {Intelligent} {Virtual} {Agents}},
	publisher = {ACM},
	author = {Nunnari, Fabrizio and Mishra, Shailesh and Gebhard, Patrick},
	month = sep,
	year = {2025},
	pages = {1--8},

Paper at the SLTAT 2023 workshop: https://ieeexplore.ieee.org/document/10193227. Explaining the basic principles of the MMS and the inflection parameters.

@INPROCEEDINGS{nunnari23SLTAT-InflectionParameters,
  author={Nunnari, Fabrizio and Mishra, Shailesh and Gebhard, Patrick},
  booktitle={2023 IEEE International Conference on Acoustics, Speech, and Signal Processing Workshops (ICASSPW)}, 
  title={Augmenting Glosses with Geometrical Inflection Parameters for the Animation of Sign Language Avatars}, 
  year={2023},
  volume={},
  number={},
  pages={1-5},
  doi={10.1109/ICASSPW59220.2023.10193227},
  abstract={We present a new machine-readable symbolic representation of sign language based on the pairing of glosses with parameters that can be used for the inflection of motion captured sign animation clips. With respect to existing representations, this approach detaches from a purely linguistic point of view and provides a solution to the problem from a lower-level of abstraction, aiming at generic body-motion manipulation. Early experiments show the effectiveness in manipulating hand trajectories and their potential in modulating the expressivity and communicative emotion of pre-recorded signs.}}

Paper at the PETRA conference 2022: https://doi.org/10.1145/3529190.3529202. Explaining the general concept and goals of the AVASAG project.

@inproceedings{bernhard22PETRA-AVASAG,
author = {Bernhard, Lucas and Nunnari, Fabrizio and Unger, Amelie and Bauerdiek, Judith and Dold, Christian and Hauck, Marcel and Stricker, Alexander and Baur, Tobias and Heimerl, Alexander and Andr\'{e}, Elisabeth and Reinecker, Melissa and Espa\~{n}a-Bonet, Cristina and Hamidullah, Yasser and Busemann, Stephan and Gebhard, Patrick and J\"{a}ger, Corinna and Wecker, Sonja and Kossel, Yvonne and M\"{u}ller, Henrik and Waldow, Kristoffer and Fuhrmann, Arnulph and Misiak, Martin and Wallach, Dieter},
title = {Towards Automated Sign Language Production: A Pipeline for Creating Inclusive Virtual Humans},
year = {2022},
isbn = {9781450396318},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3529190.3529202},
doi = {10.1145/3529190.3529202},
abstract = {In everyday life, Deaf People face barriers because information is often only available in spoken or written language. Producing sign language videos showing a human interpreter is often not feasible due to the amount of data required or because the information changes frequently. The ongoing AVASAG project addresses this issue by developing a 3D sign language avatar for the automatic translation of texts into sign language for public services. The avatar is trained using recordings of human interpreters translating text into sign language. For this purpose, we create a corpus with video and motion capture data and an annotation scheme that allows for real-time translation and subsequent correction without requiring to correct the animation frames manually. This paper presents the general translation pipeline focusing on innovative points, such as adjusting an existing annotation system to the specific requirements of sign language and making it usable to annotators from the Deaf communities.},
booktitle = {Proceedings of the 15th International Conference on PErvasive Technologies Related to Assistive Environments},
pages = {260--268},
numpages = {9},
keywords = {automatic translation., motion capture, annotation, corpus, sign language production},
location = {Corfu, Greece},
series = {PETRA '22}
}

Authors

  • Shailesh Mishra was the first and main author of the MMS Player.
  • Fabrizio Nunnari sketched the original concept of the MMS. He is debugging, maintaining, and testing the software and coordinating further research and developments.

Links

For other activities on Sign Language, check the Web Page of the SCAAI group at DFKI.

Funding

The following projects/entities are or were funding the development of the MMS player:

Research:

Projects:

  • BIGEKO (BMBF, grant number 16SV9093)
  • SignReality (FSTP call from the EU Project UTTER, EU Horizon under Grant Agreement No 101070631)
  • SocialWear (BMBF, cost action 22132)
  • AVASAG: Avatar-based speech assistant for automatic sign language translation (BMBF, grant number 16SV8491)

About

Sign Language avatar animation synthesis system

Topics

Resources

Stars

20 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages