Spaces:
Building
Building
File size: 2,200 Bytes
c9f9492 7fda6bb c9f9492 974d749 c9f9492 974d749 c9f9492 974d749 c9f9492 974d749 c9f9492 974d749 c9f9492 974d749 2e870f3 c9f9492 974d749 c9f9492 f8b7d96 0fa0230 974d749 2e870f3 0fa0230 974d749 0fa0230 c9f9492 974d749 c9f9492 974d749 2e870f3 f8b7d96 7fda6bb 974d749 2e870f3 c9f9492 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import display_gloss as dg
import synonyms_preprocess as sp
from NLP_Spacy_base_translator import NlpSpacyBaseTranslator
from flask import Flask, render_template, Response, request
# ---- Initialise Flask App
#
app = Flask(__name__)
# ---- Render the homepage template
#
@app.route('/')
def index():
return render_template('index.html')
# ---- Translate english input sentence into gloss sentence
#
@app.route('/translate/', methods=['POST'])
def result():
# ---- Load NLP models and data
#
nlp, dict_docs_spacy = sp.load_spacy_values()
_, list_2000_tokens = dg.load_data()
if request.method == 'POST':
# ---- Get the raw sentence and translate it to gloss
#
sentence = request.form['inputSentence']
eng_to_asl_translator = NlpSpacyBaseTranslator(sentence=sentence)
generated_gloss = eng_to_asl_translator.translate_to_gloss()
gloss_list_lower = [gloss.lower() for gloss in generated_gloss.split() if gloss.isalnum() ]
gloss_sentence_before_synonym = " ".join(gloss_list_lower)
# ---- Substitute gloss tokens with synonyms if not in the common token list
#
gloss_list = [sp.find_synonyms(gloss, nlp, dict_docs_spacy, list_2000_tokens) for gloss in gloss_list_lower]
gloss_sentence_after_synonym = " ".join(gloss_list)
# ---- Render the result template with both versions of the gloss sentence
#
return render_template('translate.html',\
sentence=sentence,\
gloss_sentence_before_synonym=gloss_sentence_before_synonym,\
gloss_sentence_after_synonym=gloss_sentence_after_synonym)
# ---- Generate video streaming from gloss_sentence
#
@app.route('/video_feed')
def video_feed():
dataset, list_2000_tokens = dg.load_data()
sentence = request.args.get('gloss_sentence_to_display', '')
gloss_list = sentence.split()
return Response(dg.generate_video(gloss_list, dataset, list_2000_tokens), mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == "__main__":
app.debug = True
app.run(host="0.0.0.0", port=5000, debug=True)
|