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.
-
Demos available for:
-
Paper available on arxiv, presented at AT4SSL 2023.
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:
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-videopackage 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:
-
Text-to-Gloss Translation
Transforms the input (spoken language) text into a sequence of glosses.
- Simple lemmatizer,
- Spacy lemmatizer: more accurate, but slower lemmatization, covering fewer languages than
simple, - Rule-based word reordering and dropping component and
- Neural machine translation system.
- 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.
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40f92bfb2192f613c2171fe24b6b29c429b5ac05e02a262c2a95945bd947021d
|
|
| MD5 |
375cecdbfa4b9be1bc5600d83f022a10
|
|
| BLAKE2b-256 |
fae66af98c3d97e2b310a355eea539e1dc5a974cdc86f6f4b9b4be251cdd9fce
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spoken_to_signed-0.0.2.tar.gz -
Subject digest:
40f92bfb2192f613c2171fe24b6b29c429b5ac05e02a262c2a95945bd947021d - Sigstore transparency entry: 936668430
- Sigstore integration time:
-
Permalink:
sign-language-processing/spoken-to-signed-translation@304bab94076f79272ab49a6fff3f687911f92387 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/sign-language-processing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@304bab94076f79272ab49a6fff3f687911f92387 -
Trigger Event:
release
-
Statement type:
File details
Details for the file spoken_to_signed-0.0.2-py3-none-any.whl.
File metadata
- Download URL: spoken_to_signed-0.0.2-py3-none-any.whl
- Upload date:
- Size: 95.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de1b7d30fcb8a38fbaefc392e48330a4c3a43a8b0562253af2498fbe388ef9f7
|
|
| MD5 |
f4ed80f904e782c535452485c47ca145
|
|
| BLAKE2b-256 |
932f86abb40dd75d4e6ef2012398eb72657cf09b52d758e96d21656edbcdbaf5
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spoken_to_signed-0.0.2-py3-none-any.whl -
Subject digest:
de1b7d30fcb8a38fbaefc392e48330a4c3a43a8b0562253af2498fbe388ef9f7 - Sigstore transparency entry: 936668447
- Sigstore integration time:
-
Permalink:
sign-language-processing/spoken-to-signed-translation@304bab94076f79272ab49a6fff3f687911f92387 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/sign-language-processing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@304bab94076f79272ab49a6fff3f687911f92387 -
Trigger Event:
release
-
Statement type: