Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SignBridge #3

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
73 changes: 0 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,74 +1 @@
# SignLanguage

**SignLanguage** is a platform where users can practically learn American Sign Language using machine learning and access videos for over 20,000+ ASL phrases.


![signLanguage](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9kxwd6qf4zfy5kworzcu.gif)


### App Link 🎉🎉🥳
https://gestureacademy.webdrip.in/

### App Previews & Features

#### Homepage

The homepage displays the entire application preview. Users can look up terms for videos and alphabets, as well as play games.

![Signlanguage Homepage](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0nqjldx8mjukffs9g41.png)

#### Phrases Dictionary

Signlanguage includes around 20,000 phrases from which users can learn ASL.

![Phrases](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/upd3dcbs0brsti8fxi2c.png)

![open video](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/96s3xbnddbpumjpmqgfc.png)

#### Lightning Fast Fuzzy Search

Users can search for any video from 20,000+ video using the fuzzy search feature implemented using MongoDB Atlas search in the ASL phrases dictionary.


![Fuzzy Search](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/im8k3fhse0qeang5bi7j.png)

![Fuzzy Search play video](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1fwna63j350pgdergcia.png)


## Game Of ASL

Users can play games that have been created using mediapipe and tensorflow machine learning libraries to help them learn and validate their learning.

### Learn Numbers

Learn numbers from 0-10 in chronological order with the help of artificial intelligence.


### Random Numbers

Show your hands on screen and AI will try to predict the numbers from 0-10 based on your hand signs.

![signLanguage](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9kxwd6qf4zfy5kworzcu.gif)



### Permissive License
`MIT License`

## Background

YouTube is a great source of knowledge, but its algorithm doesn't promote short videos or videos that entice users. SignLanguage solves this problem by collecting these resources and making them easily accessible through our webapp. This webapp has around 20,000+ curated video phrases and features like fuzzy Search which can help users to learn American Sign Language(ASL) with ease.

SignLanguage also has a number of games that users can play to practice their ASL fundamentals while having fun.

### Tech Stack & Libraries Used

The app is basically built using eleventy js (11ty) for frontend, MongoDb Realm as a backend and mediapipe and tensorflow js for machine learning.

- Eleventy Js
- Mongo Db
- Mongo Db Realm functions
- Mongo Db Realm HTTPS Endpoints
- Mongo Db Atlas Search
- Tensorflow
- Mediapipe
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/A-F-Quiz.js
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ hands.onResults(onResults);
function loadAndRunModel() {
async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_A-F/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_A-F/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/A-F-Sequential.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_A-F/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_A-F/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/G-K-Quiz.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_G-K/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_G-K/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/G-K-Sequential.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_G-K/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_G-K/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/L-P-Quiz.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_L-P/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_L-P/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/L-P-Sequential.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_L-P/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_L-P/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/Q-U-Quiz.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_Q-U/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_Q-U/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/Q-U-Sequential.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_Q-U/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_Q-U/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/V-Z-Quiz.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_V-Z/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_V-Z/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/alphabetModels/V-Z-Sequential.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ async function loadModel() {
// https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_numbers_1-9/model.json
// https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_numbers_1-10/model.json
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_V-Z/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_V-Z/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/games/ballonPop/a-f/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_A-F/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_A-F/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/games/ballonPop/g-k/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_G-K/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_G-K/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/games/ballonPop/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ async function loadModel() {
// https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_numbers_1-9/model.json
// https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_numbers_1-10/model.json
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_numbers_1-10/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_V-Z/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/games/ballonPop/l-p/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_L-P/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_L-P/model.json"
);
}

Expand Down
2 changes: 1 addition & 1 deletion frontend/js/games/ballonPop/q-u/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ hands.onResults(onResults);

async function loadModel() {
customModel = await tf.loadLayersModel(
"https://raw.githubusercontent.com/Narottam04/SignLanguage/master/frontend/model/asl_alphabets_Q-U/model.json"
"https://github.com/guptakritarth/SignLanguage/blob/master/frontend/model/asl_alphabets_Q-U/model.json"
);
}

Expand Down