srinikesh1432 commited on
Commit
13f4f9b
·
verified ·
1 Parent(s): 40ae455

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +122 -28
app.py CHANGED
@@ -1,28 +1,122 @@
1
- import gradio as gr
2
- from transformers import pipeline
3
-
4
- # Load translation pipeline (English to French by default)
5
- translator = pipeline("translation_en_to_fr", model="Helsinki-NLP/opus-mt-en-fr")
6
-
7
- def translate_text(text):
8
- result = translator(text, max_length=100)
9
- return result[0]['translation_text']
10
-
11
- with gr.Blocks() as demo:
12
- gr.Markdown("## 🌍 Language Translation App (English → French)")
13
-
14
- with gr.Row():
15
- input_text = gr.Textbox(
16
- lines=5,
17
- placeholder="Enter English text here...",
18
- label="English Text"
19
- )
20
- output_text = gr.Textbox(
21
- lines=5,
22
- label="French Translation"
23
- )
24
-
25
- translate_btn = gr.Button("Translate")
26
- translate_btn.click(fn=translate_text, inputs=input_text, outputs=output_text)
27
-
28
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import pipeline, AutoTokenizer, AutoModelForSeq2SeqLM
3
+
4
+ # Load multilingual model
5
+ model_name = "facebook/m2m100_418M"
6
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
7
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
8
+
9
+ translator = pipeline("translation", model=model, tokenizer=tokenizer)
10
+
11
+ # Full language list (A-Z) supported by M2M100
12
+ languages = {
13
+ "Afrikaans": "af",
14
+ "Albanian": "sq",
15
+ "Amharic": "am",
16
+ "Arabic": "ar",
17
+ "Armenian": "hy",
18
+ "Assamese": "as",
19
+ "Azerbaijani": "az",
20
+ "Basque": "eu",
21
+ "Belarusian": "be",
22
+ "Bengali": "bn",
23
+ "Bosnian": "bs",
24
+ "Bulgarian": "bg",
25
+ "Burmese": "my",
26
+ "Catalan": "ca",
27
+ "Chinese": "zh",
28
+ "Croatian": "hr",
29
+ "Czech": "cs",
30
+ "Danish": "da",
31
+ "Dutch": "nl",
32
+ "English": "en",
33
+ "Estonian": "et",
34
+ "Filipino": "tl",
35
+ "Finnish": "fi",
36
+ "French": "fr",
37
+ "Galician": "gl",
38
+ "Georgian": "ka",
39
+ "German": "de",
40
+ "Greek": "el",
41
+ "Gujarati": "gu",
42
+ "Hausa": "ha",
43
+ "Hebrew": "he",
44
+ "Hindi": "hi",
45
+ "Hungarian": "hu",
46
+ "Icelandic": "is",
47
+ "Indonesian": "id",
48
+ "Irish": "ga",
49
+ "Italian": "it",
50
+ "Japanese": "ja",
51
+ "Javanese": "jv",
52
+ "Kannada": "kn",
53
+ "Kazakh": "kk",
54
+ "Khmer": "km",
55
+ "Korean": "ko",
56
+ "Kurdish": "ku",
57
+ "Kyrgyz": "ky",
58
+ "Lao": "lo",
59
+ "Latvian": "lv",
60
+ "Lithuanian": "lt",
61
+ "Macedonian": "mk",
62
+ "Malay": "ms",
63
+ "Malayalam": "ml",
64
+ "Maltese": "mt",
65
+ "Marathi": "mr",
66
+ "Mongolian": "mn",
67
+ "Nepali": "ne",
68
+ "Norwegian": "no",
69
+ "Odia": "or",
70
+ "Pashto": "ps",
71
+ "Persian": "fa",
72
+ "Polish": "pl",
73
+ "Portuguese": "pt",
74
+ "Punjabi": "pa",
75
+ "Romanian": "ro",
76
+ "Russian": "ru",
77
+ "Serbian": "sr",
78
+ "Sinhala": "si",
79
+ "Slovak": "sk",
80
+ "Slovenian": "sl",
81
+ "Somali": "so",
82
+ "Spanish": "es",
83
+ "Sundanese": "su",
84
+ "Swahili": "sw",
85
+ "Swedish": "sv",
86
+ "Tagalog": "tl",
87
+ "Tajik": "tg",
88
+ "Tamil": "ta",
89
+ "Telugu": "te",
90
+ "Thai": "th",
91
+ "Turkish": "tr",
92
+ "Turkmen": "tk",
93
+ "Ukrainian": "uk",
94
+ "Urdu": "ur",
95
+ "Uzbek": "uz",
96
+ "Vietnamese": "vi",
97
+ "Welsh": "cy",
98
+ "Xhosa": "xh",
99
+ "Yiddish": "yi",
100
+ "Yoruba": "yo",
101
+ "Zulu": "zu"
102
+ }
103
+
104
+ def translate_text(text, src_lang, tgt_lang):
105
+ tokenizer.src_lang = languages[src_lang]
106
+ result = translator(text, src_lang=languages[src_lang], tgt_lang=languages[tgt_lang], max_length=200)
107
+ return result[0]['translation_text']
108
+
109
+ with gr.Blocks() as demo:
110
+ gr.Markdown("## Language Translation Tool")
111
+
112
+ with gr.Row():
113
+ src = gr.Dropdown(choices=list(languages.keys()), label="Source Language", value="English")
114
+ tgt = gr.Dropdown(choices=list(languages.keys()), label="Target Language", value="French")
115
+
116
+ input_text = gr.Textbox(lines=5, placeholder="Enter text here...", label="Input Text")
117
+ output_text = gr.Textbox(lines=5, label="Translated Text")
118
+
119
+ translate_btn = gr.Button("Translate")
120
+ translate_btn.click(fn=translate_text, inputs=[input_text, src, tgt], outputs=output_text)
121
+
122
+ demo.launch()