jeevitha-app commited on
Commit
7d13edc
·
verified ·
1 Parent(s): d4f05a9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -0
app.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import pipeline
3
+ from langdetect import detect
4
+
5
+ # Load translation pipeline (you can change to another model)
6
+ translator = pipeline("translation", model="Helsinki-NLP/opus-mt-mul-en") # English as target
7
+
8
+ # Supported languages and their model codes
9
+ language_models = {
10
+ "en": "Helsinki-NLP/opus-mt-en-ROMANCE",
11
+ "fr": "Helsinki-NLP/opus-mt-ROMANCE-en",
12
+ "de": "Helsinki-NLP/opus-mt-de-en",
13
+ "es": "Helsinki-NLP/opus-mt-es-en",
14
+ "hi": "Helsinki-NLP/opus-mt-hi-en",
15
+ "ta": "Helsinki-NLP/opus-mt-ta-en"
16
+ }
17
+
18
+ def translate_file(file_obj, target_lang):
19
+ text = file_obj.read().decode("utf-8")
20
+ source_lang = detect(text)
21
+
22
+ # Load appropriate model based on target language
23
+ if target_lang == source_lang:
24
+ return "Source and target languages are the same. No translation needed."
25
+
26
+ model_name = None
27
+ for k, v in language_models.items():
28
+ if target_lang == k:
29
+ model_name = v
30
+ break
31
+
32
+ if not model_name:
33
+ return f"Unsupported target language: {target_lang}"
34
+
35
+ model = pipeline("translation", model=model_name)
36
+ translated = model(text, max_length=1000)[0]['translation_text']
37
+ return f"Detected source: {source_lang.upper()} → Translated to: {target_lang.upper()}\n\n{translated}"
38
+
39
+ gr.Interface(
40
+ fn=translate_file,
41
+ inputs=[
42
+ gr.File(label="Upload Text File (.txt)"),
43
+ gr.Dropdown(choices=list(language_models.keys()), label="Target Language (Code)"),
44
+ ],
45
+ outputs="text",
46
+ title="Multilingual File Translator",
47
+ description="Upload a .txt file in any language. Choose a target language to translate."
48
+ ).launch()