openfree commited on
Commit
f5477de
·
verified ·
1 Parent(s): 7b9eb75

Update src/main.py

Browse files
Files changed (1) hide show
  1. src/main.py +30 -15
src/main.py CHANGED
@@ -1,31 +1,42 @@
1
  import display_gloss as dg
2
  import synonyms_preprocess as sp
3
  from NLP_Spacy_base_translator import NlpSpacyBaseTranslator
4
- from flask import Flask, render_template, Response, request, jsonify
5
- import requests
6
-
7
-
8
-
9
- nlp, dict_docs_spacy = sp.load_spacy_values()
10
- dataset, list_2000_tokens = dg.load_data()
11
-
12
  from googletrans import Translator
13
 
14
  app = Flask(__name__, static_folder='static')
15
  app.config['TITLE'] = 'Sign Language Translate'
16
 
17
- translator = Translator()
 
 
18
 
19
  def translate_korean_to_english(text):
20
  try:
21
  # 한글 감지
22
  if any('\u3131' <= char <= '\u318F' or '\uAC00' <= char <= '\uD7A3' for char in text):
23
  translation = translator.translate(text, src='ko', dest='en')
 
24
  return translation.text
25
  return text
26
  except Exception as e:
27
  print(f"Translation error: {e}")
28
- return text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
  @app.route('/')
31
  def index():
@@ -34,10 +45,13 @@ def index():
34
  @app.route('/translate/', methods=['POST'])
35
  def result():
36
  if request.method == 'POST':
37
- korean_sentence = request.form['inputSentence']
38
  try:
39
- english_translation = translate_korean_to_english(korean_sentence)
40
- eng_to_asl_translator = NlpSpacyBaseTranslator(sentence=english_translation)
 
 
 
41
  generated_gloss = eng_to_asl_translator.translate_to_gloss()
42
 
43
  gloss_list_lower = [gloss.lower() for gloss in generated_gloss.split() if gloss.isalnum()]
@@ -49,11 +63,12 @@ def result():
49
 
50
  return render_template('result.html',
51
  title=app.config['TITLE'],
52
- original_sentence=korean_sentence,
53
- english_translation=english_translation,
54
  gloss_sentence_before_synonym=gloss_sentence_before_synonym,
55
  gloss_sentence_after_synonym=gloss_sentence_after_synonym)
56
  except Exception as e:
 
57
  return render_template('error.html', error=str(e))
58
 
59
  @app.route('/video_feed')
 
1
  import display_gloss as dg
2
  import synonyms_preprocess as sp
3
  from NLP_Spacy_base_translator import NlpSpacyBaseTranslator
4
+ from flask import Flask, render_template, Response, request
5
+ import googletrans
 
 
 
 
 
 
6
  from googletrans import Translator
7
 
8
  app = Flask(__name__, static_folder='static')
9
  app.config['TITLE'] = 'Sign Language Translate'
10
 
11
+ nlp, dict_docs_spacy = sp.load_spacy_values()
12
+ dataset, list_2000_tokens = dg.load_data()
13
+ translator = Translator(service_urls=['translate.google.com'])
14
 
15
  def translate_korean_to_english(text):
16
  try:
17
  # 한글 감지
18
  if any('\u3131' <= char <= '\u318F' or '\uAC00' <= char <= '\uD7A3' for char in text):
19
  translation = translator.translate(text, src='ko', dest='en')
20
+ print(f"Translation result: {translation.text}") # 디버깅용
21
  return translation.text
22
  return text
23
  except Exception as e:
24
  print(f"Translation error: {e}")
25
+ try:
26
+ # 백업 방식으로 파파고 API 사용
27
+ headers = {
28
+ 'X-Naver-Client-Id': 'YOUR_CLIENT_ID',
29
+ 'X-Naver-Client-Secret': 'YOUR_CLIENT_SECRET'
30
+ }
31
+ data = {
32
+ 'source': 'ko',
33
+ 'target': 'en',
34
+ 'text': text
35
+ }
36
+ response = requests.post('https://openapi.naver.com/v1/papago/n2mt', headers=headers, data=data)
37
+ return response.json()['message']['result']['translatedText']
38
+ except:
39
+ return text
40
 
41
  @app.route('/')
42
  def index():
 
45
  @app.route('/translate/', methods=['POST'])
46
  def result():
47
  if request.method == 'POST':
48
+ input_text = request.form['inputSentence']
49
  try:
50
+ english_text = translate_korean_to_english(input_text)
51
+ if english_text == input_text and any('\u3131' <= char <= '\u318F' or '\uAC00' <= char <= '\uD7A3' for char in input_text):
52
+ raise Exception("Translation failed")
53
+
54
+ eng_to_asl_translator = NlpSpacyBaseTranslator(sentence=english_text)
55
  generated_gloss = eng_to_asl_translator.translate_to_gloss()
56
 
57
  gloss_list_lower = [gloss.lower() for gloss in generated_gloss.split() if gloss.isalnum()]
 
63
 
64
  return render_template('result.html',
65
  title=app.config['TITLE'],
66
+ original_sentence=input_text,
67
+ english_translation=english_text,
68
  gloss_sentence_before_synonym=gloss_sentence_before_synonym,
69
  gloss_sentence_after_synonym=gloss_sentence_after_synonym)
70
  except Exception as e:
71
+ print(f"Error in translation process: {e}")
72
  return render_template('error.html', error=str(e))
73
 
74
  @app.route('/video_feed')