Skip to main content

Simple pipeline for spoken to signed translation

Project description

Gloss-Based Pipeline for Spoken to Signed Language Translation

a text-to-gloss-to-pose-to-video pipeline for spoken to signed language translation.

Visualization of our pipeline

Install

pip install spoken-to-signed

Then, to download a lexicon, run:

download_lexicon \
  --name <signsuisse> \
  --directory <path_to_directory>

Usage

For language codes, we use the IANA Language Subtag Registry. Our pipeline provides multiple scripts.

To quickly demo it using a dummy lexicon, either open it in Colab:

Open In Colab

or run it locally with some installation steps first:

git clone https://github.com/ZurichNLP/spoken-to-signed-translation
cd spoken-to-signed-translation

pip install .

text_to_gloss_to_pose \
  --text "Kleine Kinder essen Pizza in Zürich." \
  --glosser "simple" \
  --lexicon "assets/dummy_lexicon" \
  --spoken-language "de" \
  --signed-language "sgg" \
  --pose "quick_test.pose"

Text-to-Gloss Translation

This script translates input text into gloss notation.

text_to_gloss \
  --text <input_text> \
  --glosser <simple|spacylemma|rules|nmt> \
  --spoken-language <de|fr|it> \
  --signed-language <sgg|ssr|slf>

Text-to-Gloss-to-Pose Translation

This script translates input text into gloss notation, then converts the glosses into a pose file.

text_to_gloss_to_pose \
  --text <input_text> \
  --glosser <simple|spacylemma|rules|nmt> \
  --lexicon <path_to_directory> \
  --spoken-language <de|fr|it> \
  --signed-language <sgg|ssr|slf> \
  --pose <output_pose_file_path>.pose

Text-to-Gloss-to-Pose-to-Video Translation

This script translates input text into gloss notation, converts the glosses into a pose file, and then transforms the pose file into a video.

Note: Video generation requires the pose-to-video package with pix2pix and upscaler:

pip install 'pose-to-video[pix2pix,simple_upscaler] @ git+https://github.com/sign-language-processing/pose-to-video'
text_to_gloss_to_pose_to_video \
  --text <input_text> \
  --glosser <simple|spacylemma|rules|nmt> \
  --lexicon <path_to_directory> \
  --spoken-language <de|fr|it> \
  --signed-language <sgg|ssr|slf> \
  --video <output_video_file_path>.mp4

Methodology

The pipeline consists of three main components:

  1. Text-to-Gloss Translation

    Transforms the input (spoken language) text into a sequence of glosses.

  1. Gloss-to-Pose Conversion
  • Lookup: Uses a lexicon of signed languages to convert the sequence of glosses into a sequence of poses.
  • Pose Concatenation: The poses are then cropped, concatenated, and smoothed, creating a pose representation for the input sentence.
  1. Pose-to-Video Generation

    Transforms the processed pose video back into a synthesized video using an image translation model.

Supported Languages

Language IANA Code Glossers Supported Lexicon Data Source
Swiss German Sign Language sgg simple, spacylemma, rules, nmt SignSuisse (de)
Swiss French Sign Language ssr simple, spacylemma SignSuisse (fr)
Swiss Italian Sign Language slf simple, spacylemma SignSuisse (it)
German Sign Language gsg simple, spacylemma, nmt WordNet (Coming Soon)
British Sign Language bfi simple, spacylemma, nmt WordNet (Coming Soon)

Online Playgrounds

We have two available:

  • sign.mt is a web interface of a translation system.
  • research.sign.mt is an overview of sign language processing literature.

Citation

If you find this work useful, please cite our paper:

@inproceedings{moryossef2023baseline,
  title={An Open-Source Gloss-Based Baseline for Spoken to Signed Language Translation},
  author={Moryossef, Amit and M{\"u}ller, Mathias and G{\"o}hring, Anne and Jiang, Zifan and Goldberg, Yoav and Ebling, Sarah},
  booktitle={2nd International Workshop on Automatic Translation for Signed and Spoken Languages (AT4SSL)},
  year={2023},
  month={June},
  url={https://github.com/ZurichNLP/spoken-to-signed-translation},
  note={Available at: \url{https://arxiv.org/abs/2305.17714}}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spoken_to_signed-0.0.2.tar.gz (95.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spoken_to_signed-0.0.2-py3-none-any.whl (95.9 MB view details)

Uploaded Python 3

File details

Details for the file spoken_to_signed-0.0.2.tar.gz.

File metadata

  • Download URL: spoken_to_signed-0.0.2.tar.gz
  • Upload date:
  • Size: 95.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spoken_to_signed-0.0.2.tar.gz
Algorithm Hash digest
SHA256 40f92bfb2192f613c2171fe24b6b29c429b5ac05e02a262c2a95945bd947021d
MD5 375cecdbfa4b9be1bc5600d83f022a10
BLAKE2b-256 fae66af98c3d97e2b310a355eea539e1dc5a974cdc86f6f4b9b4be251cdd9fce

See more details on using hashes here.

Provenance

The following attestation bundles were made for spoken_to_signed-0.0.2.tar.gz:

Publisher: release.yaml on sign-language-processing/spoken-to-signed-translation

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spoken_to_signed-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for spoken_to_signed-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 de1b7d30fcb8a38fbaefc392e48330a4c3a43a8b0562253af2498fbe388ef9f7
MD5 f4ed80f904e782c535452485c47ca145
BLAKE2b-256 932f86abb40dd75d4e6ef2012398eb72657cf09b52d758e96d21656edbcdbaf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for spoken_to_signed-0.0.2-py3-none-any.whl:

Publisher: release.yaml on sign-language-processing/spoken-to-signed-translation

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page