Snigdhapaul2003 commited on
Commit
4761058
·
verified ·
1 Parent(s): eb499f0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -54
app.py CHANGED
@@ -1,68 +1,67 @@
1
  import gradio as gr
2
- from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
 
3
 
4
- languages = {
5
- 'Afrikaans': 'afr_Latn',
6
- 'Albanian': 'als_Latn',
7
- 'Basque': 'eus_Latn',
8
- 'Belarusian': 'bel_Cyrl',
9
- 'Bosnian': 'bos_Latn',
10
- 'Bulgarian': 'bul_Cyrl',
11
- 'Catalan': 'cat_Latn',
12
- 'Croatian': 'hrv_Latn',
13
- 'Czech': 'ces_Latn',
14
- 'Danish': 'dan_Latn',
15
- 'Dutch': 'nld_Latn',
16
- 'English': 'eng_Latn',
17
- 'Estonian': 'est_Latn',
18
- 'Finnish': 'fin_Latn',
19
- 'French': 'fra_Latn',
20
- 'Galician': 'glg_Latn',
21
- 'German': 'deu_Latn',
22
- 'Greek': 'ell_Grek',
23
- 'Hungarian': 'hun_Latn',
24
- 'Icelandic': 'isl_Latn',
25
- 'Irish': 'gle_Latn',
26
- 'Italian': 'ita_Latn',
27
- 'Lithuanian': 'lit_Latn',
28
- 'Luxembourgish': 'ltz_Latn',
29
- 'Macedonian': 'mkd_Cyrl',
30
- 'Maltese': 'mlt_Latn',
31
- 'Norwegian Bokmål': 'nob_Latn',
32
- 'Norwegian Nynorsk': 'nno_Latn',
33
- 'Polish': 'pol_Latn',
34
- 'Portuguese': 'por_Latn',
35
- 'Romanian': 'ron_Latn',
36
- 'Russian': 'rus_Cyrl',
37
- 'Serbian': 'srp_Cyrl',
38
- 'Slovak': 'slk_Latn',
39
- 'Slovenian': 'slv_Latn',
40
- 'Spanish': 'spa_Latn',
41
- 'Swedish': 'swe_Latn',
42
- 'Ukrainian': 'ukr_Cyrl',
43
- 'Welsh': 'cym_Latn'
 
 
 
44
  }
45
 
46
- tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M")
47
- model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M")
48
 
49
  def translate_article(article, language):
50
- inputs = tokenizer(article, return_tensors="pt")
51
- if language=='English':
52
- lang_code='eng_Latn'
53
- else:
54
- lang_code = languages[language]
55
- translated_tokens = model.generate(**inputs, forced_bos_token_id=tokenizer.lang_code_to_id[lang_code])
56
- result = tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
57
- return result
58
 
59
- language_choices = list(languages.keys())
60
 
61
  iface = gr.Interface(
62
  fn=translate_article,
63
  inputs=["text",gr.Dropdown(
64
- language_choices, value="English", multiselect=False, label="Choose the language to translate.")],
65
  outputs="text",
66
  title="Translation Tool"
67
  )
68
- iface.launch()
 
1
  import gradio as gr
2
+ import googletrans
3
+ from googletrans import Translator
4
 
5
+ european_languages = {
6
+ 'afrikaans': 'af',
7
+ 'albanian': 'sq',
8
+ 'armenian': 'hy',
9
+ 'azerbaijani': 'az',
10
+ 'basque': 'eu',
11
+ 'belarusian': 'be',
12
+ 'bosnian': 'bs',
13
+ 'bulgarian': 'bg',
14
+ 'catalan': 'ca',
15
+ 'croatian': 'hr',
16
+ 'czech': 'cs',
17
+ 'danish': 'da',
18
+ 'dutch': 'nl',
19
+ 'english': 'en',
20
+ 'estonian': 'et',
21
+ 'finnish': 'fi',
22
+ 'french': 'fr',
23
+ 'georgian': 'ka',
24
+ 'german': 'de',
25
+ 'greek': 'el',
26
+ 'hungarian': 'hu',
27
+ 'icelandic': 'is',
28
+ 'irish': 'ga',
29
+ 'italian': 'it',
30
+ 'latvian': 'lv',
31
+ 'lithuanian': 'lt',
32
+ 'luxembourgish': 'lb',
33
+ 'macedonian': 'mk',
34
+ 'maltese': 'mt',
35
+ 'norwegian': 'no',
36
+ 'polish': 'pl',
37
+ 'portuguese': 'pt',
38
+ 'romanian': 'ro',
39
+ 'russian': 'ru',
40
+ 'scots gaelic': 'gd',
41
+ 'serbian': 'sr',
42
+ 'slovak': 'sk',
43
+ 'slovenian': 'sl',
44
+ 'spanish': 'es',
45
+ 'swedish': 'sv',
46
+ 'ukrainian': 'uk',
47
+ 'welsh': 'cy',
48
  }
49
 
50
+ translator = Translator()
 
51
 
52
  def translate_article(article, language):
53
+ lang = translator.detect(article).lang
54
+ lang_code = european_languages[language]
55
+ translated_text = translator.translate(text, src=lang, dest= lang_code)
56
+ return translated_text.text
 
 
 
 
57
 
58
+ language_choices = list(european_languages.keys())
59
 
60
  iface = gr.Interface(
61
  fn=translate_article,
62
  inputs=["text",gr.Dropdown(
63
+ language_choices, value="english", multiselect=False, label="Choose the language.")],
64
  outputs="text",
65
  title="Translation Tool"
66
  )
67
+ iface.launch(debug=True)