File size: 2,139 Bytes
c9f9492
7fda6bb
c9f9492
fab2e99
 
c9f9492
 
 
fab2e99
abc6394
 
fab2e99
abc6394
c9f9492
 
 
 
 
 
 
fab2e99
 
 
 
 
 
f8b7d96
fab2e99
0fa0230
fab2e99
 
 
 
 
 
 
 
 
 
 
974d749
c9f9492
 
f8b7d96
7fda6bb
fab2e99
 
c9f9492
 
 
fab2e99
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
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
from googletrans import Translator

app = Flask(__name__)

# Initialize translators and data
nlp, dict_docs_spacy = sp.load_spacy_values()
dataset, list_2000_tokens = dg.load_data()
ko_to_en_translator = Translator()

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/translate/', methods=['POST'])
def result():
    if request.method == 'POST':
        # Get Korean input and translate to English
        korean_sentence = request.form['inputSentence']
        english_translation = ko_to_en_translator.translate(korean_sentence, src='ko', dest='en').text
        
        # Translate English to ASL gloss
        eng_to_asl_translator = NlpSpacyBaseTranslator(sentence=english_translation)
        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)
        
        # Process synonyms
        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)
        
        return render_template('translate.html',
                            original_sentence=korean_sentence,
                            english_translation=english_translation,
                            gloss_sentence_before_synonym=gloss_sentence_before_synonym,
                            gloss_sentence_after_synonym=gloss_sentence_after_synonym)

@app.route('/video_feed')
def video_feed():
    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)